@economic/taco 2.40.0 → 2.40.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1685) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +42 -0
  2. package/dist/components/Alert/Alert.d.ts +12 -0
  3. package/dist/components/AlertDialog/AlertDialog.d.ts +24 -0
  4. package/dist/components/AlertDialog/Context.d.ts +7 -0
  5. package/dist/components/AlertDialog/components/Content.d.ts +13 -0
  6. package/dist/components/AlertDialog/components/Footer.d.ts +7 -0
  7. package/dist/components/AlertDialog/components/Trigger.d.ts +3 -0
  8. package/dist/components/Backdrop/Backdrop.d.ts +3 -0
  9. package/dist/components/Badge/Badge.d.ts +54 -0
  10. package/dist/components/BadgeIcon/BadgeIcon.d.ts +23 -0
  11. package/dist/components/Banner/Banner.d.ts +20 -0
  12. package/dist/components/Banner/util.d.ts +3 -0
  13. package/dist/components/Button/Button.d.ts +74 -0
  14. package/dist/components/Button/util.d.ts +6 -0
  15. package/dist/components/Calendar/Calendar.d.ts +32 -0
  16. package/dist/components/Card/Card.d.ts +15 -0
  17. package/dist/components/Checkbox/Checkbox.d.ts +27 -0
  18. package/dist/components/Combobox/Combobox.d.ts +51 -0
  19. package/dist/components/Combobox/useCombobox.d.ts +20 -0
  20. package/dist/components/Datepicker/Datepicker.d.ts +50 -0
  21. package/dist/components/Datepicker/useDatepicker.d.ts +13 -0
  22. package/dist/components/Dialog/Context.d.ts +21 -0
  23. package/dist/components/Dialog/Dialog.d.ts +47 -0
  24. package/dist/components/Dialog/components/Content.d.ts +28 -0
  25. package/dist/components/Dialog/components/DialogDrawer.d.ts +10 -0
  26. package/dist/components/Dialog/components/Extra.d.ts +4 -0
  27. package/dist/components/Dialog/components/Trigger.d.ts +3 -0
  28. package/dist/components/Dialog/types.d.ts +1 -0
  29. package/dist/components/Dialog/util.d.ts +4 -0
  30. package/dist/components/Drawer/Context.d.ts +19 -0
  31. package/dist/components/Drawer/Drawer.d.ts +61 -0
  32. package/dist/components/Drawer/components/Content.d.ts +53 -0
  33. package/dist/components/Drawer/components/Trigger.d.ts +3 -0
  34. package/dist/components/Drawer/images.d.ts +1 -0
  35. package/dist/components/Drawer/types.d.ts +2 -0
  36. package/dist/components/Drawer/util.d.ts +7 -0
  37. package/dist/components/Field/Field.d.ts +28 -0
  38. package/dist/components/Form/Form.d.ts +14 -0
  39. package/dist/components/Group/Group.d.ts +30 -0
  40. package/dist/components/Hanger/Hanger.d.ts +31 -0
  41. package/dist/components/Header/Header.d.ts +29 -0
  42. package/dist/components/Header/components/Agreement/Avatar.d.ts +7 -0
  43. package/dist/components/Header/components/Agreement/Badge.d.ts +6 -0
  44. package/dist/components/Header/components/Agreement/Display.d.ts +9 -0
  45. package/dist/components/Header/components/Agreement/Item.d.ts +8 -0
  46. package/dist/components/Header/components/Agreement/types.d.ts +13 -0
  47. package/dist/components/Header/components/AgreementSelector.d.ts +20 -0
  48. package/dist/components/Header/components/Button.d.ts +9 -0
  49. package/dist/components/Header/components/Link.d.ts +20 -0
  50. package/dist/components/Header/components/Logo.d.ts +4 -0
  51. package/dist/components/Header/components/MenuButton.d.ts +5 -0
  52. package/dist/components/Header/components/PrimaryNavigation.d.ts +3 -0
  53. package/dist/components/Header/components/SecondaryNavigation.d.ts +3 -0
  54. package/dist/components/HoverCard/HoverCard.d.ts +16 -0
  55. package/dist/components/HoverCard/Primitives.d.ts +2 -0
  56. package/dist/components/Icon/Icon.d.ts +12 -0
  57. package/dist/components/Icon/components/AccountPreview.d.ts +3 -0
  58. package/dist/components/Icon/components/Accounting.d.ts +3 -0
  59. package/dist/components/Icon/components/AccountingYear.d.ts +3 -0
  60. package/dist/components/Icon/components/AccountingYearCancel.d.ts +3 -0
  61. package/dist/components/Icon/components/AiChatSolid.d.ts +3 -0
  62. package/dist/components/Icon/components/AiStars.d.ts +3 -0
  63. package/dist/components/Icon/components/ArrowBottom.d.ts +3 -0
  64. package/dist/components/Icon/components/ArrowDown.d.ts +3 -0
  65. package/dist/components/Icon/components/ArrowEnd.d.ts +3 -0
  66. package/dist/components/Icon/components/ArrowLeft.d.ts +3 -0
  67. package/dist/components/Icon/components/ArrowRight.d.ts +3 -0
  68. package/dist/components/Icon/components/ArrowStart.d.ts +3 -0
  69. package/dist/components/Icon/components/ArrowTop.d.ts +3 -0
  70. package/dist/components/Icon/components/ArrowUp.d.ts +3 -0
  71. package/dist/components/Icon/components/Attach.d.ts +3 -0
  72. package/dist/components/Icon/components/AttachAuto.d.ts +3 -0
  73. package/dist/components/Icon/components/AttachCancel.d.ts +3 -0
  74. package/dist/components/Icon/components/AttachWarning.d.ts +3 -0
  75. package/dist/components/Icon/components/Autotext.d.ts +3 -0
  76. package/dist/components/Icon/components/AutotextInsert.d.ts +3 -0
  77. package/dist/components/Icon/components/Basic.d.ts +3 -0
  78. package/dist/components/Icon/components/BasicTabs.d.ts +3 -0
  79. package/dist/components/Icon/components/BellSolid.d.ts +3 -0
  80. package/dist/components/Icon/components/Book.d.ts +3 -0
  81. package/dist/components/Icon/components/Booking.d.ts +3 -0
  82. package/dist/components/Icon/components/Budget.d.ts +3 -0
  83. package/dist/components/Icon/components/Calendar.d.ts +3 -0
  84. package/dist/components/Icon/components/CashAccount.d.ts +3 -0
  85. package/dist/components/Icon/components/CashReports.d.ts +3 -0
  86. package/dist/components/Icon/components/ChartArea.d.ts +3 -0
  87. package/dist/components/Icon/components/ChartBar.d.ts +3 -0
  88. package/dist/components/Icon/components/ChartLine.d.ts +3 -0
  89. package/dist/components/Icon/components/ChartPie.d.ts +3 -0
  90. package/dist/components/Icon/components/ChartTable.d.ts +3 -0
  91. package/dist/components/Icon/components/Chat.d.ts +3 -0
  92. package/dist/components/Icon/components/ChatSolid.d.ts +3 -0
  93. package/dist/components/Icon/components/ChevronDown.d.ts +3 -0
  94. package/dist/components/Icon/components/ChevronDownDouble.d.ts +3 -0
  95. package/dist/components/Icon/components/ChevronDownSolid.d.ts +3 -0
  96. package/dist/components/Icon/components/ChevronLeft.d.ts +3 -0
  97. package/dist/components/Icon/components/ChevronLeftDouble.d.ts +3 -0
  98. package/dist/components/Icon/components/ChevronLeftSolid.d.ts +3 -0
  99. package/dist/components/Icon/components/ChevronRight.d.ts +3 -0
  100. package/dist/components/Icon/components/ChevronRightDouble.d.ts +3 -0
  101. package/dist/components/Icon/components/ChevronRightSolid.d.ts +3 -0
  102. package/dist/components/Icon/components/ChevronUp.d.ts +3 -0
  103. package/dist/components/Icon/components/ChevronUpDouble.d.ts +3 -0
  104. package/dist/components/Icon/components/ChevronUpSolid.d.ts +3 -0
  105. package/dist/components/Icon/components/CircleClose.d.ts +3 -0
  106. package/dist/components/Icon/components/CircleInformation.d.ts +3 -0
  107. package/dist/components/Icon/components/CircleMinus.d.ts +3 -0
  108. package/dist/components/Icon/components/CirclePlus.d.ts +3 -0
  109. package/dist/components/Icon/components/CircleQuestionmark.d.ts +3 -0
  110. package/dist/components/Icon/components/CircleTick.d.ts +3 -0
  111. package/dist/components/Icon/components/CircleWarning.d.ts +3 -0
  112. package/dist/components/Icon/components/Clamp.d.ts +3 -0
  113. package/dist/components/Icon/components/ClampOpen.d.ts +3 -0
  114. package/dist/components/Icon/components/Close.d.ts +3 -0
  115. package/dist/components/Icon/components/ColumnFreeze.d.ts +3 -0
  116. package/dist/components/Icon/components/ColumnUnfreeze.d.ts +3 -0
  117. package/dist/components/Icon/components/Columns.d.ts +3 -0
  118. package/dist/components/Icon/components/ConnectionEnable.d.ts +3 -0
  119. package/dist/components/Icon/components/ConnectionRevoke.d.ts +3 -0
  120. package/dist/components/Icon/components/Contacts.d.ts +3 -0
  121. package/dist/components/Icon/components/Copy.d.ts +3 -0
  122. package/dist/components/Icon/components/Courses.d.ts +3 -0
  123. package/dist/components/Icon/components/Credit.d.ts +3 -0
  124. package/dist/components/Icon/components/Delete.d.ts +3 -0
  125. package/dist/components/Icon/components/DeletePermanently.d.ts +3 -0
  126. package/dist/components/Icon/components/Depecriate.d.ts +3 -0
  127. package/dist/components/Icon/components/Developer.d.ts +3 -0
  128. package/dist/components/Icon/components/DistributionTemplate.d.ts +3 -0
  129. package/dist/components/Icon/components/Document.d.ts +3 -0
  130. package/dist/components/Icon/components/DocumentApprove.d.ts +3 -0
  131. package/dist/components/Icon/components/DocumentCreateEntry.d.ts +3 -0
  132. package/dist/components/Icon/components/DocumentCut.d.ts +3 -0
  133. package/dist/components/Icon/components/DocumentError.d.ts +3 -0
  134. package/dist/components/Icon/components/DocumentIsolatePage.d.ts +3 -0
  135. package/dist/components/Icon/components/DocumentMerge.d.ts +3 -0
  136. package/dist/components/Icon/components/DocumentMove.d.ts +3 -0
  137. package/dist/components/Icon/components/DocumentPreview.d.ts +3 -0
  138. package/dist/components/Icon/components/DocumentReceived.d.ts +3 -0
  139. package/dist/components/Icon/components/DocumentRejectedRequest.d.ts +3 -0
  140. package/dist/components/Icon/components/DocumentSigned.d.ts +3 -0
  141. package/dist/components/Icon/components/DocumentSignedSolid.d.ts +3 -0
  142. package/dist/components/Icon/components/DocumentSplit.d.ts +3 -0
  143. package/dist/components/Icon/components/DocumentTime.d.ts +3 -0
  144. package/dist/components/Icon/components/Download.d.ts +3 -0
  145. package/dist/components/Icon/components/Drag.d.ts +3 -0
  146. package/dist/components/Icon/components/ECopedia.d.ts +3 -0
  147. package/dist/components/Icon/components/Edit.d.ts +3 -0
  148. package/dist/components/Icon/components/EditSimple.d.ts +3 -0
  149. package/dist/components/Icon/components/EllipsisHorizontal.d.ts +3 -0
  150. package/dist/components/Icon/components/EllipsisVertical.d.ts +3 -0
  151. package/dist/components/Icon/components/EntriesOnAccount.d.ts +3 -0
  152. package/dist/components/Icon/components/EntriesOpen.d.ts +3 -0
  153. package/dist/components/Icon/components/EntriesWarning.d.ts +3 -0
  154. package/dist/components/Icon/components/EntryTypeCustomerInvoice.d.ts +3 -0
  155. package/dist/components/Icon/components/EntryTypeCustomerPayment.d.ts +3 -0
  156. package/dist/components/Icon/components/EntryTypeJournalEntry.d.ts +3 -0
  157. package/dist/components/Icon/components/EntryTypeManualCustomerInvoice.d.ts +3 -0
  158. package/dist/components/Icon/components/EntryTypeSupplierInvoice.d.ts +3 -0
  159. package/dist/components/Icon/components/EntryTypeSupplierPayment.d.ts +3 -0
  160. package/dist/components/Icon/components/Envelope.d.ts +3 -0
  161. package/dist/components/Icon/components/EnvelopeApproved.d.ts +3 -0
  162. package/dist/components/Icon/components/EnvelopeSolid.d.ts +3 -0
  163. package/dist/components/Icon/components/ExpandView.d.ts +3 -0
  164. package/dist/components/Icon/components/Expenses.d.ts +3 -0
  165. package/dist/components/Icon/components/Export.d.ts +3 -0
  166. package/dist/components/Icon/components/ExportToExcel.d.ts +3 -0
  167. package/dist/components/Icon/components/ExportToPdf.d.ts +3 -0
  168. package/dist/components/Icon/components/EyeOff.d.ts +3 -0
  169. package/dist/components/Icon/components/EyeOn.d.ts +3 -0
  170. package/dist/components/Icon/components/Filter.d.ts +3 -0
  171. package/dist/components/Icon/components/FilterSolid.d.ts +3 -0
  172. package/dist/components/Icon/components/FontSize.d.ts +3 -0
  173. package/dist/components/Icon/components/GraphSolid.d.ts +3 -0
  174. package/dist/components/Icon/components/Hash.d.ts +3 -0
  175. package/dist/components/Icon/components/HeightExtraTall.d.ts +3 -0
  176. package/dist/components/Icon/components/HeightMedium.d.ts +3 -0
  177. package/dist/components/Icon/components/HeightShort.d.ts +3 -0
  178. package/dist/components/Icon/components/HeightTall.d.ts +3 -0
  179. package/dist/components/Icon/components/House.d.ts +3 -0
  180. package/dist/components/Icon/components/HouseSolid.d.ts +3 -0
  181. package/dist/components/Icon/components/Id.d.ts +3 -0
  182. package/dist/components/Icon/components/Images.d.ts +3 -0
  183. package/dist/components/Icon/components/Import.d.ts +3 -0
  184. package/dist/components/Icon/components/Inbox.d.ts +3 -0
  185. package/dist/components/Icon/components/InboxEinvoicing.d.ts +3 -0
  186. package/dist/components/Icon/components/InboxScanning.d.ts +3 -0
  187. package/dist/components/Icon/components/InboxSmart.d.ts +3 -0
  188. package/dist/components/Icon/components/Info.d.ts +3 -0
  189. package/dist/components/Icon/components/Inventory.d.ts +3 -0
  190. package/dist/components/Icon/components/InventoryMatrix.d.ts +3 -0
  191. package/dist/components/Icon/components/JournalPro.d.ts +3 -0
  192. package/dist/components/Icon/components/Layout.d.ts +3 -0
  193. package/dist/components/Icon/components/LayoutBoth.d.ts +3 -0
  194. package/dist/components/Icon/components/LayoutFirst.d.ts +3 -0
  195. package/dist/components/Icon/components/LayoutLast.d.ts +3 -0
  196. package/dist/components/Icon/components/LayoutNone.d.ts +3 -0
  197. package/dist/components/Icon/components/LedgerCard.d.ts +3 -0
  198. package/dist/components/Icon/components/LedgerCardCustomerReminder.d.ts +3 -0
  199. package/dist/components/Icon/components/LedgerCardManualCustomerInvoice.d.ts +3 -0
  200. package/dist/components/Icon/components/LedgerCardObsoleteStock.d.ts +3 -0
  201. package/dist/components/Icon/components/LedgerCardOpeningEntry.d.ts +3 -0
  202. package/dist/components/Icon/components/LedgerCardReservedEntry.d.ts +3 -0
  203. package/dist/components/Icon/components/LedgerCardShrinkagePilferage.d.ts +3 -0
  204. package/dist/components/Icon/components/LedgerCardStockAdjustment.d.ts +3 -0
  205. package/dist/components/Icon/components/LedgerCardTransferredOpeningEntry.d.ts +3 -0
  206. package/dist/components/Icon/components/Lightbulb.d.ts +3 -0
  207. package/dist/components/Icon/components/Line.d.ts +3 -0
  208. package/dist/components/Icon/components/LinkExternal.d.ts +3 -0
  209. package/dist/components/Icon/components/List.d.ts +3 -0
  210. package/dist/components/Icon/components/ListBulleted.d.ts +3 -0
  211. package/dist/components/Icon/components/ListSearch.d.ts +3 -0
  212. package/dist/components/Icon/components/Location.d.ts +3 -0
  213. package/dist/components/Icon/components/Lock.d.ts +3 -0
  214. package/dist/components/Icon/components/LockOpen.d.ts +3 -0
  215. package/dist/components/Icon/components/Log.d.ts +3 -0
  216. package/dist/components/Icon/components/LogOut.d.ts +3 -0
  217. package/dist/components/Icon/components/Market.d.ts +3 -0
  218. package/dist/components/Icon/components/MastercardOs.d.ts +3 -0
  219. package/dist/components/Icon/components/MatchAmount.d.ts +3 -0
  220. package/dist/components/Icon/components/MatchEntries.d.ts +3 -0
  221. package/dist/components/Icon/components/Menu.d.ts +3 -0
  222. package/dist/components/Icon/components/Mileage.d.ts +3 -0
  223. package/dist/components/Icon/components/ModalResize.d.ts +3 -0
  224. package/dist/components/Icon/components/ModalShrink.d.ts +3 -0
  225. package/dist/components/Icon/components/More.d.ts +3 -0
  226. package/dist/components/Icon/components/MoreSolid.d.ts +3 -0
  227. package/dist/components/Icon/components/Move.d.ts +3 -0
  228. package/dist/components/Icon/components/NavigationList.d.ts +3 -0
  229. package/dist/components/Icon/components/Note.d.ts +3 -0
  230. package/dist/components/Icon/components/NoteFollowUp.d.ts +3 -0
  231. package/dist/components/Icon/components/NoteRead.d.ts +3 -0
  232. package/dist/components/Icon/components/NovemberFirst.d.ts +3 -0
  233. package/dist/components/Icon/components/Numbers.d.ts +3 -0
  234. package/dist/components/Icon/components/PartnerApi.d.ts +3 -0
  235. package/dist/components/Icon/components/PaymentPaid.d.ts +3 -0
  236. package/dist/components/Icon/components/PaymentUnpaid.d.ts +3 -0
  237. package/dist/components/Icon/components/Period.d.ts +3 -0
  238. package/dist/components/Icon/components/PersonChange.d.ts +3 -0
  239. package/dist/components/Icon/components/PersonMinus.d.ts +3 -0
  240. package/dist/components/Icon/components/PersonPlus.d.ts +3 -0
  241. package/dist/components/Icon/components/PersonTick.d.ts +3 -0
  242. package/dist/components/Icon/components/Phone.d.ts +3 -0
  243. package/dist/components/Icon/components/PhoneSolid.d.ts +3 -0
  244. package/dist/components/Icon/components/Play.d.ts +3 -0
  245. package/dist/components/Icon/components/PlusMinus.d.ts +3 -0
  246. package/dist/components/Icon/components/Print.d.ts +3 -0
  247. package/dist/components/Icon/components/ProcessPayment.d.ts +3 -0
  248. package/dist/components/Icon/components/ProductLedgerCard.d.ts +3 -0
  249. package/dist/components/Icon/components/Profile.d.ts +3 -0
  250. package/dist/components/Icon/components/ProjectCards.d.ts +3 -0
  251. package/dist/components/Icon/components/Projects.d.ts +3 -0
  252. package/dist/components/Icon/components/QuestionMark.d.ts +3 -0
  253. package/dist/components/Icon/components/QuestionMarkBold.d.ts +3 -0
  254. package/dist/components/Icon/components/Quicklinks.d.ts +3 -0
  255. package/dist/components/Icon/components/RatingBankruptcy.d.ts +3 -0
  256. package/dist/components/Icon/components/RatingPaymentProblems.d.ts +3 -0
  257. package/dist/components/Icon/components/Reconciled.d.ts +3 -0
  258. package/dist/components/Icon/components/Refresh.d.ts +3 -0
  259. package/dist/components/Icon/components/Report.d.ts +3 -0
  260. package/dist/components/Icon/components/ReportSolid.d.ts +3 -0
  261. package/dist/components/Icon/components/Restore.d.ts +3 -0
  262. package/dist/components/Icon/components/RotateLeft.d.ts +3 -0
  263. package/dist/components/Icon/components/RotateRight.d.ts +3 -0
  264. package/dist/components/Icon/components/Sales.d.ts +3 -0
  265. package/dist/components/Icon/components/Search.d.ts +3 -0
  266. package/dist/components/Icon/components/SearchBold.d.ts +3 -0
  267. package/dist/components/Icon/components/Secure.d.ts +3 -0
  268. package/dist/components/Icon/components/SecureTick.d.ts +3 -0
  269. package/dist/components/Icon/components/Settings.d.ts +3 -0
  270. package/dist/components/Icon/components/SettingsSolid.d.ts +3 -0
  271. package/dist/components/Icon/components/Shortcuts.d.ts +3 -0
  272. package/dist/components/Icon/components/ShowAll.d.ts +3 -0
  273. package/dist/components/Icon/components/ShowLess.d.ts +3 -0
  274. package/dist/components/Icon/components/ShowMore.d.ts +3 -0
  275. package/dist/components/Icon/components/ShowTemplate.d.ts +3 -0
  276. package/dist/components/Icon/components/Sliders.d.ts +3 -0
  277. package/dist/components/Icon/components/Smartpay.d.ts +3 -0
  278. package/dist/components/Icon/components/SortBy.d.ts +3 -0
  279. package/dist/components/Icon/components/Star.d.ts +3 -0
  280. package/dist/components/Icon/components/StarSolid.d.ts +3 -0
  281. package/dist/components/Icon/components/Subscriptions.d.ts +3 -0
  282. package/dist/components/Icon/components/SystemEntries.d.ts +3 -0
  283. package/dist/components/Icon/components/Tag.d.ts +3 -0
  284. package/dist/components/Icon/components/TemplateOverride.d.ts +3 -0
  285. package/dist/components/Icon/components/Templates.d.ts +3 -0
  286. package/dist/components/Icon/components/ThumbBoth.d.ts +3 -0
  287. package/dist/components/Icon/components/ThumbDown.d.ts +3 -0
  288. package/dist/components/Icon/components/ThumbDownSolid.d.ts +3 -0
  289. package/dist/components/Icon/components/ThumbUp.d.ts +3 -0
  290. package/dist/components/Icon/components/ThumbUpSolid.d.ts +3 -0
  291. package/dist/components/Icon/components/Tick.d.ts +3 -0
  292. package/dist/components/Icon/components/TickBold.d.ts +3 -0
  293. package/dist/components/Icon/components/Time.d.ts +3 -0
  294. package/dist/components/Icon/components/Transfer.d.ts +3 -0
  295. package/dist/components/Icon/components/TransferCancel.d.ts +3 -0
  296. package/dist/components/Icon/components/TransferLocked.d.ts +3 -0
  297. package/dist/components/Icon/components/Undo.d.ts +3 -0
  298. package/dist/components/Icon/components/Undock.d.ts +3 -0
  299. package/dist/components/Icon/components/Unreconciled.d.ts +3 -0
  300. package/dist/components/Icon/components/Warning.d.ts +3 -0
  301. package/dist/components/Icon/components/Webshop.d.ts +3 -0
  302. package/dist/components/Icon/components/Website.d.ts +3 -0
  303. package/dist/components/Icon/components/Workflow.d.ts +3 -0
  304. package/dist/components/Icon/components/WorkflowTemplateBasic.d.ts +3 -0
  305. package/dist/components/Icon/components/Zoom.d.ts +3 -0
  306. package/dist/components/Icon/components/index.d.ts +3 -0
  307. package/dist/components/IconButton/IconButton.d.ts +92 -0
  308. package/dist/components/Input/Input.d.ts +27 -0
  309. package/dist/components/Input/util.d.ts +2 -0
  310. package/dist/components/Layout/Layout.d.ts +16 -0
  311. package/dist/components/Layout/components/Content.d.ts +3 -0
  312. package/dist/components/Layout/components/Context.d.ts +6 -0
  313. package/dist/components/Layout/components/Page.d.ts +3 -0
  314. package/dist/components/Layout/components/Sidebar.d.ts +3 -0
  315. package/dist/components/Layout/components/Top.d.ts +7 -0
  316. package/dist/components/List/List.d.ts +28 -0
  317. package/dist/components/List/components/Button.d.ts +8 -0
  318. package/dist/components/List/components/Collapsible.d.ts +11 -0
  319. package/dist/components/List/components/Group.d.ts +7 -0
  320. package/dist/components/List/components/Item.d.ts +14 -0
  321. package/dist/components/List/components/Link.d.ts +8 -0
  322. package/dist/components/List/components/Toggle.d.ts +8 -0
  323. package/dist/components/Listbox/Listbox.d.ts +96 -0
  324. package/dist/components/Listbox/ScrollableList.d.ts +120 -0
  325. package/dist/components/Listbox/useListbox.d.ts +9 -0
  326. package/dist/components/Listbox/useMultiListbox.d.ts +9 -0
  327. package/dist/components/Listbox/useTypeahead.d.ts +10 -0
  328. package/dist/components/Listbox/util.d.ts +25 -0
  329. package/dist/components/Menu/Context.d.ts +17 -0
  330. package/dist/components/Menu/Menu.d.ts +33 -0
  331. package/dist/components/Menu/components/Checkbox.d.ts +11 -0
  332. package/dist/components/Menu/components/Content.d.ts +15 -0
  333. package/dist/components/Menu/components/Header.d.ts +3 -0
  334. package/dist/components/Menu/components/Item.d.ts +31 -0
  335. package/dist/components/Menu/components/Link.d.ts +14 -0
  336. package/dist/components/Menu/components/RadioGroup.d.ts +9 -0
  337. package/dist/components/Menu/components/Separator.d.ts +3 -0
  338. package/dist/components/Menu/components/SubMenu.d.ts +8 -0
  339. package/dist/components/Menu/components/Trigger.d.ts +7 -0
  340. package/dist/components/ModeSwitch/ModeSwitch.d.ts +17 -0
  341. package/dist/components/Navigation/Navigation.d.ts +50 -0
  342. package/dist/components/Navigation2/Navigation2.d.ts +17 -0
  343. package/dist/components/Navigation2/components/Content.d.ts +3 -0
  344. package/dist/components/Navigation2/components/Group.d.ts +11 -0
  345. package/dist/components/Navigation2/components/Link.d.ts +24 -0
  346. package/dist/components/Navigation2/components/Section.d.ts +7 -0
  347. package/dist/components/Navigation2/components/util.d.ts +1 -0
  348. package/dist/components/OverflowGroup/OverflowGroup.d.ts +5 -0
  349. package/dist/components/Pagination/PageNumbers.d.ts +8 -0
  350. package/dist/components/Pagination/Pagination.d.ts +100 -0
  351. package/dist/components/Pagination/usePagination.d.ts +11 -0
  352. package/dist/components/Pagination/usePaginationShortcuts.d.ts +8 -0
  353. package/dist/components/Popover/Popover.d.ts +34 -0
  354. package/dist/components/Popover/Primitives.d.ts +2 -0
  355. package/dist/components/Popover/util.d.ts +1 -0
  356. package/dist/components/Progress/Progress.d.ts +10 -0
  357. package/dist/components/Provider/Localization.d.ts +391 -0
  358. package/dist/components/Provider/Provider.d.ts +14 -0
  359. package/dist/components/RadioGroup/RadioGroup.d.ts +52 -0
  360. package/dist/components/RadioGroup/util.d.ts +1 -0
  361. package/dist/components/Report/Report.d.ts +9 -0
  362. package/dist/components/Report/types.d.ts +5 -0
  363. package/dist/components/Report/useReport.d.ts +5 -0
  364. package/dist/components/ScrollArea/ScrollArea.d.ts +4 -0
  365. package/dist/components/SearchInput/SearchInput.d.ts +17 -0
  366. package/dist/components/SearchInput2/SearchInput2.d.ts +25 -0
  367. package/dist/components/Select/Select.d.ts +40 -0
  368. package/dist/components/Select/useSelect.d.ts +21 -0
  369. package/dist/components/Select2/Select2.d.ts +75 -0
  370. package/dist/components/Select2/components/All.d.ts +7 -0
  371. package/dist/components/Select2/components/Collection.d.ts +7 -0
  372. package/dist/components/Select2/components/Context.d.ts +33 -0
  373. package/dist/components/Select2/components/Create.d.ts +10 -0
  374. package/dist/components/Select2/components/Edit.d.ts +10 -0
  375. package/dist/components/Select2/components/Group.d.ts +13 -0
  376. package/dist/components/Select2/components/Option.d.ts +23 -0
  377. package/dist/components/Select2/components/Search.d.ts +16 -0
  378. package/dist/components/Select2/components/Title.d.ts +4 -0
  379. package/dist/components/Select2/components/Trigger.d.ts +7 -0
  380. package/dist/components/Select2/hooks/useChildren.d.ts +19 -0
  381. package/dist/components/Select2/types.d.ts +12 -0
  382. package/dist/components/Select2/utilities.d.ts +3 -0
  383. package/dist/components/Shortcut/Shortcut.d.ts +6 -0
  384. package/dist/components/Spinner/Spinner.d.ts +20 -0
  385. package/dist/components/Switch/Switch.d.ts +19 -0
  386. package/dist/components/Table/Table.d.ts +14 -0
  387. package/dist/components/Table/components/BaseTable.d.ts +8 -0
  388. package/dist/components/Table/components/PaginatedTable.d.ts +2 -0
  389. package/dist/components/Table/components/Table.d.ts +2 -0
  390. package/dist/components/Table/components/WindowedTable.d.ts +2 -0
  391. package/dist/components/Table/hooks/plugins/useRowActions.d.ts +4 -0
  392. package/dist/components/Table/hooks/plugins/useRowDraggable.d.ts +3 -0
  393. package/dist/components/Table/hooks/plugins/useRowEditing.d.ts +2 -0
  394. package/dist/components/Table/hooks/plugins/useRowSelect.d.ts +3 -0
  395. package/dist/components/Table/hooks/useRowCreation.d.ts +11 -0
  396. package/dist/components/Table/hooks/useTable.d.ts +38 -0
  397. package/dist/components/Table/hooks/useTableKeyboardNavigation.d.ts +3 -0
  398. package/dist/components/Table/types.d.ts +284 -0
  399. package/dist/components/Table/util/renderColumn.d.ts +1 -0
  400. package/dist/components/Table/util/renderRow.d.ts +2 -0
  401. package/dist/components/Table/util/rowIndexPath.d.ts +5 -0
  402. package/dist/components/Table/util/sortTypes.d.ts +4 -0
  403. package/dist/components/Table/util.d.ts +12 -0
  404. package/dist/components/Table3/Table3.d.ts +28 -0
  405. package/dist/components/Table3/components/Columns/Cell/Cell.d.ts +3 -0
  406. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.d.ts +9 -0
  407. package/dist/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.d.ts +10 -0
  408. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.d.ts +3 -0
  409. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +3 -0
  410. package/dist/components/Table3/components/Columns/Cell/util.d.ts +3 -0
  411. package/dist/components/Table3/components/Columns/Internal/EditingActionsMenu.d.ts +11 -0
  412. package/dist/components/Table3/components/Editing/Alert.d.ts +12 -0
  413. package/dist/components/Table3/components/Row/Editing/CreateRowButton.d.ts +11 -0
  414. package/dist/components/Table3/components/Row/Editing/SaveStatus.d.ts +8 -0
  415. package/dist/components/Table3/components/Row/Row.d.ts +3 -0
  416. package/dist/components/Table3/components/Toolbar/Editing/Editing.d.ts +8 -0
  417. package/dist/components/Table3/features/useTableEditing.d.ts +46 -0
  418. package/dist/components/Table3/listeners/useTableEditingListener.d.ts +4 -0
  419. package/dist/components/Table3/types.d.ts +73 -0
  420. package/dist/components/Table3/useTable3.d.ts +10 -0
  421. package/dist/components/Table3/util/editing.d.ts +3 -0
  422. package/dist/components/Tabs/Tabs.d.ts +56 -0
  423. package/dist/components/Tag/Tag.d.ts +19 -0
  424. package/dist/components/Textarea/Textarea.d.ts +15 -0
  425. package/dist/components/Toast/Toast.d.ts +36 -0
  426. package/dist/components/Toast/Toaster.d.ts +35 -0
  427. package/dist/components/Toast/util.d.ts +4 -0
  428. package/dist/components/Tooltip/Tooltip.d.ts +27 -0
  429. package/dist/components/Tour/Tour.d.ts +72 -0
  430. package/dist/components/Treeview/Treeview.d.ts +25 -0
  431. package/dist/components/Truncate/Truncate.d.ts +6 -0
  432. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +4 -0
  433. package/dist/esm/index.css +1317 -0
  434. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +192 -0
  435. package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -0
  436. package/dist/esm/packages/taco/src/components/Accordion/Accordion.js +86 -0
  437. package/dist/esm/packages/taco/src/components/Accordion/Accordion.js.map +1 -0
  438. package/dist/esm/packages/taco/src/components/Alert/Alert.js +50 -0
  439. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -0
  440. package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js +37 -0
  441. package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js.map +1 -0
  442. package/dist/esm/packages/taco/src/components/AlertDialog/Context.js +13 -0
  443. package/dist/esm/packages/taco/src/components/AlertDialog/Context.js.map +1 -0
  444. package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js +26 -0
  445. package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js.map +1 -0
  446. package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js +26 -0
  447. package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js.map +1 -0
  448. package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js +19 -0
  449. package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js.map +1 -0
  450. package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js +14 -0
  451. package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js.map +1 -0
  452. package/dist/esm/packages/taco/src/components/Badge/Badge.js +52 -0
  453. package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -0
  454. package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js +39 -0
  455. package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js.map +1 -0
  456. package/dist/esm/packages/taco/src/components/Banner/Banner.js +31 -0
  457. package/dist/esm/packages/taco/src/components/Banner/Banner.js.map +1 -0
  458. package/dist/esm/packages/taco/src/components/Banner/util.js +36 -0
  459. package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -0
  460. package/dist/esm/packages/taco/src/components/Button/Button.js +53 -0
  461. package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -0
  462. package/dist/esm/packages/taco/src/components/Button/util.js +82 -0
  463. package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -0
  464. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +155 -0
  465. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -0
  466. package/dist/esm/packages/taco/src/components/Card/Card.js +47 -0
  467. package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -0
  468. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +83 -0
  469. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -0
  470. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js +90 -0
  471. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -0
  472. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +269 -0
  473. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -0
  474. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +86 -0
  475. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -0
  476. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +87 -0
  477. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -0
  478. package/dist/esm/packages/taco/src/components/Dialog/Context.js +26 -0
  479. package/dist/esm/packages/taco/src/components/Dialog/Context.js.map +1 -0
  480. package/dist/esm/packages/taco/src/components/Dialog/Dialog.js +77 -0
  481. package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -0
  482. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +116 -0
  483. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -0
  484. package/dist/esm/packages/taco/src/components/Dialog/components/DialogDrawer.js +41 -0
  485. package/dist/esm/packages/taco/src/components/Dialog/components/DialogDrawer.js.map +1 -0
  486. package/dist/esm/packages/taco/src/components/Dialog/components/Extra.js +15 -0
  487. package/dist/esm/packages/taco/src/components/Dialog/components/Extra.js.map +1 -0
  488. package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js +19 -0
  489. package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js.map +1 -0
  490. package/dist/esm/packages/taco/src/components/Dialog/util.js +19 -0
  491. package/dist/esm/packages/taco/src/components/Dialog/util.js.map +1 -0
  492. package/dist/esm/packages/taco/src/components/Drawer/Context.js +20 -0
  493. package/dist/esm/packages/taco/src/components/Drawer/Context.js.map +1 -0
  494. package/dist/esm/packages/taco/src/components/Drawer/Drawer.js +109 -0
  495. package/dist/esm/packages/taco/src/components/Drawer/Drawer.js.map +1 -0
  496. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +325 -0
  497. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -0
  498. package/dist/esm/packages/taco/src/components/Drawer/components/Trigger.js +12 -0
  499. package/dist/esm/packages/taco/src/components/Drawer/components/Trigger.js.map +1 -0
  500. package/dist/esm/packages/taco/src/components/Drawer/util.js +37 -0
  501. package/dist/esm/packages/taco/src/components/Drawer/util.js.map +1 -0
  502. package/dist/esm/packages/taco/src/components/Field/Field.js +39 -0
  503. package/dist/esm/packages/taco/src/components/Field/Field.js.map +1 -0
  504. package/dist/esm/packages/taco/src/components/Form/Form.js +20 -0
  505. package/dist/esm/packages/taco/src/components/Form/Form.js.map +1 -0
  506. package/dist/esm/packages/taco/src/components/Group/Group.js +21 -0
  507. package/dist/esm/packages/taco/src/components/Group/Group.js.map +1 -0
  508. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +101 -0
  509. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -0
  510. package/dist/esm/packages/taco/src/components/Header/Header.js +31 -0
  511. package/dist/esm/packages/taco/src/components/Header/Header.js.map +1 -0
  512. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js +28 -0
  513. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js.map +1 -0
  514. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js +23 -0
  515. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js.map +1 -0
  516. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js +36 -0
  517. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js.map +1 -0
  518. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js +39 -0
  519. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js.map +1 -0
  520. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +144 -0
  521. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -0
  522. package/dist/esm/packages/taco/src/components/Header/components/Button.js +22 -0
  523. package/dist/esm/packages/taco/src/components/Header/components/Button.js.map +1 -0
  524. package/dist/esm/packages/taco/src/components/Header/components/Link.js +45 -0
  525. package/dist/esm/packages/taco/src/components/Header/components/Link.js.map +1 -0
  526. package/dist/esm/packages/taco/src/components/Header/components/Logo.js +90 -0
  527. package/dist/esm/packages/taco/src/components/Header/components/Logo.js.map +1 -0
  528. package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js +17 -0
  529. package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js.map +1 -0
  530. package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +28 -0
  531. package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js.map +1 -0
  532. package/dist/esm/packages/taco/src/components/Header/components/SecondaryNavigation.js +13 -0
  533. package/dist/esm/packages/taco/src/components/Header/components/SecondaryNavigation.js.map +1 -0
  534. package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js +37 -0
  535. package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js.map +1 -0
  536. package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js +27 -0
  537. package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js.map +1 -0
  538. package/dist/esm/packages/taco/src/components/Icon/Icon.js +28 -0
  539. package/dist/esm/packages/taco/src/components/Icon/Icon.js.map +1 -0
  540. package/dist/esm/packages/taco/src/components/Icon/components/AccountPreview.js +17 -0
  541. package/dist/esm/packages/taco/src/components/Icon/components/AccountPreview.js.map +1 -0
  542. package/dist/esm/packages/taco/src/components/Icon/components/Accounting.js +17 -0
  543. package/dist/esm/packages/taco/src/components/Icon/components/Accounting.js.map +1 -0
  544. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYear.js +17 -0
  545. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYear.js.map +1 -0
  546. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYearCancel.js +17 -0
  547. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYearCancel.js.map +1 -0
  548. package/dist/esm/packages/taco/src/components/Icon/components/AiChatSolid.js +19 -0
  549. package/dist/esm/packages/taco/src/components/Icon/components/AiChatSolid.js.map +1 -0
  550. package/dist/esm/packages/taco/src/components/Icon/components/AiStars.js +30 -0
  551. package/dist/esm/packages/taco/src/components/Icon/components/AiStars.js.map +1 -0
  552. package/dist/esm/packages/taco/src/components/Icon/components/ArrowBottom.js +17 -0
  553. package/dist/esm/packages/taco/src/components/Icon/components/ArrowBottom.js.map +1 -0
  554. package/dist/esm/packages/taco/src/components/Icon/components/ArrowDown.js +17 -0
  555. package/dist/esm/packages/taco/src/components/Icon/components/ArrowDown.js.map +1 -0
  556. package/dist/esm/packages/taco/src/components/Icon/components/ArrowEnd.js +17 -0
  557. package/dist/esm/packages/taco/src/components/Icon/components/ArrowEnd.js.map +1 -0
  558. package/dist/esm/packages/taco/src/components/Icon/components/ArrowLeft.js +17 -0
  559. package/dist/esm/packages/taco/src/components/Icon/components/ArrowLeft.js.map +1 -0
  560. package/dist/esm/packages/taco/src/components/Icon/components/ArrowRight.js +17 -0
  561. package/dist/esm/packages/taco/src/components/Icon/components/ArrowRight.js.map +1 -0
  562. package/dist/esm/packages/taco/src/components/Icon/components/ArrowStart.js +17 -0
  563. package/dist/esm/packages/taco/src/components/Icon/components/ArrowStart.js.map +1 -0
  564. package/dist/esm/packages/taco/src/components/Icon/components/ArrowTop.js +17 -0
  565. package/dist/esm/packages/taco/src/components/Icon/components/ArrowTop.js.map +1 -0
  566. package/dist/esm/packages/taco/src/components/Icon/components/ArrowUp.js +17 -0
  567. package/dist/esm/packages/taco/src/components/Icon/components/ArrowUp.js.map +1 -0
  568. package/dist/esm/packages/taco/src/components/Icon/components/Attach.js +17 -0
  569. package/dist/esm/packages/taco/src/components/Icon/components/Attach.js.map +1 -0
  570. package/dist/esm/packages/taco/src/components/Icon/components/AttachAuto.js +17 -0
  571. package/dist/esm/packages/taco/src/components/Icon/components/AttachAuto.js.map +1 -0
  572. package/dist/esm/packages/taco/src/components/Icon/components/AttachCancel.js +17 -0
  573. package/dist/esm/packages/taco/src/components/Icon/components/AttachCancel.js.map +1 -0
  574. package/dist/esm/packages/taco/src/components/Icon/components/AttachWarning.js +19 -0
  575. package/dist/esm/packages/taco/src/components/Icon/components/AttachWarning.js.map +1 -0
  576. package/dist/esm/packages/taco/src/components/Icon/components/Autotext.js +17 -0
  577. package/dist/esm/packages/taco/src/components/Icon/components/Autotext.js.map +1 -0
  578. package/dist/esm/packages/taco/src/components/Icon/components/AutotextInsert.js +17 -0
  579. package/dist/esm/packages/taco/src/components/Icon/components/AutotextInsert.js.map +1 -0
  580. package/dist/esm/packages/taco/src/components/Icon/components/Basic.js +17 -0
  581. package/dist/esm/packages/taco/src/components/Icon/components/Basic.js.map +1 -0
  582. package/dist/esm/packages/taco/src/components/Icon/components/BasicTabs.js +17 -0
  583. package/dist/esm/packages/taco/src/components/Icon/components/BasicTabs.js.map +1 -0
  584. package/dist/esm/packages/taco/src/components/Icon/components/BellSolid.js +17 -0
  585. package/dist/esm/packages/taco/src/components/Icon/components/BellSolid.js.map +1 -0
  586. package/dist/esm/packages/taco/src/components/Icon/components/Book.js +17 -0
  587. package/dist/esm/packages/taco/src/components/Icon/components/Book.js.map +1 -0
  588. package/dist/esm/packages/taco/src/components/Icon/components/Booking.js +17 -0
  589. package/dist/esm/packages/taco/src/components/Icon/components/Booking.js.map +1 -0
  590. package/dist/esm/packages/taco/src/components/Icon/components/Budget.js +17 -0
  591. package/dist/esm/packages/taco/src/components/Icon/components/Budget.js.map +1 -0
  592. package/dist/esm/packages/taco/src/components/Icon/components/Calendar.js +17 -0
  593. package/dist/esm/packages/taco/src/components/Icon/components/Calendar.js.map +1 -0
  594. package/dist/esm/packages/taco/src/components/Icon/components/CashAccount.js +16 -0
  595. package/dist/esm/packages/taco/src/components/Icon/components/CashAccount.js.map +1 -0
  596. package/dist/esm/packages/taco/src/components/Icon/components/CashReports.js +17 -0
  597. package/dist/esm/packages/taco/src/components/Icon/components/CashReports.js.map +1 -0
  598. package/dist/esm/packages/taco/src/components/Icon/components/ChartArea.js +19 -0
  599. package/dist/esm/packages/taco/src/components/Icon/components/ChartArea.js.map +1 -0
  600. package/dist/esm/packages/taco/src/components/Icon/components/ChartBar.js +19 -0
  601. package/dist/esm/packages/taco/src/components/Icon/components/ChartBar.js.map +1 -0
  602. package/dist/esm/packages/taco/src/components/Icon/components/ChartLine.js +19 -0
  603. package/dist/esm/packages/taco/src/components/Icon/components/ChartLine.js.map +1 -0
  604. package/dist/esm/packages/taco/src/components/Icon/components/ChartPie.js +17 -0
  605. package/dist/esm/packages/taco/src/components/Icon/components/ChartPie.js.map +1 -0
  606. package/dist/esm/packages/taco/src/components/Icon/components/ChartTable.js +19 -0
  607. package/dist/esm/packages/taco/src/components/Icon/components/ChartTable.js.map +1 -0
  608. package/dist/esm/packages/taco/src/components/Icon/components/Chat.js +17 -0
  609. package/dist/esm/packages/taco/src/components/Icon/components/Chat.js.map +1 -0
  610. package/dist/esm/packages/taco/src/components/Icon/components/ChatSolid.js +17 -0
  611. package/dist/esm/packages/taco/src/components/Icon/components/ChatSolid.js.map +1 -0
  612. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDown.js +17 -0
  613. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDown.js.map +1 -0
  614. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownDouble.js +17 -0
  615. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownDouble.js.map +1 -0
  616. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownSolid.js +17 -0
  617. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownSolid.js.map +1 -0
  618. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeft.js +17 -0
  619. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeft.js.map +1 -0
  620. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftDouble.js +17 -0
  621. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftDouble.js.map +1 -0
  622. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftSolid.js +19 -0
  623. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftSolid.js.map +1 -0
  624. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRight.js +17 -0
  625. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRight.js.map +1 -0
  626. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightDouble.js +17 -0
  627. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightDouble.js.map +1 -0
  628. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightSolid.js +19 -0
  629. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightSolid.js.map +1 -0
  630. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUp.js +17 -0
  631. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUp.js.map +1 -0
  632. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpDouble.js +17 -0
  633. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpDouble.js.map +1 -0
  634. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpSolid.js +17 -0
  635. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpSolid.js.map +1 -0
  636. package/dist/esm/packages/taco/src/components/Icon/components/CircleClose.js +18 -0
  637. package/dist/esm/packages/taco/src/components/Icon/components/CircleClose.js.map +1 -0
  638. package/dist/esm/packages/taco/src/components/Icon/components/CircleInformation.js +19 -0
  639. package/dist/esm/packages/taco/src/components/Icon/components/CircleInformation.js.map +1 -0
  640. package/dist/esm/packages/taco/src/components/Icon/components/CircleMinus.js +17 -0
  641. package/dist/esm/packages/taco/src/components/Icon/components/CircleMinus.js.map +1 -0
  642. package/dist/esm/packages/taco/src/components/Icon/components/CirclePlus.js +17 -0
  643. package/dist/esm/packages/taco/src/components/Icon/components/CirclePlus.js.map +1 -0
  644. package/dist/esm/packages/taco/src/components/Icon/components/CircleQuestionmark.js +19 -0
  645. package/dist/esm/packages/taco/src/components/Icon/components/CircleQuestionmark.js.map +1 -0
  646. package/dist/esm/packages/taco/src/components/Icon/components/CircleTick.js +17 -0
  647. package/dist/esm/packages/taco/src/components/Icon/components/CircleTick.js.map +1 -0
  648. package/dist/esm/packages/taco/src/components/Icon/components/CircleWarning.js +19 -0
  649. package/dist/esm/packages/taco/src/components/Icon/components/CircleWarning.js.map +1 -0
  650. package/dist/esm/packages/taco/src/components/Icon/components/Clamp.js +17 -0
  651. package/dist/esm/packages/taco/src/components/Icon/components/Clamp.js.map +1 -0
  652. package/dist/esm/packages/taco/src/components/Icon/components/ClampOpen.js +17 -0
  653. package/dist/esm/packages/taco/src/components/Icon/components/ClampOpen.js.map +1 -0
  654. package/dist/esm/packages/taco/src/components/Icon/components/Close.js +17 -0
  655. package/dist/esm/packages/taco/src/components/Icon/components/Close.js.map +1 -0
  656. package/dist/esm/packages/taco/src/components/Icon/components/ColumnFreeze.js +19 -0
  657. package/dist/esm/packages/taco/src/components/Icon/components/ColumnFreeze.js.map +1 -0
  658. package/dist/esm/packages/taco/src/components/Icon/components/ColumnUnfreeze.js +19 -0
  659. package/dist/esm/packages/taco/src/components/Icon/components/ColumnUnfreeze.js.map +1 -0
  660. package/dist/esm/packages/taco/src/components/Icon/components/Columns.js +19 -0
  661. package/dist/esm/packages/taco/src/components/Icon/components/Columns.js.map +1 -0
  662. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionEnable.js +16 -0
  663. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionEnable.js.map +1 -0
  664. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionRevoke.js +16 -0
  665. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionRevoke.js.map +1 -0
  666. package/dist/esm/packages/taco/src/components/Icon/components/Contacts.js +17 -0
  667. package/dist/esm/packages/taco/src/components/Icon/components/Contacts.js.map +1 -0
  668. package/dist/esm/packages/taco/src/components/Icon/components/Copy.js +17 -0
  669. package/dist/esm/packages/taco/src/components/Icon/components/Copy.js.map +1 -0
  670. package/dist/esm/packages/taco/src/components/Icon/components/Courses.js +16 -0
  671. package/dist/esm/packages/taco/src/components/Icon/components/Courses.js.map +1 -0
  672. package/dist/esm/packages/taco/src/components/Icon/components/Credit.js +17 -0
  673. package/dist/esm/packages/taco/src/components/Icon/components/Credit.js.map +1 -0
  674. package/dist/esm/packages/taco/src/components/Icon/components/Delete.js +17 -0
  675. package/dist/esm/packages/taco/src/components/Icon/components/Delete.js.map +1 -0
  676. package/dist/esm/packages/taco/src/components/Icon/components/DeletePermanently.js +17 -0
  677. package/dist/esm/packages/taco/src/components/Icon/components/DeletePermanently.js.map +1 -0
  678. package/dist/esm/packages/taco/src/components/Icon/components/Depecriate.js +17 -0
  679. package/dist/esm/packages/taco/src/components/Icon/components/Depecriate.js.map +1 -0
  680. package/dist/esm/packages/taco/src/components/Icon/components/Developer.js +17 -0
  681. package/dist/esm/packages/taco/src/components/Icon/components/Developer.js.map +1 -0
  682. package/dist/esm/packages/taco/src/components/Icon/components/DistributionTemplate.js +17 -0
  683. package/dist/esm/packages/taco/src/components/Icon/components/DistributionTemplate.js.map +1 -0
  684. package/dist/esm/packages/taco/src/components/Icon/components/Document.js +16 -0
  685. package/dist/esm/packages/taco/src/components/Icon/components/Document.js.map +1 -0
  686. package/dist/esm/packages/taco/src/components/Icon/components/DocumentApprove.js +17 -0
  687. package/dist/esm/packages/taco/src/components/Icon/components/DocumentApprove.js.map +1 -0
  688. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCreateEntry.js +17 -0
  689. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCreateEntry.js.map +1 -0
  690. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCut.js +17 -0
  691. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCut.js.map +1 -0
  692. package/dist/esm/packages/taco/src/components/Icon/components/DocumentError.js +17 -0
  693. package/dist/esm/packages/taco/src/components/Icon/components/DocumentError.js.map +1 -0
  694. package/dist/esm/packages/taco/src/components/Icon/components/DocumentIsolatePage.js +17 -0
  695. package/dist/esm/packages/taco/src/components/Icon/components/DocumentIsolatePage.js.map +1 -0
  696. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMerge.js +17 -0
  697. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMerge.js.map +1 -0
  698. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMove.js +17 -0
  699. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMove.js.map +1 -0
  700. package/dist/esm/packages/taco/src/components/Icon/components/DocumentPreview.js +17 -0
  701. package/dist/esm/packages/taco/src/components/Icon/components/DocumentPreview.js.map +1 -0
  702. package/dist/esm/packages/taco/src/components/Icon/components/DocumentReceived.js +16 -0
  703. package/dist/esm/packages/taco/src/components/Icon/components/DocumentReceived.js.map +1 -0
  704. package/dist/esm/packages/taco/src/components/Icon/components/DocumentRejectedRequest.js +16 -0
  705. package/dist/esm/packages/taco/src/components/Icon/components/DocumentRejectedRequest.js.map +1 -0
  706. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSigned.js +19 -0
  707. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSigned.js.map +1 -0
  708. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSignedSolid.js +17 -0
  709. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSignedSolid.js.map +1 -0
  710. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSplit.js +17 -0
  711. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSplit.js.map +1 -0
  712. package/dist/esm/packages/taco/src/components/Icon/components/DocumentTime.js +17 -0
  713. package/dist/esm/packages/taco/src/components/Icon/components/DocumentTime.js.map +1 -0
  714. package/dist/esm/packages/taco/src/components/Icon/components/Download.js +17 -0
  715. package/dist/esm/packages/taco/src/components/Icon/components/Download.js.map +1 -0
  716. package/dist/esm/packages/taco/src/components/Icon/components/Drag.js +17 -0
  717. package/dist/esm/packages/taco/src/components/Icon/components/Drag.js.map +1 -0
  718. package/dist/esm/packages/taco/src/components/Icon/components/ECopedia.js +17 -0
  719. package/dist/esm/packages/taco/src/components/Icon/components/ECopedia.js.map +1 -0
  720. package/dist/esm/packages/taco/src/components/Icon/components/Edit.js +17 -0
  721. package/dist/esm/packages/taco/src/components/Icon/components/Edit.js.map +1 -0
  722. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js +19 -0
  723. package/dist/esm/packages/taco/src/components/Icon/components/EditSimple.js.map +1 -0
  724. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisHorizontal.js +17 -0
  725. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisHorizontal.js.map +1 -0
  726. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisVertical.js +17 -0
  727. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisVertical.js.map +1 -0
  728. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOnAccount.js +17 -0
  729. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOnAccount.js.map +1 -0
  730. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOpen.js +17 -0
  731. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOpen.js.map +1 -0
  732. package/dist/esm/packages/taco/src/components/Icon/components/EntriesWarning.js +17 -0
  733. package/dist/esm/packages/taco/src/components/Icon/components/EntriesWarning.js.map +1 -0
  734. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerInvoice.js +17 -0
  735. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -0
  736. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerPayment.js +17 -0
  737. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -0
  738. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeJournalEntry.js +17 -0
  739. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeJournalEntry.js.map +1 -0
  740. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeManualCustomerInvoice.js +17 -0
  741. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -0
  742. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierInvoice.js +17 -0
  743. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -0
  744. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierPayment.js +17 -0
  745. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -0
  746. package/dist/esm/packages/taco/src/components/Icon/components/Envelope.js +17 -0
  747. package/dist/esm/packages/taco/src/components/Icon/components/Envelope.js.map +1 -0
  748. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeApproved.js +17 -0
  749. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeApproved.js.map +1 -0
  750. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeSolid.js +19 -0
  751. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeSolid.js.map +1 -0
  752. package/dist/esm/packages/taco/src/components/Icon/components/ExpandView.js +17 -0
  753. package/dist/esm/packages/taco/src/components/Icon/components/ExpandView.js.map +1 -0
  754. package/dist/esm/packages/taco/src/components/Icon/components/Expenses.js +17 -0
  755. package/dist/esm/packages/taco/src/components/Icon/components/Expenses.js.map +1 -0
  756. package/dist/esm/packages/taco/src/components/Icon/components/Export.js +17 -0
  757. package/dist/esm/packages/taco/src/components/Icon/components/Export.js.map +1 -0
  758. package/dist/esm/packages/taco/src/components/Icon/components/ExportToExcel.js +17 -0
  759. package/dist/esm/packages/taco/src/components/Icon/components/ExportToExcel.js.map +1 -0
  760. package/dist/esm/packages/taco/src/components/Icon/components/ExportToPdf.js +17 -0
  761. package/dist/esm/packages/taco/src/components/Icon/components/ExportToPdf.js.map +1 -0
  762. package/dist/esm/packages/taco/src/components/Icon/components/EyeOff.js +19 -0
  763. package/dist/esm/packages/taco/src/components/Icon/components/EyeOff.js.map +1 -0
  764. package/dist/esm/packages/taco/src/components/Icon/components/EyeOn.js +19 -0
  765. package/dist/esm/packages/taco/src/components/Icon/components/EyeOn.js.map +1 -0
  766. package/dist/esm/packages/taco/src/components/Icon/components/Filter.js +17 -0
  767. package/dist/esm/packages/taco/src/components/Icon/components/Filter.js.map +1 -0
  768. package/dist/esm/packages/taco/src/components/Icon/components/FilterSolid.js +17 -0
  769. package/dist/esm/packages/taco/src/components/Icon/components/FilterSolid.js.map +1 -0
  770. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js +19 -0
  771. package/dist/esm/packages/taco/src/components/Icon/components/FontSize.js.map +1 -0
  772. package/dist/esm/packages/taco/src/components/Icon/components/GraphSolid.js +17 -0
  773. package/dist/esm/packages/taco/src/components/Icon/components/GraphSolid.js.map +1 -0
  774. package/dist/esm/packages/taco/src/components/Icon/components/Hash.js +17 -0
  775. package/dist/esm/packages/taco/src/components/Icon/components/Hash.js.map +1 -0
  776. package/dist/esm/packages/taco/src/components/Icon/components/HeightExtraTall.js +19 -0
  777. package/dist/esm/packages/taco/src/components/Icon/components/HeightExtraTall.js.map +1 -0
  778. package/dist/esm/packages/taco/src/components/Icon/components/HeightMedium.js +19 -0
  779. package/dist/esm/packages/taco/src/components/Icon/components/HeightMedium.js.map +1 -0
  780. package/dist/esm/packages/taco/src/components/Icon/components/HeightShort.js +19 -0
  781. package/dist/esm/packages/taco/src/components/Icon/components/HeightShort.js.map +1 -0
  782. package/dist/esm/packages/taco/src/components/Icon/components/HeightTall.js +19 -0
  783. package/dist/esm/packages/taco/src/components/Icon/components/HeightTall.js.map +1 -0
  784. package/dist/esm/packages/taco/src/components/Icon/components/House.js +19 -0
  785. package/dist/esm/packages/taco/src/components/Icon/components/House.js.map +1 -0
  786. package/dist/esm/packages/taco/src/components/Icon/components/HouseSolid.js +17 -0
  787. package/dist/esm/packages/taco/src/components/Icon/components/HouseSolid.js.map +1 -0
  788. package/dist/esm/packages/taco/src/components/Icon/components/Id.js +19 -0
  789. package/dist/esm/packages/taco/src/components/Icon/components/Id.js.map +1 -0
  790. package/dist/esm/packages/taco/src/components/Icon/components/Images.js +17 -0
  791. package/dist/esm/packages/taco/src/components/Icon/components/Images.js.map +1 -0
  792. package/dist/esm/packages/taco/src/components/Icon/components/Import.js +17 -0
  793. package/dist/esm/packages/taco/src/components/Icon/components/Import.js.map +1 -0
  794. package/dist/esm/packages/taco/src/components/Icon/components/Inbox.js +19 -0
  795. package/dist/esm/packages/taco/src/components/Icon/components/Inbox.js.map +1 -0
  796. package/dist/esm/packages/taco/src/components/Icon/components/InboxEinvoicing.js +19 -0
  797. package/dist/esm/packages/taco/src/components/Icon/components/InboxEinvoicing.js.map +1 -0
  798. package/dist/esm/packages/taco/src/components/Icon/components/InboxScanning.js +19 -0
  799. package/dist/esm/packages/taco/src/components/Icon/components/InboxScanning.js.map +1 -0
  800. package/dist/esm/packages/taco/src/components/Icon/components/InboxSmart.js +19 -0
  801. package/dist/esm/packages/taco/src/components/Icon/components/InboxSmart.js.map +1 -0
  802. package/dist/esm/packages/taco/src/components/Icon/components/Info.js +22 -0
  803. package/dist/esm/packages/taco/src/components/Icon/components/Info.js.map +1 -0
  804. package/dist/esm/packages/taco/src/components/Icon/components/Inventory.js +17 -0
  805. package/dist/esm/packages/taco/src/components/Icon/components/Inventory.js.map +1 -0
  806. package/dist/esm/packages/taco/src/components/Icon/components/InventoryMatrix.js +17 -0
  807. package/dist/esm/packages/taco/src/components/Icon/components/InventoryMatrix.js.map +1 -0
  808. package/dist/esm/packages/taco/src/components/Icon/components/JournalPro.js +17 -0
  809. package/dist/esm/packages/taco/src/components/Icon/components/JournalPro.js.map +1 -0
  810. package/dist/esm/packages/taco/src/components/Icon/components/Layout.js +17 -0
  811. package/dist/esm/packages/taco/src/components/Icon/components/Layout.js.map +1 -0
  812. package/dist/esm/packages/taco/src/components/Icon/components/LayoutBoth.js +17 -0
  813. package/dist/esm/packages/taco/src/components/Icon/components/LayoutBoth.js.map +1 -0
  814. package/dist/esm/packages/taco/src/components/Icon/components/LayoutFirst.js +17 -0
  815. package/dist/esm/packages/taco/src/components/Icon/components/LayoutFirst.js.map +1 -0
  816. package/dist/esm/packages/taco/src/components/Icon/components/LayoutLast.js +17 -0
  817. package/dist/esm/packages/taco/src/components/Icon/components/LayoutLast.js.map +1 -0
  818. package/dist/esm/packages/taco/src/components/Icon/components/LayoutNone.js +17 -0
  819. package/dist/esm/packages/taco/src/components/Icon/components/LayoutNone.js.map +1 -0
  820. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCard.js +17 -0
  821. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCard.js.map +1 -0
  822. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardCustomerReminder.js +17 -0
  823. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -0
  824. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardManualCustomerInvoice.js +17 -0
  825. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -0
  826. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardObsoleteStock.js +17 -0
  827. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -0
  828. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardOpeningEntry.js +17 -0
  829. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -0
  830. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardReservedEntry.js +17 -0
  831. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardReservedEntry.js.map +1 -0
  832. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardShrinkagePilferage.js +17 -0
  833. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -0
  834. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardStockAdjustment.js +17 -0
  835. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -0
  836. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardTransferredOpeningEntry.js +17 -0
  837. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -0
  838. package/dist/esm/packages/taco/src/components/Icon/components/Lightbulb.js +17 -0
  839. package/dist/esm/packages/taco/src/components/Icon/components/Lightbulb.js.map +1 -0
  840. package/dist/esm/packages/taco/src/components/Icon/components/Line.js +17 -0
  841. package/dist/esm/packages/taco/src/components/Icon/components/Line.js.map +1 -0
  842. package/dist/esm/packages/taco/src/components/Icon/components/LinkExternal.js +22 -0
  843. package/dist/esm/packages/taco/src/components/Icon/components/LinkExternal.js.map +1 -0
  844. package/dist/esm/packages/taco/src/components/Icon/components/List.js +17 -0
  845. package/dist/esm/packages/taco/src/components/Icon/components/List.js.map +1 -0
  846. package/dist/esm/packages/taco/src/components/Icon/components/ListBulleted.js +17 -0
  847. package/dist/esm/packages/taco/src/components/Icon/components/ListBulleted.js.map +1 -0
  848. package/dist/esm/packages/taco/src/components/Icon/components/ListSearch.js +17 -0
  849. package/dist/esm/packages/taco/src/components/Icon/components/ListSearch.js.map +1 -0
  850. package/dist/esm/packages/taco/src/components/Icon/components/Location.js +17 -0
  851. package/dist/esm/packages/taco/src/components/Icon/components/Location.js.map +1 -0
  852. package/dist/esm/packages/taco/src/components/Icon/components/Lock.js +19 -0
  853. package/dist/esm/packages/taco/src/components/Icon/components/Lock.js.map +1 -0
  854. package/dist/esm/packages/taco/src/components/Icon/components/LockOpen.js +17 -0
  855. package/dist/esm/packages/taco/src/components/Icon/components/LockOpen.js.map +1 -0
  856. package/dist/esm/packages/taco/src/components/Icon/components/Log.js +17 -0
  857. package/dist/esm/packages/taco/src/components/Icon/components/Log.js.map +1 -0
  858. package/dist/esm/packages/taco/src/components/Icon/components/LogOut.js +19 -0
  859. package/dist/esm/packages/taco/src/components/Icon/components/LogOut.js.map +1 -0
  860. package/dist/esm/packages/taco/src/components/Icon/components/Market.js +17 -0
  861. package/dist/esm/packages/taco/src/components/Icon/components/Market.js.map +1 -0
  862. package/dist/esm/packages/taco/src/components/Icon/components/MastercardOs.js +23 -0
  863. package/dist/esm/packages/taco/src/components/Icon/components/MastercardOs.js.map +1 -0
  864. package/dist/esm/packages/taco/src/components/Icon/components/MatchAmount.js +17 -0
  865. package/dist/esm/packages/taco/src/components/Icon/components/MatchAmount.js.map +1 -0
  866. package/dist/esm/packages/taco/src/components/Icon/components/MatchEntries.js +17 -0
  867. package/dist/esm/packages/taco/src/components/Icon/components/MatchEntries.js.map +1 -0
  868. package/dist/esm/packages/taco/src/components/Icon/components/Menu.js +17 -0
  869. package/dist/esm/packages/taco/src/components/Icon/components/Menu.js.map +1 -0
  870. package/dist/esm/packages/taco/src/components/Icon/components/Mileage.js +17 -0
  871. package/dist/esm/packages/taco/src/components/Icon/components/Mileage.js.map +1 -0
  872. package/dist/esm/packages/taco/src/components/Icon/components/ModalResize.js +17 -0
  873. package/dist/esm/packages/taco/src/components/Icon/components/ModalResize.js.map +1 -0
  874. package/dist/esm/packages/taco/src/components/Icon/components/ModalShrink.js +17 -0
  875. package/dist/esm/packages/taco/src/components/Icon/components/ModalShrink.js.map +1 -0
  876. package/dist/esm/packages/taco/src/components/Icon/components/More.js +17 -0
  877. package/dist/esm/packages/taco/src/components/Icon/components/More.js.map +1 -0
  878. package/dist/esm/packages/taco/src/components/Icon/components/MoreSolid.js +17 -0
  879. package/dist/esm/packages/taco/src/components/Icon/components/MoreSolid.js.map +1 -0
  880. package/dist/esm/packages/taco/src/components/Icon/components/Move.js +17 -0
  881. package/dist/esm/packages/taco/src/components/Icon/components/Move.js.map +1 -0
  882. package/dist/esm/packages/taco/src/components/Icon/components/NavigationList.js +17 -0
  883. package/dist/esm/packages/taco/src/components/Icon/components/NavigationList.js.map +1 -0
  884. package/dist/esm/packages/taco/src/components/Icon/components/Note.js +17 -0
  885. package/dist/esm/packages/taco/src/components/Icon/components/Note.js.map +1 -0
  886. package/dist/esm/packages/taco/src/components/Icon/components/NoteFollowUp.js +17 -0
  887. package/dist/esm/packages/taco/src/components/Icon/components/NoteFollowUp.js.map +1 -0
  888. package/dist/esm/packages/taco/src/components/Icon/components/NoteRead.js +17 -0
  889. package/dist/esm/packages/taco/src/components/Icon/components/NoteRead.js.map +1 -0
  890. package/dist/esm/packages/taco/src/components/Icon/components/NovemberFirst.js +20 -0
  891. package/dist/esm/packages/taco/src/components/Icon/components/NovemberFirst.js.map +1 -0
  892. package/dist/esm/packages/taco/src/components/Icon/components/Numbers.js +17 -0
  893. package/dist/esm/packages/taco/src/components/Icon/components/Numbers.js.map +1 -0
  894. package/dist/esm/packages/taco/src/components/Icon/components/PartnerApi.js +17 -0
  895. package/dist/esm/packages/taco/src/components/Icon/components/PartnerApi.js.map +1 -0
  896. package/dist/esm/packages/taco/src/components/Icon/components/PaymentPaid.js +19 -0
  897. package/dist/esm/packages/taco/src/components/Icon/components/PaymentPaid.js.map +1 -0
  898. package/dist/esm/packages/taco/src/components/Icon/components/PaymentUnpaid.js +19 -0
  899. package/dist/esm/packages/taco/src/components/Icon/components/PaymentUnpaid.js.map +1 -0
  900. package/dist/esm/packages/taco/src/components/Icon/components/Period.js +17 -0
  901. package/dist/esm/packages/taco/src/components/Icon/components/Period.js.map +1 -0
  902. package/dist/esm/packages/taco/src/components/Icon/components/PersonChange.js +17 -0
  903. package/dist/esm/packages/taco/src/components/Icon/components/PersonChange.js.map +1 -0
  904. package/dist/esm/packages/taco/src/components/Icon/components/PersonMinus.js +17 -0
  905. package/dist/esm/packages/taco/src/components/Icon/components/PersonMinus.js.map +1 -0
  906. package/dist/esm/packages/taco/src/components/Icon/components/PersonPlus.js +17 -0
  907. package/dist/esm/packages/taco/src/components/Icon/components/PersonPlus.js.map +1 -0
  908. package/dist/esm/packages/taco/src/components/Icon/components/PersonTick.js +17 -0
  909. package/dist/esm/packages/taco/src/components/Icon/components/PersonTick.js.map +1 -0
  910. package/dist/esm/packages/taco/src/components/Icon/components/Phone.js +17 -0
  911. package/dist/esm/packages/taco/src/components/Icon/components/Phone.js.map +1 -0
  912. package/dist/esm/packages/taco/src/components/Icon/components/PhoneSolid.js +17 -0
  913. package/dist/esm/packages/taco/src/components/Icon/components/PhoneSolid.js.map +1 -0
  914. package/dist/esm/packages/taco/src/components/Icon/components/Play.js +17 -0
  915. package/dist/esm/packages/taco/src/components/Icon/components/Play.js.map +1 -0
  916. package/dist/esm/packages/taco/src/components/Icon/components/PlusMinus.js +17 -0
  917. package/dist/esm/packages/taco/src/components/Icon/components/PlusMinus.js.map +1 -0
  918. package/dist/esm/packages/taco/src/components/Icon/components/Print.js +17 -0
  919. package/dist/esm/packages/taco/src/components/Icon/components/Print.js.map +1 -0
  920. package/dist/esm/packages/taco/src/components/Icon/components/ProcessPayment.js +17 -0
  921. package/dist/esm/packages/taco/src/components/Icon/components/ProcessPayment.js.map +1 -0
  922. package/dist/esm/packages/taco/src/components/Icon/components/ProductLedgerCard.js +17 -0
  923. package/dist/esm/packages/taco/src/components/Icon/components/ProductLedgerCard.js.map +1 -0
  924. package/dist/esm/packages/taco/src/components/Icon/components/Profile.js +19 -0
  925. package/dist/esm/packages/taco/src/components/Icon/components/Profile.js.map +1 -0
  926. package/dist/esm/packages/taco/src/components/Icon/components/ProjectCards.js +17 -0
  927. package/dist/esm/packages/taco/src/components/Icon/components/ProjectCards.js.map +1 -0
  928. package/dist/esm/packages/taco/src/components/Icon/components/Projects.js +17 -0
  929. package/dist/esm/packages/taco/src/components/Icon/components/Projects.js.map +1 -0
  930. package/dist/esm/packages/taco/src/components/Icon/components/QuestionMark.js +17 -0
  931. package/dist/esm/packages/taco/src/components/Icon/components/QuestionMark.js.map +1 -0
  932. package/dist/esm/packages/taco/src/components/Icon/components/QuestionMarkBold.js +17 -0
  933. package/dist/esm/packages/taco/src/components/Icon/components/QuestionMarkBold.js.map +1 -0
  934. package/dist/esm/packages/taco/src/components/Icon/components/Quicklinks.js +17 -0
  935. package/dist/esm/packages/taco/src/components/Icon/components/Quicklinks.js.map +1 -0
  936. package/dist/esm/packages/taco/src/components/Icon/components/RatingBankruptcy.js +17 -0
  937. package/dist/esm/packages/taco/src/components/Icon/components/RatingBankruptcy.js.map +1 -0
  938. package/dist/esm/packages/taco/src/components/Icon/components/RatingPaymentProblems.js +17 -0
  939. package/dist/esm/packages/taco/src/components/Icon/components/RatingPaymentProblems.js.map +1 -0
  940. package/dist/esm/packages/taco/src/components/Icon/components/Reconciled.js +17 -0
  941. package/dist/esm/packages/taco/src/components/Icon/components/Reconciled.js.map +1 -0
  942. package/dist/esm/packages/taco/src/components/Icon/components/Refresh.js +16 -0
  943. package/dist/esm/packages/taco/src/components/Icon/components/Refresh.js.map +1 -0
  944. package/dist/esm/packages/taco/src/components/Icon/components/Report.js +17 -0
  945. package/dist/esm/packages/taco/src/components/Icon/components/Report.js.map +1 -0
  946. package/dist/esm/packages/taco/src/components/Icon/components/ReportSolid.js +17 -0
  947. package/dist/esm/packages/taco/src/components/Icon/components/ReportSolid.js.map +1 -0
  948. package/dist/esm/packages/taco/src/components/Icon/components/Restore.js +17 -0
  949. package/dist/esm/packages/taco/src/components/Icon/components/Restore.js.map +1 -0
  950. package/dist/esm/packages/taco/src/components/Icon/components/RotateLeft.js +16 -0
  951. package/dist/esm/packages/taco/src/components/Icon/components/RotateLeft.js.map +1 -0
  952. package/dist/esm/packages/taco/src/components/Icon/components/RotateRight.js +16 -0
  953. package/dist/esm/packages/taco/src/components/Icon/components/RotateRight.js.map +1 -0
  954. package/dist/esm/packages/taco/src/components/Icon/components/Sales.js +17 -0
  955. package/dist/esm/packages/taco/src/components/Icon/components/Sales.js.map +1 -0
  956. package/dist/esm/packages/taco/src/components/Icon/components/Search.js +17 -0
  957. package/dist/esm/packages/taco/src/components/Icon/components/Search.js.map +1 -0
  958. package/dist/esm/packages/taco/src/components/Icon/components/SearchBold.js +17 -0
  959. package/dist/esm/packages/taco/src/components/Icon/components/SearchBold.js.map +1 -0
  960. package/dist/esm/packages/taco/src/components/Icon/components/Secure.js +17 -0
  961. package/dist/esm/packages/taco/src/components/Icon/components/Secure.js.map +1 -0
  962. package/dist/esm/packages/taco/src/components/Icon/components/SecureTick.js +17 -0
  963. package/dist/esm/packages/taco/src/components/Icon/components/SecureTick.js.map +1 -0
  964. package/dist/esm/packages/taco/src/components/Icon/components/Settings.js +17 -0
  965. package/dist/esm/packages/taco/src/components/Icon/components/Settings.js.map +1 -0
  966. package/dist/esm/packages/taco/src/components/Icon/components/SettingsSolid.js +17 -0
  967. package/dist/esm/packages/taco/src/components/Icon/components/SettingsSolid.js.map +1 -0
  968. package/dist/esm/packages/taco/src/components/Icon/components/Shortcuts.js +17 -0
  969. package/dist/esm/packages/taco/src/components/Icon/components/Shortcuts.js.map +1 -0
  970. package/dist/esm/packages/taco/src/components/Icon/components/ShowAll.js +17 -0
  971. package/dist/esm/packages/taco/src/components/Icon/components/ShowAll.js.map +1 -0
  972. package/dist/esm/packages/taco/src/components/Icon/components/ShowLess.js +17 -0
  973. package/dist/esm/packages/taco/src/components/Icon/components/ShowLess.js.map +1 -0
  974. package/dist/esm/packages/taco/src/components/Icon/components/ShowMore.js +17 -0
  975. package/dist/esm/packages/taco/src/components/Icon/components/ShowMore.js.map +1 -0
  976. package/dist/esm/packages/taco/src/components/Icon/components/ShowTemplate.js +17 -0
  977. package/dist/esm/packages/taco/src/components/Icon/components/ShowTemplate.js.map +1 -0
  978. package/dist/esm/packages/taco/src/components/Icon/components/Sliders.js +17 -0
  979. package/dist/esm/packages/taco/src/components/Icon/components/Sliders.js.map +1 -0
  980. package/dist/esm/packages/taco/src/components/Icon/components/Smartpay.js +17 -0
  981. package/dist/esm/packages/taco/src/components/Icon/components/Smartpay.js.map +1 -0
  982. package/dist/esm/packages/taco/src/components/Icon/components/SortBy.js +17 -0
  983. package/dist/esm/packages/taco/src/components/Icon/components/SortBy.js.map +1 -0
  984. package/dist/esm/packages/taco/src/components/Icon/components/Star.js +17 -0
  985. package/dist/esm/packages/taco/src/components/Icon/components/Star.js.map +1 -0
  986. package/dist/esm/packages/taco/src/components/Icon/components/StarSolid.js +17 -0
  987. package/dist/esm/packages/taco/src/components/Icon/components/StarSolid.js.map +1 -0
  988. package/dist/esm/packages/taco/src/components/Icon/components/Subscriptions.js +17 -0
  989. package/dist/esm/packages/taco/src/components/Icon/components/Subscriptions.js.map +1 -0
  990. package/dist/esm/packages/taco/src/components/Icon/components/SystemEntries.js +17 -0
  991. package/dist/esm/packages/taco/src/components/Icon/components/SystemEntries.js.map +1 -0
  992. package/dist/esm/packages/taco/src/components/Icon/components/Tag.js +17 -0
  993. package/dist/esm/packages/taco/src/components/Icon/components/Tag.js.map +1 -0
  994. package/dist/esm/packages/taco/src/components/Icon/components/TemplateOverride.js +17 -0
  995. package/dist/esm/packages/taco/src/components/Icon/components/TemplateOverride.js.map +1 -0
  996. package/dist/esm/packages/taco/src/components/Icon/components/Templates.js +17 -0
  997. package/dist/esm/packages/taco/src/components/Icon/components/Templates.js.map +1 -0
  998. package/dist/esm/packages/taco/src/components/Icon/components/ThumbBoth.js +17 -0
  999. package/dist/esm/packages/taco/src/components/Icon/components/ThumbBoth.js.map +1 -0
  1000. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDown.js +17 -0
  1001. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDown.js.map +1 -0
  1002. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDownSolid.js +17 -0
  1003. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDownSolid.js.map +1 -0
  1004. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUp.js +17 -0
  1005. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUp.js.map +1 -0
  1006. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUpSolid.js +17 -0
  1007. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUpSolid.js.map +1 -0
  1008. package/dist/esm/packages/taco/src/components/Icon/components/Tick.js +17 -0
  1009. package/dist/esm/packages/taco/src/components/Icon/components/Tick.js.map +1 -0
  1010. package/dist/esm/packages/taco/src/components/Icon/components/TickBold.js +19 -0
  1011. package/dist/esm/packages/taco/src/components/Icon/components/TickBold.js.map +1 -0
  1012. package/dist/esm/packages/taco/src/components/Icon/components/Time.js +17 -0
  1013. package/dist/esm/packages/taco/src/components/Icon/components/Time.js.map +1 -0
  1014. package/dist/esm/packages/taco/src/components/Icon/components/Transfer.js +17 -0
  1015. package/dist/esm/packages/taco/src/components/Icon/components/Transfer.js.map +1 -0
  1016. package/dist/esm/packages/taco/src/components/Icon/components/TransferCancel.js +23 -0
  1017. package/dist/esm/packages/taco/src/components/Icon/components/TransferCancel.js.map +1 -0
  1018. package/dist/esm/packages/taco/src/components/Icon/components/TransferLocked.js +17 -0
  1019. package/dist/esm/packages/taco/src/components/Icon/components/TransferLocked.js.map +1 -0
  1020. package/dist/esm/packages/taco/src/components/Icon/components/Undo.js +25 -0
  1021. package/dist/esm/packages/taco/src/components/Icon/components/Undo.js.map +1 -0
  1022. package/dist/esm/packages/taco/src/components/Icon/components/Undock.js +17 -0
  1023. package/dist/esm/packages/taco/src/components/Icon/components/Undock.js.map +1 -0
  1024. package/dist/esm/packages/taco/src/components/Icon/components/Unreconciled.js +17 -0
  1025. package/dist/esm/packages/taco/src/components/Icon/components/Unreconciled.js.map +1 -0
  1026. package/dist/esm/packages/taco/src/components/Icon/components/Warning.js +17 -0
  1027. package/dist/esm/packages/taco/src/components/Icon/components/Warning.js.map +1 -0
  1028. package/dist/esm/packages/taco/src/components/Icon/components/Webshop.js +17 -0
  1029. package/dist/esm/packages/taco/src/components/Icon/components/Webshop.js.map +1 -0
  1030. package/dist/esm/packages/taco/src/components/Icon/components/Website.js +17 -0
  1031. package/dist/esm/packages/taco/src/components/Icon/components/Website.js.map +1 -0
  1032. package/dist/esm/packages/taco/src/components/Icon/components/Workflow.js +16 -0
  1033. package/dist/esm/packages/taco/src/components/Icon/components/Workflow.js.map +1 -0
  1034. package/dist/esm/packages/taco/src/components/Icon/components/WorkflowTemplateBasic.js +18 -0
  1035. package/dist/esm/packages/taco/src/components/Icon/components/WorkflowTemplateBasic.js.map +1 -0
  1036. package/dist/esm/packages/taco/src/components/Icon/components/Zoom.js +17 -0
  1037. package/dist/esm/packages/taco/src/components/Icon/components/Zoom.js.map +1 -0
  1038. package/dist/esm/packages/taco/src/components/Icon/components/index.js +504 -0
  1039. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -0
  1040. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js +48 -0
  1041. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -0
  1042. package/dist/esm/packages/taco/src/components/Input/Input.js +160 -0
  1043. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -0
  1044. package/dist/esm/packages/taco/src/components/Input/util.js +34 -0
  1045. package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -0
  1046. package/dist/esm/packages/taco/src/components/Layout/Layout.js +28 -0
  1047. package/dist/esm/packages/taco/src/components/Layout/Layout.js.map +1 -0
  1048. package/dist/esm/packages/taco/src/components/Layout/components/Content.js +13 -0
  1049. package/dist/esm/packages/taco/src/components/Layout/components/Content.js.map +1 -0
  1050. package/dist/esm/packages/taco/src/components/Layout/components/Context.js +9 -0
  1051. package/dist/esm/packages/taco/src/components/Layout/components/Context.js.map +1 -0
  1052. package/dist/esm/packages/taco/src/components/Layout/components/Page.js +13 -0
  1053. package/dist/esm/packages/taco/src/components/Layout/components/Page.js.map +1 -0
  1054. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js +87 -0
  1055. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js.map +1 -0
  1056. package/dist/esm/packages/taco/src/components/Layout/components/Top.js +15 -0
  1057. package/dist/esm/packages/taco/src/components/Layout/components/Top.js.map +1 -0
  1058. package/dist/esm/packages/taco/src/components/List/List.js +21 -0
  1059. package/dist/esm/packages/taco/src/components/List/List.js.map +1 -0
  1060. package/dist/esm/packages/taco/src/components/List/components/Button.js +12 -0
  1061. package/dist/esm/packages/taco/src/components/List/components/Button.js.map +1 -0
  1062. package/dist/esm/packages/taco/src/components/List/components/Collapsible.js +30 -0
  1063. package/dist/esm/packages/taco/src/components/List/components/Collapsible.js.map +1 -0
  1064. package/dist/esm/packages/taco/src/components/List/components/Group.js +11 -0
  1065. package/dist/esm/packages/taco/src/components/List/components/Group.js.map +1 -0
  1066. package/dist/esm/packages/taco/src/components/List/components/Item.js +40 -0
  1067. package/dist/esm/packages/taco/src/components/List/components/Item.js.map +1 -0
  1068. package/dist/esm/packages/taco/src/components/List/components/Link.js +27 -0
  1069. package/dist/esm/packages/taco/src/components/List/components/Link.js.map +1 -0
  1070. package/dist/esm/packages/taco/src/components/List/components/Toggle.js +105 -0
  1071. package/dist/esm/packages/taco/src/components/List/components/Toggle.js.map +1 -0
  1072. package/dist/esm/packages/taco/src/components/Listbox/Listbox.js +55 -0
  1073. package/dist/esm/packages/taco/src/components/Listbox/Listbox.js.map +1 -0
  1074. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +168 -0
  1075. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -0
  1076. package/dist/esm/packages/taco/src/components/Listbox/useListbox.js +130 -0
  1077. package/dist/esm/packages/taco/src/components/Listbox/useListbox.js.map +1 -0
  1078. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +177 -0
  1079. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js.map +1 -0
  1080. package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js +26 -0
  1081. package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js.map +1 -0
  1082. package/dist/esm/packages/taco/src/components/Listbox/util.js +130 -0
  1083. package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -0
  1084. package/dist/esm/packages/taco/src/components/Menu/Context.js +9 -0
  1085. package/dist/esm/packages/taco/src/components/Menu/Context.js.map +1 -0
  1086. package/dist/esm/packages/taco/src/components/Menu/Menu.js +62 -0
  1087. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -0
  1088. package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js +32 -0
  1089. package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js.map +1 -0
  1090. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +61 -0
  1091. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -0
  1092. package/dist/esm/packages/taco/src/components/Menu/components/Header.js +19 -0
  1093. package/dist/esm/packages/taco/src/components/Menu/components/Header.js.map +1 -0
  1094. package/dist/esm/packages/taco/src/components/Menu/components/Item.js +107 -0
  1095. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -0
  1096. package/dist/esm/packages/taco/src/components/Menu/components/Link.js +37 -0
  1097. package/dist/esm/packages/taco/src/components/Menu/components/Link.js.map +1 -0
  1098. package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js +49 -0
  1099. package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js.map +1 -0
  1100. package/dist/esm/packages/taco/src/components/Menu/components/Separator.js +13 -0
  1101. package/dist/esm/packages/taco/src/components/Menu/components/Separator.js.map +1 -0
  1102. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js +22 -0
  1103. package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js.map +1 -0
  1104. package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js +33 -0
  1105. package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js.map +1 -0
  1106. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js +30 -0
  1107. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js.map +1 -0
  1108. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js +120 -0
  1109. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js.map +1 -0
  1110. package/dist/esm/packages/taco/src/components/Navigation2/Navigation2.js +31 -0
  1111. package/dist/esm/packages/taco/src/components/Navigation2/Navigation2.js.map +1 -0
  1112. package/dist/esm/packages/taco/src/components/Navigation2/components/Content.js +20 -0
  1113. package/dist/esm/packages/taco/src/components/Navigation2/components/Content.js.map +1 -0
  1114. package/dist/esm/packages/taco/src/components/Navigation2/components/Group.js +46 -0
  1115. package/dist/esm/packages/taco/src/components/Navigation2/components/Group.js.map +1 -0
  1116. package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js +72 -0
  1117. package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js.map +1 -0
  1118. package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js +25 -0
  1119. package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js.map +1 -0
  1120. package/dist/esm/packages/taco/src/components/Navigation2/components/util.js +12 -0
  1121. package/dist/esm/packages/taco/src/components/Navigation2/components/util.js.map +1 -0
  1122. package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js +82 -0
  1123. package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js.map +1 -0
  1124. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js +44 -0
  1125. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -0
  1126. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js +102 -0
  1127. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -0
  1128. package/dist/esm/packages/taco/src/components/Pagination/usePagination.js +15 -0
  1129. package/dist/esm/packages/taco/src/components/Pagination/usePagination.js.map +1 -0
  1130. package/dist/esm/packages/taco/src/components/Pagination/usePaginationShortcuts.js +44 -0
  1131. package/dist/esm/packages/taco/src/components/Pagination/usePaginationShortcuts.js.map +1 -0
  1132. package/dist/esm/packages/taco/src/components/Popover/Popover.js +106 -0
  1133. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -0
  1134. package/dist/esm/packages/taco/src/components/Popover/Primitives.js +27 -0
  1135. package/dist/esm/packages/taco/src/components/Popover/Primitives.js.map +1 -0
  1136. package/dist/esm/packages/taco/src/components/Popover/util.js +4 -0
  1137. package/dist/esm/packages/taco/src/components/Popover/util.js.map +1 -0
  1138. package/dist/esm/packages/taco/src/components/Progress/Progress.js +30 -0
  1139. package/dist/esm/packages/taco/src/components/Progress/Progress.js.map +1 -0
  1140. package/dist/esm/packages/taco/src/components/Provider/Localization.js +333 -0
  1141. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -0
  1142. package/dist/esm/packages/taco/src/components/Provider/Provider.js +24 -0
  1143. package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -0
  1144. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js +103 -0
  1145. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -0
  1146. package/dist/esm/packages/taco/src/components/RadioGroup/util.js +14 -0
  1147. package/dist/esm/packages/taco/src/components/RadioGroup/util.js.map +1 -0
  1148. package/dist/esm/packages/taco/src/components/Report/Report.js +35 -0
  1149. package/dist/esm/packages/taco/src/components/Report/Report.js.map +1 -0
  1150. package/dist/esm/packages/taco/src/components/Report/useReport.js +14 -0
  1151. package/dist/esm/packages/taco/src/components/Report/useReport.js.map +1 -0
  1152. package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js +38 -0
  1153. package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js.map +1 -0
  1154. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +68 -0
  1155. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -0
  1156. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +194 -0
  1157. package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -0
  1158. package/dist/esm/packages/taco/src/components/Select/Select.js +98 -0
  1159. package/dist/esm/packages/taco/src/components/Select/Select.js.map +1 -0
  1160. package/dist/esm/packages/taco/src/components/Select/useSelect.js +211 -0
  1161. package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -0
  1162. package/dist/esm/packages/taco/src/components/Select2/Select2.js +339 -0
  1163. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -0
  1164. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js +15 -0
  1165. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -0
  1166. package/dist/esm/packages/taco/src/components/Select2/components/Context.js +7 -0
  1167. package/dist/esm/packages/taco/src/components/Select2/components/Context.js.map +1 -0
  1168. package/dist/esm/packages/taco/src/components/Select2/components/Create.js +113 -0
  1169. package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -0
  1170. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +197 -0
  1171. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -0
  1172. package/dist/esm/packages/taco/src/components/Select2/components/Group.js +28 -0
  1173. package/dist/esm/packages/taco/src/components/Select2/components/Group.js.map +1 -0
  1174. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +108 -0
  1175. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -0
  1176. package/dist/esm/packages/taco/src/components/Select2/components/Search.js +64 -0
  1177. package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -0
  1178. package/dist/esm/packages/taco/src/components/Select2/components/Title.js +17 -0
  1179. package/dist/esm/packages/taco/src/components/Select2/components/Title.js.map +1 -0
  1180. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +274 -0
  1181. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -0
  1182. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +66 -0
  1183. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -0
  1184. package/dist/esm/packages/taco/src/components/Select2/utilities.js +21 -0
  1185. package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -0
  1186. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +58 -0
  1187. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -0
  1188. package/dist/esm/packages/taco/src/components/Spinner/Spinner.js +44 -0
  1189. package/dist/esm/packages/taco/src/components/Spinner/Spinner.js.map +1 -0
  1190. package/dist/esm/packages/taco/src/components/Switch/Switch.js +50 -0
  1191. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -0
  1192. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js +48 -0
  1193. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js.map +1 -0
  1194. package/dist/esm/packages/taco/src/components/Table/components/PaginatedTable.js +14 -0
  1195. package/dist/esm/packages/taco/src/components/Table/components/PaginatedTable.js.map +1 -0
  1196. package/dist/esm/packages/taco/src/components/Table/components/Table.js +52 -0
  1197. package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -0
  1198. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +178 -0
  1199. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -0
  1200. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +207 -0
  1201. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -0
  1202. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowDraggable.js +113 -0
  1203. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowDraggable.js.map +1 -0
  1204. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowEditing.js +92 -0
  1205. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowEditing.js.map +1 -0
  1206. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js +95 -0
  1207. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js.map +1 -0
  1208. package/dist/esm/packages/taco/src/components/Table/hooks/useRowCreation.js +95 -0
  1209. package/dist/esm/packages/taco/src/components/Table/hooks/useRowCreation.js.map +1 -0
  1210. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js +211 -0
  1211. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -0
  1212. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js +118 -0
  1213. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -0
  1214. package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js +40 -0
  1215. package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js.map +1 -0
  1216. package/dist/esm/packages/taco/src/components/Table/util/renderRow.js +100 -0
  1217. package/dist/esm/packages/taco/src/components/Table/util/renderRow.js.map +1 -0
  1218. package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js +47 -0
  1219. package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js.map +1 -0
  1220. package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js +87 -0
  1221. package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js.map +1 -0
  1222. package/dist/esm/packages/taco/src/components/Table/util.js +87 -0
  1223. package/dist/esm/packages/taco/src/components/Table/util.js.map +1 -0
  1224. package/dist/esm/packages/taco/src/components/Table3/Table3.js +60 -0
  1225. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -0
  1226. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Cell.js +39 -0
  1227. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Cell.js.map +1 -0
  1228. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +85 -0
  1229. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -0
  1230. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js +72 -0
  1231. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js.map +1 -0
  1232. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +218 -0
  1233. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -0
  1234. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingDisplayCell.js +14 -0
  1235. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -0
  1236. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/util.js +54 -0
  1237. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/util.js.map +1 -0
  1238. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js +70 -0
  1239. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js.map +1 -0
  1240. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +139 -0
  1241. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -0
  1242. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js +90 -0
  1243. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js.map +1 -0
  1244. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js +54 -0
  1245. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -0
  1246. package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js +42 -0
  1247. package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js.map +1 -0
  1248. package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js +49 -0
  1249. package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -0
  1250. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +434 -0
  1251. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -0
  1252. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +64 -0
  1253. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -0
  1254. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +43 -0
  1255. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -0
  1256. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +106 -0
  1257. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -0
  1258. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js +90 -0
  1259. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js.map +1 -0
  1260. package/dist/esm/packages/taco/src/components/Tag/Tag.js +43 -0
  1261. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -0
  1262. package/dist/esm/packages/taco/src/components/Textarea/Textarea.js +42 -0
  1263. package/dist/esm/packages/taco/src/components/Textarea/Textarea.js.map +1 -0
  1264. package/dist/esm/packages/taco/src/components/Toast/Toast.js +79 -0
  1265. package/dist/esm/packages/taco/src/components/Toast/Toast.js.map +1 -0
  1266. package/dist/esm/packages/taco/src/components/Toast/Toaster.js +152 -0
  1267. package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -0
  1268. package/dist/esm/packages/taco/src/components/Toast/util.js +43 -0
  1269. package/dist/esm/packages/taco/src/components/Toast/util.js.map +1 -0
  1270. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js +39 -0
  1271. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -0
  1272. package/dist/esm/packages/taco/src/components/Tour/Tour.js +136 -0
  1273. package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -0
  1274. package/dist/esm/packages/taco/src/components/Treeview/Treeview.js +70 -0
  1275. package/dist/esm/packages/taco/src/components/Treeview/Treeview.js.map +1 -0
  1276. package/dist/esm/packages/taco/src/components/Truncate/Truncate.js +34 -0
  1277. package/dist/esm/packages/taco/src/components/Truncate/Truncate.js.map +1 -0
  1278. package/dist/esm/packages/taco/src/components/VisuallyHidden/VisuallyHidden.js +11 -0
  1279. package/dist/esm/packages/taco/src/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  1280. package/dist/esm/packages/taco/src/hooks/useBoundaryOverflowDetection.js +18 -0
  1281. package/dist/esm/packages/taco/src/hooks/useBoundaryOverflowDetection.js.map +1 -0
  1282. package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js +43 -0
  1283. package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js.map +1 -0
  1284. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +20 -0
  1285. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -0
  1286. package/dist/esm/packages/taco/src/hooks/useId.js +10 -0
  1287. package/dist/esm/packages/taco/src/hooks/useId.js.map +1 -0
  1288. package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js +48 -0
  1289. package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js.map +1 -0
  1290. package/dist/esm/packages/taco/src/hooks/useIsFormControl.js +28 -0
  1291. package/dist/esm/packages/taco/src/hooks/useIsFormControl.js.map +1 -0
  1292. package/dist/esm/packages/taco/src/hooks/useIsHoverStatePaused.js +19 -0
  1293. package/dist/esm/packages/taco/src/hooks/useIsHoverStatePaused.js.map +1 -0
  1294. package/dist/esm/packages/taco/src/hooks/useIsLargeScreen.js +6 -0
  1295. package/dist/esm/packages/taco/src/hooks/useIsLargeScreen.js.map +1 -0
  1296. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +16 -0
  1297. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -0
  1298. package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +44 -0
  1299. package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -0
  1300. package/dist/esm/packages/taco/src/hooks/useMatchMedia.js +18 -0
  1301. package/dist/esm/packages/taco/src/hooks/useMatchMedia.js.map +1 -0
  1302. package/dist/esm/packages/taco/src/hooks/useMergedRef.js +19 -0
  1303. package/dist/esm/packages/taco/src/hooks/useMergedRef.js.map +1 -0
  1304. package/dist/esm/packages/taco/src/hooks/usePrevious.js +17 -0
  1305. package/dist/esm/packages/taco/src/hooks/usePrevious.js.map +1 -0
  1306. package/dist/esm/packages/taco/src/hooks/useTacoSettings.js +9 -0
  1307. package/dist/esm/packages/taco/src/hooks/useTacoSettings.js.map +1 -0
  1308. package/dist/esm/packages/taco/src/index.js +83 -0
  1309. package/dist/esm/packages/taco/src/index.js.map +1 -0
  1310. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +53 -0
  1311. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -0
  1312. package/dist/esm/packages/taco/src/primitives/Button.js +36 -0
  1313. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -0
  1314. package/dist/esm/packages/taco/src/primitives/Collection/Collection.js +3 -0
  1315. package/dist/esm/packages/taco/src/primitives/Collection/Collection.js.map +1 -0
  1316. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +157 -0
  1317. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -0
  1318. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js +7 -0
  1319. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js.map +1 -0
  1320. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js +19 -0
  1321. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js.map +1 -0
  1322. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js +62 -0
  1323. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -0
  1324. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js +65 -0
  1325. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -0
  1326. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js +25 -0
  1327. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js.map +1 -0
  1328. package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js +61 -0
  1329. package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js.map +1 -0
  1330. package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js +51 -0
  1331. package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js.map +1 -0
  1332. package/dist/esm/packages/taco/src/primitives/Sortable/components/List.js +28 -0
  1333. package/dist/esm/packages/taco/src/primitives/Sortable/components/List.js.map +1 -0
  1334. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +77 -0
  1335. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -0
  1336. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/Body.js +100 -0
  1337. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/Body.js.map +1 -0
  1338. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +21 -0
  1339. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -0
  1340. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/util.js +29 -0
  1341. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/util.js.map +1 -0
  1342. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js +45 -0
  1343. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -0
  1344. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +67 -0
  1345. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -0
  1346. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/Cell.js +33 -0
  1347. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/Cell.js.map +1 -0
  1348. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js +70 -0
  1349. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -0
  1350. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js +101 -0
  1351. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -0
  1352. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js +73 -0
  1353. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -0
  1354. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +71 -0
  1355. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -0
  1356. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +167 -0
  1357. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -0
  1358. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +55 -0
  1359. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -0
  1360. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +39 -0
  1361. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -0
  1362. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js +222 -0
  1363. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js.map +1 -0
  1364. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Goto.js +28 -0
  1365. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Goto.js.map +1 -0
  1366. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +164 -0
  1367. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -0
  1368. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js +66 -0
  1369. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -0
  1370. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/SortIndicator.js +41 -0
  1371. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/SortIndicator.js.map +1 -0
  1372. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/util.js +30 -0
  1373. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/util.js.map +1 -0
  1374. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +118 -0
  1375. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -0
  1376. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +64 -0
  1377. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -0
  1378. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +30 -0
  1379. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -0
  1380. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js +9 -0
  1381. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js.map +1 -0
  1382. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/Toolbar.js +54 -0
  1383. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -0
  1384. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +62 -0
  1385. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -0
  1386. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +130 -0
  1387. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -0
  1388. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +111 -0
  1389. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -0
  1390. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +50 -0
  1391. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -0
  1392. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js +66 -0
  1393. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js.map +1 -0
  1394. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +129 -0
  1395. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -0
  1396. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js +53 -0
  1397. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js.map +1 -0
  1398. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +134 -0
  1399. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -0
  1400. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js +88 -0
  1401. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js.map +1 -0
  1402. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +114 -0
  1403. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -0
  1404. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +119 -0
  1405. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -0
  1406. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +103 -0
  1407. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -0
  1408. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +30 -0
  1409. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -0
  1410. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRef.js +17 -0
  1411. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRef.js.map +1 -0
  1412. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +164 -0
  1413. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -0
  1414. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js +86 -0
  1415. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js.map +1 -0
  1416. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js +61 -0
  1417. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -0
  1418. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js +71 -0
  1419. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -0
  1420. package/dist/esm/packages/taco/src/primitives/Table/Core/listeners/useTableRowActiveListener.js +24 -0
  1421. package/dist/esm/packages/taco/src/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -0
  1422. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +54 -0
  1423. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -0
  1424. package/dist/esm/packages/taco/src/primitives/Table/Core/util/rows.js +9 -0
  1425. package/dist/esm/packages/taco/src/primitives/Table/Core/util/rows.js.map +1 -0
  1426. package/dist/esm/packages/taco/src/primitives/Table/types.js +27 -0
  1427. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -0
  1428. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +165 -0
  1429. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -0
  1430. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnFreezing.js +21 -0
  1431. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnFreezing.js.map +1 -0
  1432. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnOrdering.js +8 -0
  1433. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnOrdering.js.map +1 -0
  1434. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFontSize.js +13 -0
  1435. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFontSize.js.map +1 -0
  1436. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFooter.js +8 -0
  1437. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFooter.js.map +1 -0
  1438. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTablePrinting.js +36 -0
  1439. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTablePrinting.js.map +1 -0
  1440. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActions.js +11 -0
  1441. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActions.js.map +1 -0
  1442. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js +80 -0
  1443. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -0
  1444. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowClick.js +33 -0
  1445. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -0
  1446. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrag.js +14 -0
  1447. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrag.js.map +1 -0
  1448. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrop.js +9 -0
  1449. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrop.js.map +1 -0
  1450. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +9 -0
  1451. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -0
  1452. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGoto.js +9 -0
  1453. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGoto.js.map +1 -0
  1454. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGroups.js +9 -0
  1455. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGroups.js.map +1 -0
  1456. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowHeight.js +13 -0
  1457. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowHeight.js.map +1 -0
  1458. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js +33 -0
  1459. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -0
  1460. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js +38 -0
  1461. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -0
  1462. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +71 -0
  1463. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -0
  1464. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSettings.js +69 -0
  1465. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSettings.js.map +1 -0
  1466. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js +15 -0
  1467. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -0
  1468. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js +19 -0
  1469. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -0
  1470. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +47 -0
  1471. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -0
  1472. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js +14 -0
  1473. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -0
  1474. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +23 -0
  1475. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -0
  1476. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +19 -0
  1477. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -0
  1478. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +15 -0
  1479. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -0
  1480. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js +26 -0
  1481. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -0
  1482. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js +49 -0
  1483. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -0
  1484. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSortingListener.js +19 -0
  1485. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSortingListener.js.map +1 -0
  1486. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +126 -0
  1487. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -0
  1488. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +120 -0
  1489. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -0
  1490. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js +131 -0
  1491. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js.map +1 -0
  1492. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +147 -0
  1493. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -0
  1494. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +57 -0
  1495. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -0
  1496. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js +34 -0
  1497. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js.map +1 -0
  1498. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +282 -0
  1499. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -0
  1500. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js +18 -0
  1501. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -0
  1502. package/dist/esm/packages/taco/src/types.js +12 -0
  1503. package/dist/esm/packages/taco/src/types.js.map +1 -0
  1504. package/dist/esm/packages/taco/src/utils/aria.js +15 -0
  1505. package/dist/esm/packages/taco/src/utils/aria.js.map +1 -0
  1506. package/dist/esm/packages/taco/src/utils/date.js +63 -0
  1507. package/dist/esm/packages/taco/src/utils/date.js.map +1 -0
  1508. package/dist/esm/packages/taco/src/utils/debounce.js +10 -0
  1509. package/dist/esm/packages/taco/src/utils/debounce.js.map +1 -0
  1510. package/dist/esm/packages/taco/src/utils/device.js +5 -0
  1511. package/dist/esm/packages/taco/src/utils/device.js.map +1 -0
  1512. package/dist/esm/packages/taco/src/utils/dom.js +88 -0
  1513. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -0
  1514. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js +54 -0
  1515. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js.map +1 -0
  1516. package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js +36 -0
  1517. package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js.map +1 -0
  1518. package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js +34 -0
  1519. package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js.map +1 -0
  1520. package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js +33 -0
  1521. package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js.map +1 -0
  1522. package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js +22 -0
  1523. package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js.map +1 -0
  1524. package/dist/esm/packages/taco/src/utils/hooks/useTimer.js +49 -0
  1525. package/dist/esm/packages/taco/src/utils/hooks/useTimer.js.map +1 -0
  1526. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +20 -0
  1527. package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +1 -0
  1528. package/dist/esm/packages/taco/src/utils/input.js +42 -0
  1529. package/dist/esm/packages/taco/src/utils/input.js.map +1 -0
  1530. package/dist/esm/packages/taco/src/utils/keyboard.js +44 -0
  1531. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -0
  1532. package/dist/esm/packages/taco/src/utils/mergeRefs.js +14 -0
  1533. package/dist/esm/packages/taco/src/utils/mergeRefs.js.map +1 -0
  1534. package/dist/esm/packages/taco/src/utils/tailwind.js +92 -0
  1535. package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -0
  1536. package/dist/hooks/useBoundaryOverflowDetection.d.ts +2 -0
  1537. package/dist/hooks/useBoundingClientRectListener.d.ts +2 -0
  1538. package/dist/hooks/useDebouncedEffect.d.ts +2 -0
  1539. package/dist/hooks/useGlobalKeyDown.d.ts +2 -0
  1540. package/dist/hooks/useId.d.ts +1 -0
  1541. package/dist/hooks/useIntersectionObserver.d.ts +2 -0
  1542. package/dist/hooks/useIsFormControl.d.ts +2 -0
  1543. package/dist/hooks/useIsHoverStatePaused.d.ts +2 -0
  1544. package/dist/hooks/useIsLargeScreen.d.ts +1 -0
  1545. package/dist/hooks/useLazyEffect.d.ts +2 -0
  1546. package/dist/hooks/useLocalStorage.d.ts +2 -0
  1547. package/dist/hooks/useMatchMedia.d.ts +1 -0
  1548. package/dist/hooks/useMergedRef.d.ts +2 -0
  1549. package/dist/hooks/usePrevious.d.ts +2 -0
  1550. package/dist/hooks/useTacoSettings.d.ts +1 -0
  1551. package/dist/index.css +1085 -811
  1552. package/dist/index.d.ts +75 -3257
  1553. package/dist/index.js +8 -0
  1554. package/dist/primitives/BubbleSelect.d.ts +2 -0
  1555. package/dist/primitives/Button.d.ts +22 -0
  1556. package/dist/primitives/Collection/Collection.d.ts +2 -0
  1557. package/dist/primitives/Collection/components/Root.d.ts +12 -0
  1558. package/dist/primitives/Listbox2/Listbox2.d.ts +5 -0
  1559. package/dist/primitives/Listbox2/components/Context.d.ts +10 -0
  1560. package/dist/primitives/Listbox2/components/Group.d.ts +8 -0
  1561. package/dist/primitives/Listbox2/components/Option.d.ts +10 -0
  1562. package/dist/primitives/Listbox2/components/Root.d.ts +20 -0
  1563. package/dist/primitives/Listbox2/components/Title.d.ts +3 -0
  1564. package/dist/primitives/Listbox2/types.d.ts +2 -0
  1565. package/dist/primitives/Sortable/Sortable.d.ts +6 -0
  1566. package/dist/primitives/Sortable/components/Container.d.ts +11 -0
  1567. package/dist/primitives/Sortable/components/Item.d.ts +10 -0
  1568. package/dist/primitives/Sortable/components/List.d.ts +8 -0
  1569. package/dist/primitives/Table/Core/Table.d.ts +19 -0
  1570. package/dist/primitives/Table/Core/components/Body/Body.d.ts +11 -0
  1571. package/dist/primitives/Table/Core/components/Body/EmptyStateBody.d.ts +8 -0
  1572. package/dist/primitives/Table/Core/components/Body/util.d.ts +6 -0
  1573. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.d.ts +3 -0
  1574. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.d.ts +3 -0
  1575. package/dist/primitives/Table/Core/components/Columns/Cell/Cell.d.ts +10 -0
  1576. package/dist/primitives/Table/Core/components/Columns/Cell/util.d.ts +18 -0
  1577. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.d.ts +13 -0
  1578. package/dist/primitives/Table/Core/components/Columns/Internal/Drag.d.ts +2 -0
  1579. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.d.ts +2 -0
  1580. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.d.ts +2 -0
  1581. package/dist/primitives/Table/Core/components/Footer/Footer.d.ts +15 -0
  1582. package/dist/primitives/Table/Core/components/Footer/Summary.d.ts +6 -0
  1583. package/dist/primitives/Table/Core/components/Header/Header.d.ts +46 -0
  1584. package/dist/primitives/Table/Core/components/Header/components/Goto.d.ts +6 -0
  1585. package/dist/primitives/Table/Core/components/Header/components/Menu.d.ts +22 -0
  1586. package/dist/primitives/Table/Core/components/Header/components/Resizer.d.ts +13 -0
  1587. package/dist/primitives/Table/Core/components/Header/components/SortIndicator.d.ts +15 -0
  1588. package/dist/primitives/Table/Core/components/Header/util.d.ts +4 -0
  1589. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.d.ts +4 -0
  1590. package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.d.ts +8 -0
  1591. package/dist/primitives/Table/Core/components/Row/Row.d.ts +6 -0
  1592. package/dist/primitives/Table/Core/components/Row/RowContext.d.ts +7 -0
  1593. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.d.ts +7 -0
  1594. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.d.ts +7 -0
  1595. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.d.ts +7 -0
  1596. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.d.ts +12 -0
  1597. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +12 -0
  1598. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.d.ts +7 -0
  1599. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.d.ts +10 -0
  1600. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/util.d.ts +5 -0
  1601. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.d.ts +9 -0
  1602. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.d.ts +17 -0
  1603. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.d.ts +10 -0
  1604. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.d.ts +7 -0
  1605. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.d.ts +8 -0
  1606. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.d.ts +4 -0
  1607. package/dist/primitives/Table/Core/features/useTableRef.d.ts +4 -0
  1608. package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +10 -0
  1609. package/dist/primitives/Table/Core/features/useTableStyle.d.ts +797 -0
  1610. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.d.ts +4 -0
  1611. package/dist/primitives/Table/Core/features/useTableStyleGrid.d.ts +7 -0
  1612. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.d.ts +3 -0
  1613. package/dist/primitives/Table/Core/types.d.ts +21 -0
  1614. package/dist/primitives/Table/Core/useTable.d.ts +28 -0
  1615. package/dist/primitives/Table/Core/util/rows.d.ts +6 -0
  1616. package/dist/primitives/Table/types.d.ts +381 -0
  1617. package/dist/primitives/Table/useTableDataLoader.d.ts +24 -0
  1618. package/dist/primitives/Table/useTableManager/features/useTableColumnFreezing.d.ts +6 -0
  1619. package/dist/primitives/Table/useTableManager/features/useTableColumnOrdering.d.ts +3 -0
  1620. package/dist/primitives/Table/useTableManager/features/useTableFontSize.d.ts +7 -0
  1621. package/dist/primitives/Table/useTableManager/features/useTableFooter.d.ts +3 -0
  1622. package/dist/primitives/Table/useTableManager/features/useTablePrinting.d.ts +15 -0
  1623. package/dist/primitives/Table/useTableManager/features/useTableRowActions.d.ts +6 -0
  1624. package/dist/primitives/Table/useTableManager/features/useTableRowActive.d.ts +13 -0
  1625. package/dist/primitives/Table/useTableManager/features/useTableRowClick.d.ts +7 -0
  1626. package/dist/primitives/Table/useTableManager/features/useTableRowDrag.d.ts +8 -0
  1627. package/dist/primitives/Table/useTableManager/features/useTableRowDrop.d.ts +5 -0
  1628. package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +5 -0
  1629. package/dist/primitives/Table/useTableManager/features/useTableRowGoto.d.ts +5 -0
  1630. package/dist/primitives/Table/useTableManager/features/useTableRowGroups.d.ts +5 -0
  1631. package/dist/primitives/Table/useTableManager/features/useTableRowHeight.d.ts +7 -0
  1632. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.d.ts +7 -0
  1633. package/dist/primitives/Table/useTableManager/features/useTableSearch.d.ts +11 -0
  1634. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +10 -0
  1635. package/dist/primitives/Table/useTableManager/features/useTableSettings.d.ts +3 -0
  1636. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.d.ts +2 -0
  1637. package/dist/primitives/Table/useTableManager/listeners/useTableFilterListener.d.ts +3 -0
  1638. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.d.ts +2 -0
  1639. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.d.ts +2 -0
  1640. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.d.ts +3 -0
  1641. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.d.ts +3 -0
  1642. package/dist/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.d.ts +3 -0
  1643. package/dist/primitives/Table/useTableManager/listeners/useTableSettingsListener.d.ts +3 -0
  1644. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.d.ts +3 -0
  1645. package/dist/primitives/Table/useTableManager/listeners/useTableSortingListener.d.ts +3 -0
  1646. package/dist/primitives/Table/useTableManager/types.d.ts +14 -0
  1647. package/dist/primitives/Table/useTableManager/useTableManager.d.ts +66 -0
  1648. package/dist/primitives/Table/useTableManager/util/columns.d.ts +10 -0
  1649. package/dist/primitives/Table/useTableManager/util/columns.spec.d.ts +1 -0
  1650. package/dist/primitives/Table/useTableManager/util/filtering.d.ts +7 -0
  1651. package/dist/primitives/Table/useTableManager/util/presets.d.ts +2 -0
  1652. package/dist/primitives/Table/useTableManager/util/search.d.ts +2 -0
  1653. package/dist/primitives/Table/useTableManager/util/settings.d.ts +12 -0
  1654. package/dist/primitives/Table/useTableManager/util/setup.d.ts +15 -0
  1655. package/dist/primitives/Table/useTableManager/util/sorting.d.ts +2 -0
  1656. package/dist/taco.cjs.development.js +20761 -0
  1657. package/dist/taco.cjs.development.js.map +1 -0
  1658. package/dist/taco.cjs.production.min.js +2 -0
  1659. package/dist/taco.cjs.production.min.js.map +1 -0
  1660. package/dist/types.d.ts +20 -0
  1661. package/dist/utils/aria.d.ts +2 -0
  1662. package/dist/utils/date.d.ts +4 -0
  1663. package/dist/utils/debounce.d.ts +1 -0
  1664. package/dist/utils/device.d.ts +1 -0
  1665. package/dist/utils/dom.d.ts +10 -0
  1666. package/dist/utils/hooks/useDraggable.d.ts +2 -0
  1667. package/dist/utils/hooks/useDropTarget.d.ts +8 -0
  1668. package/dist/utils/hooks/useListKeyboardNavigation.d.ts +8 -0
  1669. package/dist/utils/hooks/useListScrollTo.d.ts +1 -0
  1670. package/dist/utils/hooks/useOnClickOutside.d.ts +2 -0
  1671. package/dist/utils/hooks/useRefState.d.ts +1 -0
  1672. package/dist/utils/hooks/useTimer.d.ts +7 -0
  1673. package/dist/utils/hooks/useTruncated.d.ts +3 -0
  1674. package/dist/utils/input.d.ts +4 -0
  1675. package/dist/utils/keyboard.d.ts +10 -0
  1676. package/dist/utils/mergeRefs.d.ts +2 -0
  1677. package/dist/utils/storyutils.d.ts +8 -0
  1678. package/dist/utils/tailwind.d.ts +6 -0
  1679. package/package.json +7 -7
  1680. package/dist/index.cjs.js +0 -22562
  1681. package/dist/index.cjs.js.map +0 -1
  1682. package/dist/index.css.map +0 -1
  1683. package/dist/index.d.mts +0 -3257
  1684. package/dist/index.esm.js +0 -22562
  1685. package/dist/index.esm.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taco.cjs.production.min.js","sources":["../src/utils/tailwind.ts","../src/components/Icon/components/AccountPreview.tsx","../src/components/Icon/components/AccountingYearCancel.tsx","../src/components/Icon/components/AccountingYear.tsx","../src/components/Icon/components/Accounting.tsx","../src/components/Icon/components/AiChatSolid.tsx","../src/components/Icon/components/AiStars.tsx","../src/components/Icon/components/ArrowBottom.tsx","../src/components/Icon/components/ArrowDown.tsx","../src/components/Icon/components/ArrowEnd.tsx","../src/components/Icon/components/ArrowLeft.tsx","../src/components/Icon/components/ArrowRight.tsx","../src/components/Icon/components/ArrowStart.tsx","../src/components/Icon/components/ArrowTop.tsx","../src/components/Icon/components/ArrowUp.tsx","../src/components/Icon/components/AttachAuto.tsx","../src/components/Icon/components/AttachCancel.tsx","../src/components/Icon/components/AttachWarning.tsx","../src/components/Icon/components/Attach.tsx","../src/components/Icon/components/AutotextInsert.tsx","../src/components/Icon/components/Autotext.tsx","../src/components/Icon/components/BasicTabs.tsx","../src/components/Icon/components/Basic.tsx","../src/components/Icon/components/BellSolid.tsx","../src/components/Icon/components/Book.tsx","../src/components/Icon/components/Booking.tsx","../src/components/Icon/components/Budget.tsx","../src/components/Icon/components/Calendar.tsx","../src/components/Icon/components/CashAccount.tsx","../src/components/Icon/components/CashReports.tsx","../src/components/Icon/components/ChartArea.tsx","../src/components/Icon/components/ChartBar.tsx","../src/components/Icon/components/ChartLine.tsx","../src/components/Icon/components/ChartPie.tsx","../src/components/Icon/components/ChartTable.tsx","../src/components/Icon/components/ChatSolid.tsx","../src/components/Icon/components/Chat.tsx","../src/components/Icon/components/ChevronDownDouble.tsx","../src/components/Icon/components/ChevronDownSolid.tsx","../src/components/Icon/components/ChevronDown.tsx","../src/components/Icon/components/ChevronLeftDouble.tsx","../src/components/Icon/components/ChevronLeftSolid.tsx","../src/components/Icon/components/ChevronLeft.tsx","../src/components/Icon/components/ChevronRightDouble.tsx","../src/components/Icon/components/ChevronRightSolid.tsx","../src/components/Icon/components/ChevronRight.tsx","../src/components/Icon/components/ChevronUpDouble.tsx","../src/components/Icon/components/ChevronUpSolid.tsx","../src/components/Icon/components/ChevronUp.tsx","../src/components/Icon/components/CircleClose.tsx","../src/components/Icon/components/CircleInformation.tsx","../src/components/Icon/components/CircleMinus.tsx","../src/components/Icon/components/CirclePlus.tsx","../src/components/Icon/components/CircleQuestionmark.tsx","../src/components/Icon/components/CircleTick.tsx","../src/components/Icon/components/CircleWarning.tsx","../src/components/Icon/components/ClampOpen.tsx","../src/components/Icon/components/Clamp.tsx","../src/components/Icon/components/Close.tsx","../src/components/Icon/components/ColumnFreeze.tsx","../src/components/Icon/components/ColumnUnfreeze.tsx","../src/components/Icon/components/Columns.tsx","../src/components/Icon/components/ConnectionEnable.tsx","../src/components/Icon/components/ConnectionRevoke.tsx","../src/components/Icon/components/Contacts.tsx","../src/components/Icon/components/Copy.tsx","../src/components/Icon/components/Courses.tsx","../src/components/Icon/components/Credit.tsx","../src/components/Icon/components/DeletePermanently.tsx","../src/components/Icon/components/Delete.tsx","../src/components/Icon/components/Depecriate.tsx","../src/components/Icon/components/Developer.tsx","../src/components/Icon/components/DistributionTemplate.tsx","../src/components/Icon/components/DocumentApprove.tsx","../src/components/Icon/components/DocumentCreateEntry.tsx","../src/components/Icon/components/DocumentCut.tsx","../src/components/Icon/components/DocumentError.tsx","../src/components/Icon/components/DocumentIsolatePage.tsx","../src/components/Icon/components/DocumentMerge.tsx","../src/components/Icon/components/DocumentMove.tsx","../src/components/Icon/components/DocumentPreview.tsx","../src/components/Icon/components/DocumentReceived.tsx","../src/components/Icon/components/DocumentRejectedRequest.tsx","../src/components/Icon/components/DocumentSignedSolid.tsx","../src/components/Icon/components/DocumentSigned.tsx","../src/components/Icon/components/DocumentSplit.tsx","../src/components/Icon/components/DocumentTime.tsx","../src/components/Icon/components/Document.tsx","../src/components/Icon/components/Download.tsx","../src/components/Icon/components/Drag.tsx","../src/components/Icon/components/ECopedia.tsx","../src/components/Icon/components/EditSimple.tsx","../src/components/Icon/components/Edit.tsx","../src/components/Icon/components/EllipsisHorizontal.tsx","../src/components/Icon/components/EllipsisVertical.tsx","../src/components/Icon/components/EntriesOnAccount.tsx","../src/components/Icon/components/EntriesOpen.tsx","../src/components/Icon/components/EntriesWarning.tsx","../src/components/Icon/components/EntryTypeCustomerInvoice.tsx","../src/components/Icon/components/EntryTypeCustomerPayment.tsx","../src/components/Icon/components/EntryTypeJournalEntry.tsx","../src/components/Icon/components/EntryTypeManualCustomerInvoice.tsx","../src/components/Icon/components/EntryTypeSupplierInvoice.tsx","../src/components/Icon/components/EntryTypeSupplierPayment.tsx","../src/components/Icon/components/EnvelopeApproved.tsx","../src/components/Icon/components/EnvelopeSolid.tsx","../src/components/Icon/components/Envelope.tsx","../src/components/Icon/components/ExpandView.tsx","../src/components/Icon/components/Expenses.tsx","../src/components/Icon/components/ExportToExcel.tsx","../src/components/Icon/components/ExportToPdf.tsx","../src/components/Icon/components/Export.tsx","../src/components/Icon/components/EyeOff.tsx","../src/components/Icon/components/EyeOn.tsx","../src/components/Icon/components/FilterSolid.tsx","../src/components/Icon/components/Filter.tsx","../src/components/Icon/components/FontSize.tsx","../src/components/Icon/components/GraphSolid.tsx","../src/components/Icon/components/Hash.tsx","../src/components/Icon/components/HeightExtraTall.tsx","../src/components/Icon/components/HeightMedium.tsx","../src/components/Icon/components/HeightShort.tsx","../src/components/Icon/components/HeightTall.tsx","../src/components/Icon/components/HouseSolid.tsx","../src/components/Icon/components/House.tsx","../src/components/Icon/components/Id.tsx","../src/components/Icon/components/Images.tsx","../src/components/Icon/components/Import.tsx","../src/components/Icon/components/InboxEinvoicing.tsx","../src/components/Icon/components/InboxScanning.tsx","../src/components/Icon/components/InboxSmart.tsx","../src/components/Icon/components/Inbox.tsx","../src/components/Icon/components/Info.tsx","../src/components/Icon/components/InventoryMatrix.tsx","../src/components/Icon/components/Inventory.tsx","../src/components/Icon/components/JournalPro.tsx","../src/components/Icon/components/LayoutBoth.tsx","../src/components/Icon/components/LayoutFirst.tsx","../src/components/Icon/components/LayoutLast.tsx","../src/components/Icon/components/LayoutNone.tsx","../src/components/Icon/components/Layout.tsx","../src/components/Icon/components/LedgerCardCustomerReminder.tsx","../src/components/Icon/components/LedgerCardManualCustomerInvoice.tsx","../src/components/Icon/components/LedgerCardObsoleteStock.tsx","../src/components/Icon/components/LedgerCardOpeningEntry.tsx","../src/components/Icon/components/LedgerCardReservedEntry.tsx","../src/components/Icon/components/LedgerCardShrinkagePilferage.tsx","../src/components/Icon/components/LedgerCardStockAdjustment.tsx","../src/components/Icon/components/LedgerCardTransferredOpeningEntry.tsx","../src/components/Icon/components/LedgerCard.tsx","../src/components/Icon/components/Lightbulb.tsx","../src/components/Icon/components/Line.tsx","../src/components/Icon/components/LinkExternal.tsx","../src/components/Icon/components/ListBulleted.tsx","../src/components/Icon/components/ListSearch.tsx","../src/components/Icon/components/List.tsx","../src/components/Icon/components/Location.tsx","../src/components/Icon/components/LockOpen.tsx","../src/components/Icon/components/Lock.tsx","../src/components/Icon/components/LogOut.tsx","../src/components/Icon/components/Log.tsx","../src/components/Icon/components/Market.tsx","../src/components/Icon/components/MastercardOs.tsx","../src/components/Icon/components/MatchAmount.tsx","../src/components/Icon/components/MatchEntries.tsx","../src/components/Icon/components/Menu.tsx","../src/components/Icon/components/Mileage.tsx","../src/components/Icon/components/ModalResize.tsx","../src/components/Icon/components/ModalShrink.tsx","../src/components/Icon/components/MoreSolid.tsx","../src/components/Icon/components/More.tsx","../src/components/Icon/components/Move.tsx","../src/components/Icon/components/NavigationList.tsx","../src/components/Icon/components/NoteFollowUp.tsx","../src/components/Icon/components/NoteRead.tsx","../src/components/Icon/components/Note.tsx","../src/components/Icon/components/NovemberFirst.tsx","../src/components/Icon/components/Numbers.tsx","../src/components/Icon/components/PartnerApi.tsx","../src/components/Icon/components/PaymentPaid.tsx","../src/components/Icon/components/PaymentUnpaid.tsx","../src/components/Icon/components/Period.tsx","../src/components/Icon/components/PersonChange.tsx","../src/components/Icon/components/PersonMinus.tsx","../src/components/Icon/components/PersonPlus.tsx","../src/components/Icon/components/PersonTick.tsx","../src/components/Icon/components/PhoneSolid.tsx","../src/components/Icon/components/Phone.tsx","../src/components/Icon/components/Play.tsx","../src/components/Icon/components/PlusMinus.tsx","../src/components/Icon/components/Print.tsx","../src/components/Icon/components/ProcessPayment.tsx","../src/components/Icon/components/ProductLedgerCard.tsx","../src/components/Icon/components/Profile.tsx","../src/components/Icon/components/ProjectCards.tsx","../src/components/Icon/components/Projects.tsx","../src/components/Icon/components/QuestionMarkBold.tsx","../src/components/Icon/components/QuestionMark.tsx","../src/components/Icon/components/Quicklinks.tsx","../src/components/Icon/components/RatingBankruptcy.tsx","../src/components/Icon/components/RatingPaymentProblems.tsx","../src/components/Icon/components/Reconciled.tsx","../src/components/Icon/components/Refresh.tsx","../src/components/Icon/components/ReportSolid.tsx","../src/components/Icon/components/Report.tsx","../src/components/Icon/components/Restore.tsx","../src/components/Icon/components/RotateLeft.tsx","../src/components/Icon/components/RotateRight.tsx","../src/components/Icon/components/Sales.tsx","../src/components/Icon/components/SearchBold.tsx","../src/components/Icon/components/Search.tsx","../src/components/Icon/components/SecureTick.tsx","../src/components/Icon/components/Secure.tsx","../src/components/Icon/components/SettingsSolid.tsx","../src/components/Icon/components/Settings.tsx","../src/components/Icon/components/Shortcuts.tsx","../src/components/Icon/components/ShowAll.tsx","../src/components/Icon/components/ShowLess.tsx","../src/components/Icon/components/ShowMore.tsx","../src/components/Icon/components/ShowTemplate.tsx","../src/components/Icon/components/Sliders.tsx","../src/components/Icon/components/Smartpay.tsx","../src/components/Icon/components/SortBy.tsx","../src/components/Icon/components/StarSolid.tsx","../src/components/Icon/components/Star.tsx","../src/components/Icon/components/Subscriptions.tsx","../src/components/Icon/components/SystemEntries.tsx","../src/components/Icon/components/Tag.tsx","../src/components/Icon/components/TemplateOverride.tsx","../src/components/Icon/components/Templates.tsx","../src/components/Icon/components/ThumbBoth.tsx","../src/components/Icon/components/ThumbDownSolid.tsx","../src/components/Icon/components/ThumbDown.tsx","../src/components/Icon/components/ThumbUpSolid.tsx","../src/components/Icon/components/ThumbUp.tsx","../src/components/Icon/components/TickBold.tsx","../src/components/Icon/components/Tick.tsx","../src/components/Icon/components/Time.tsx","../src/components/Icon/components/TransferCancel.tsx","../src/components/Icon/components/TransferLocked.tsx","../src/components/Icon/components/Transfer.tsx","../src/components/Icon/components/Undo.tsx","../src/components/Icon/components/Undock.tsx","../src/components/Icon/components/Unreconciled.tsx","../src/components/Icon/components/Warning.tsx","../src/components/Icon/components/Webshop.tsx","../src/components/Icon/components/Website.tsx","../src/components/Icon/components/WorkflowTemplateBasic.tsx","../src/components/Icon/components/Workflow.tsx","../src/components/Icon/components/Zoom.tsx","../src/components/Icon/components/index.tsx","../src/components/Icon/Icon.tsx","../src/components/BadgeIcon/BadgeIcon.tsx","../src/components/Alert/Alert.tsx","../src/components/AlertDialog/Context.tsx","../src/utils/mergeRefs.ts","../src/components/AlertDialog/components/Trigger.tsx","../src/components/AlertDialog/components/Footer.tsx","../src/components/Backdrop/Backdrop.tsx","../src/components/Dialog/util.ts","../src/components/AlertDialog/components/Content.tsx","../src/components/AlertDialog/AlertDialog.tsx","../src/components/Accordion/Accordion.tsx","../src/components/VisuallyHidden/VisuallyHidden.tsx","../src/components/Badge/Badge.tsx","../src/hooks/useMergedRef.ts","../src/utils/dom.ts","../src/utils/keyboard.ts","../src/hooks/useGlobalKeyDown.ts","../src/primitives/Button.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/util.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Provider/Localization.tsx","../src/components/Banner/Banner.tsx","../src/components/Banner/util.tsx","../src/components/Button/Button.tsx","../src/components/Calendar/Calendar.tsx","../src/utils/hooks/useTruncated.tsx","../src/components/Truncate/Truncate.tsx","../src/components/Card/Card.tsx","../src/hooks/useId.ts","../src/components/Spinner/Spinner.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Input/util.ts","../src/utils/debounce.ts","../src/hooks/useBoundingClientRectListener.ts","../src/components/Input/Input.tsx","../src/utils/hooks/useListKeyboardNavigation.ts","../src/utils/hooks/useListScrollTo.ts","../src/components/Listbox/ScrollableList.tsx","../src/utils/input.ts","../src/components/Listbox/util.ts","../src/components/Combobox/useCombobox.tsx","../src/components/Combobox/Combobox.tsx","../src/utils/date.ts","../src/components/Popover/Primitives.tsx","../src/components/Popover/Popover.tsx","../src/components/Popover/util.ts","../src/components/Datepicker/Datepicker.tsx","../src/components/Datepicker/useDatepicker.tsx","../src/components/Dialog/Context.tsx","../src/components/Dialog/components/Trigger.tsx","../src/utils/hooks/useDraggable.tsx","../src/components/Dialog/components/Content.tsx","../src/components/Dialog/components/DialogDrawer.tsx","../src/components/Dialog/components/Extra.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Group/Group.tsx","../src/components/Menu/Context.tsx","../src/components/Drawer/Context.tsx","../src/components/ScrollArea/ScrollArea.tsx","../src/components/Drawer/components/Content.tsx","../src/components/Drawer/util.ts","../src/components/Drawer/components/Trigger.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Field/Field.tsx","../src/components/Form/Form.tsx","../src/components/Hanger/Hanger.tsx","../src/components/HoverCard/Primitives.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/List/components/Group.tsx","../src/components/List/components/Item.tsx","../src/components/List/components/Link.tsx","../src/components/List/components/Collapsible.tsx","../src/components/Switch/Switch.tsx","../src/components/List/components/Toggle.tsx","../src/components/List/List.tsx","../src/utils/hooks/useTimer.ts","../src/components/List/components/Button.tsx","../src/components/Listbox/useTypeahead.tsx","../src/components/Listbox/Listbox.tsx","../src/components/Listbox/useListbox.tsx","../src/components/Listbox/useMultiListbox.tsx","../src/components/Menu/components/Content.tsx","../src/components/Shortcut/Shortcut.tsx","../src/components/Menu/components/Item.tsx","../src/components/Menu/components/Link.tsx","../src/components/Menu/components/Trigger.tsx","../src/components/Menu/components/Checkbox.tsx","../src/components/RadioGroup/util.ts","../src/components/RadioGroup/RadioGroup.tsx","../src/components/Menu/components/RadioGroup.tsx","../src/components/Menu/components/Separator.tsx","../src/components/Menu/components/Header.tsx","../src/components/Menu/components/SubMenu.tsx","../src/components/Menu/Menu.tsx","../src/components/ModeSwitch/ModeSwitch.tsx","../src/components/Treeview/Treeview.tsx","../src/utils/hooks/useDropTarget.ts","../src/components/Navigation/Navigation.tsx","../src/hooks/useIntersectionObserver.ts","../src/components/OverflowGroup/OverflowGroup.tsx","../src/components/Pagination/PageNumbers.tsx","../src/components/Select/Select.tsx","../src/components/Select/useSelect.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Pagination/usePaginationShortcuts.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/util.tsx","../src/components/Toast/Toaster.tsx","../src/components/Provider/Provider.tsx","../src/types.ts","../src/primitives/Table/useTableManager/util/columns.ts","../src/primitives/Table/types.ts","../src/primitives/Table/useTableManager/util/filtering.ts","../src/primitives/Table/useTableManager/util/settings.ts","../src/primitives/Table/useTableManager/util/setup.ts","../src/primitives/Table/useTableManager/util/presets.ts","../src/hooks/useTacoSettings.ts","../src/hooks/useLocalStorage.ts","../src/primitives/Table/useTableManager/features/useTablePrinting.ts","../src/hooks/useIsHoverStatePaused.ts","../src/primitives/Table/useTableManager/features/useTableRowActive.ts","../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/primitives/Table/useTableManager/features/useTableSettings.ts","../src/hooks/useLazyEffect.ts","../src/primitives/Table/Core/features/useTableStyle.tsx","../src/primitives/Table/Core/util/rows.ts","../src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.tsx","../src/primitives/Table/Core/components/Row/RowContext.tsx","../src/primitives/Table/Core/components/Row/Row.tsx","../src/primitives/Table/Core/components/Columns/Internal/Actions.tsx","../src/primitives/Table/Core/components/Columns/Internal/Selection.tsx","../src/primitives/Table/Core/useTable.ts","../src/primitives/Table/Core/components/Columns/Internal/Drag.tsx","../src/primitives/Table/Core/components/Columns/Internal/Expansion.tsx","../src/primitives/Table/useTableManager/useTableManager.ts","../src/primitives/Table/useTableManager/features/useTableColumnFreezing.ts","../src/primitives/Table/useTableManager/features/useTableColumnOrdering.ts","../src/primitives/Table/useTableManager/features/useTableFontSize.ts","../src/primitives/Table/useTableManager/features/useTableFooter.ts","../src/primitives/Table/useTableManager/features/useTableRowActions.ts","../src/primitives/Table/useTableManager/features/useTableRowClick.ts","../src/primitives/Table/useTableManager/features/useTableRowDrag.ts","../src/primitives/Table/useTableManager/features/useTableRowDrop.ts","../src/primitives/Table/useTableManager/features/useTableRowExpansion.ts","../src/primitives/Table/useTableManager/features/useTableRowGoto.ts","../src/primitives/Table/useTableManager/features/useTableRowGroups.ts","../src/primitives/Table/useTableManager/features/useTableRowHeight.ts","../src/primitives/Table/useTableManager/features/useTableRowSelection.ts","../src/primitives/Table/useTableManager/features/useTableSearch.ts","../src/primitives/Table/useTableManager/features/useTableServerLoading.ts","../src/primitives/Table/useTableDataLoader.ts","../src/primitives/Table/useTableManager/util/sorting.ts","../src/primitives/Table/useTableManager/listeners/useTableDataListener.ts","../src/primitives/Table/useTableManager/listeners/useTableFilterListener.ts","../src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.ts","../src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.ts","../src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.ts","../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts","../src/primitives/Table/useTableManager/util/search.ts","../src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.ts","../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts","../src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.ts","../src/primitives/Table/useTableManager/listeners/useTableSortingListener.ts","../src/primitives/Table/Core/features/useTableRenderer.tsx","../src/primitives/Table/Core/features/useTableStyleGrid.ts","../src/primitives/Table/Core/features/useTableStyleColumnFreezing.ts","../src/primitives/Table/Core/features/useTableGlobalShortcuts.ts","../src/primitives/Table/Core/features/useTableRef.ts","../src/primitives/Table/Core/listeners/useTableRowActiveListener.ts","../src/primitives/Table/Core/components/Columns/Cell/util.ts","../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx","../src/primitives/Table/Core/components/Columns/Cell/Cell.tsx","../src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.tsx","../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.tsx","../src/components/Report/useReport.tsx","../src/primitives/Table/Core/components/Header/components/SortIndicator.tsx","../src/primitives/Table/Core/components/Header/components/Resizer.tsx","../src/components/SearchInput/SearchInput.tsx","../src/primitives/Table/Core/components/Header/components/Goto.tsx","../src/primitives/Table/Core/components/Header/components/Menu.tsx","../src/primitives/Table/Core/components/Header/Header.tsx","../src/primitives/Table/Core/components/Header/util.ts","../src/primitives/Table/Core/components/Body/util.ts","../src/primitives/Table/Core/components/Body/Body.tsx","../src/primitives/Table/Core/components/Footer/Summary.tsx","../src/primitives/Table/Core/components/Footer/Footer.tsx","../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx","../src/components/SearchInput2/SearchInput2.tsx","../src/primitives/Table/Core/components/Toolbar/components/Search/Search.tsx","../src/primitives/Sortable/components/Container.tsx","../src/primitives/Sortable/components/Item.tsx","../src/primitives/Sortable/components/List.tsx","../src/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.tsx","../src/primitives/Table/Core/components/Toolbar/components/Settings/Settings.tsx","../src/utils/aria.ts","../src/primitives/Collection/components/Root.tsx","../src/primitives/Listbox2/components/Context.tsx","../src/primitives/Listbox2/components/Root.tsx","../src/primitives/Listbox2/components/Option.tsx","../src/primitives/Listbox2/components/Group.tsx","../src/primitives/Listbox2/components/Title.tsx","../src/components/Tag/Tag.tsx","../src/components/Select2/utilities.ts","../src/components/Select2/components/Context.tsx","../src/components/Select2/components/Edit.tsx","../src/utils/device.ts","../src/components/Select2/components/Option.tsx","../src/components/Select2/components/Group.tsx","../src/components/Select2/components/Title.tsx","../src/components/Select2/components/Trigger.tsx","../src/primitives/BubbleSelect.tsx","../src/hooks/usePrevious.ts","../src/components/Select2/components/Search.tsx","../src/components/Select2/hooks/useChildren.tsx","../src/components/Select2/components/Create.tsx","../src/components/Select2/components/Collection.tsx","../src/components/Select2/Select2.tsx","../src/hooks/useIsFormControl.ts","../src/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.tsx","../src/primitives/Table/Core/components/Toolbar/components/Print/Print.tsx","../src/hooks/useMatchMedia.ts","../src/hooks/useIsLargeScreen.ts","../src/primitives/Table/Core/components/Toolbar/components/Filters/util.ts","../src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.tsx","../src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.tsx","../src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.tsx","../src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.tsx","../src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.tsx","../src/primitives/Table/Core/components/Toolbar/components/Filters/Filters.tsx","../src/primitives/Table/Core/components/Toolbar/Toolbar.tsx","../src/primitives/Table/Core/Table.tsx","../src/components/Report/Report.tsx","../src/components/Table/util.ts","../src/components/Table/util/sortTypes.ts","../src/components/Table/hooks/plugins/useRowEditing.tsx","../src/components/Table/hooks/plugins/useRowActions.tsx","../src/components/Table/hooks/plugins/useRowDraggable.tsx","../src/components/Table/hooks/useTable.tsx","../src/components/Table/hooks/plugins/useRowSelect.tsx","../src/components/Table/hooks/useTableKeyboardNavigation.ts","../src/components/Table/util/renderRow.tsx","../src/components/Table/util/renderColumn.tsx","../src/components/Table/components/BaseTable.tsx","../src/components/Table/components/Table.tsx","../src/components/Table/components/PaginatedTable.tsx","../src/components/Table/components/WindowedTable.tsx","../src/components/Table/util/rowIndexPath.ts","../src/components/Table/hooks/useRowCreation.tsx","../src/components/Table3/util/editing.ts","../src/components/Table3/features/useTableEditing.ts","../src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.tsx","../src/components/Table3/components/Columns/Cell/util.ts","../src/components/Table3/components/Columns/Cell/EditingControlCell.tsx","../src/components/Table3/components/Columns/Cell/EditingDisplayCell.tsx","../src/components/Table3/components/Columns/Internal/EditingActionsMenu.tsx","../src/components/Table3/components/Row/Editing/SaveStatus.tsx","../src/components/Table3/useTable3.tsx","../src/components/Table3/components/Row/Row.tsx","../src/components/Table3/components/Columns/Cell/Cell.tsx","../src/components/Table3/components/Editing/Alert.tsx","../src/components/Table3/components/Row/Editing/CreateRowButton.tsx","../src/components/Table3/components/Toolbar/Editing/Editing.tsx","../src/components/Table3/Table3.tsx","../src/components/Table3/listeners/useTableEditingListener.ts","../src/components/Tabs/Tabs.tsx","../src/components/Tour/Tour.tsx","../src/components/Header/components/Button.tsx","../src/components/Header/components/Link.tsx","../src/components/Header/components/Logo.tsx","../src/components/Header/components/PrimaryNavigation.tsx","../src/components/Header/components/SecondaryNavigation.tsx","../src/components/Header/components/MenuButton.tsx","../src/components/Header/components/Agreement/Avatar.tsx","../src/components/Header/components/Agreement/Badge.tsx","../src/components/Header/components/Agreement/Item.tsx","../src/components/Header/components/Agreement/Display.tsx","../src/components/Header/components/AgreementSelector.tsx","../src/components/Header/Header.tsx","../src/components/Layout/components/Context.tsx","../src/components/Layout/components/Content.tsx","../src/components/Layout/components/Sidebar.tsx","../src/components/Layout/components/Page.tsx","../src/components/Layout/Layout.tsx","../src/components/Layout/components/Top.tsx","../src/components/Navigation2/components/Group.tsx","../src/components/Navigation2/components/util.ts","../src/components/Navigation2/components/Link.tsx","../src/components/Navigation2/components/Section.tsx","../src/components/Navigation2/components/Content.tsx","../src/components/Navigation2/Navigation2.tsx","../src/components/Progress/Progress.tsx","../src/hooks/useBoundaryOverflowDetection.ts","../src/utils/hooks/useOnClickOutside.ts","../src/components/Pagination/usePagination.tsx"],"sourcesContent":["import { Color, State } from '../types';\n\nexport const AVAILABLE_COLORS = [\n 'green',\n 'yellow',\n 'red',\n 'blue',\n 'purple',\n 'brown',\n 'pink',\n 'orange',\n 'grey',\n 'transparent',\n] as const;\n\nexport const getColorByState = (state: State | undefined): Color => {\n switch (state) {\n case 'information':\n return 'blue';\n case 'warning':\n return 'yellow';\n case 'error':\n return 'red';\n case 'success':\n return 'green';\n default:\n return 'grey';\n }\n};\n\nexport const getOutlineColorShadeClasses = (state: Color | undefined): string => {\n switch (state) {\n case 'green':\n return 'border-green-700 text-green-700';\n case 'yellow':\n return 'border-yellow-700 text-yellow-700';\n case 'red':\n return 'border-red-500 text-red-500';\n case 'blue':\n return 'border-blue-500 text-blue-500';\n case 'purple':\n return 'border-purple-700 text-purple-700';\n case 'brown':\n return 'border-brown-700 text-brown-700';\n case 'pink':\n return 'border-pink-700 text-pink-700';\n case 'orange':\n return 'border-orange-700 text-orange-700';\n case 'transparent':\n case 'grey':\n default:\n return 'border-grey-700 text-grey-700';\n }\n};\n\nexport const getSubtleColorShadeClasses = (value: Color | undefined): string => {\n switch (value) {\n case 'green':\n return 'wcag-green-100';\n case 'yellow':\n return 'wcag-yellow-100';\n case 'red':\n return 'wcag-red-100';\n case 'blue':\n return 'wcag-blue-100';\n case 'purple':\n return 'wcag-purple-100';\n case 'brown':\n return 'wcag-brown-100';\n case 'pink':\n return 'wcag-pink-100';\n case 'orange':\n return 'wcag-orange-100';\n case 'transparent':\n return 'wcag-transparent';\n case 'grey':\n default:\n return 'wcag-grey-200';\n }\n};\n\nexport const getColorShadeClasses = (value: Color | undefined): string => {\n switch (value) {\n case 'green':\n return 'wcag-green-700';\n case 'yellow':\n return 'wcag-yellow-500';\n case 'red':\n return 'wcag-red-500';\n case 'blue':\n return 'wcag-blue-500';\n case 'purple':\n return 'wcag-purple-700';\n case 'brown':\n return 'wcag-brown-700';\n case 'pink':\n return 'wcag-pink-500';\n case 'orange':\n return 'wcag-orange-700';\n case 'transparent':\n return 'wcag-transparent';\n case 'grey':\n default:\n return 'wcag-grey-700';\n }\n};\n","import * as React from 'react';\nfunction IconAccountPreview(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75V11h-1.5V4.75a.25.25 0 00-.193-.243L19.25 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75v14.5a.25.25 0 00.193.243l.057.007H11V21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm-4.5 7.25a4.5 4.5 0 013.632 7.158l.036-.05 2.362 2.362a.75.75 0 01-.976 1.133l-.084-.073-2.363-2.362-.112.077a4.5 4.5 0 11-2.495-8.245zm0 1.5a3 3 0 100 6 3 3 0 000-6zm-7 3.25a.75.75 0 110 1.5h-.5a.75.75 0 110-1.5h.5zm0-4a.75.75 0 110 1.5h-.5a.75.75 0 110-1.5h.5zm9-4a.75.75 0 110 1.5h-6.5a.75.75 0 010-1.5h6.5zm-9 0a.75.75 0 010 1.5h-.5a.75.75 0 010-1.5h.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAccountPreview);\n","import * as React from 'react';\nfunction IconAccountingYearCancel(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M4.5 16.25v3a.25.25 0 00.193.243l.057.007H13V21H4.75A1.75 1.75 0 013 19.25v-3h1.5zm4.946-6.103l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.718-1.72H3.75a.75.75 0 01-.102-1.493L3.75 13h6.44l-1.72-1.72a.75.75 0 01-.073-.976l.073-.084a.75.75 0 01.976-.073zM16.25 2a.75.75 0 01.75.75V3h2.25c.966 0 1.75.784 1.75 1.75V13h-1.5V8h-15v3.25H3v-6.5C3 3.784 3.784 3 4.75 3H7v-.25a.75.75 0 011.5 0V3h7v-.25a.75.75 0 01.75-.75zM7 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75V6.5h15V4.75a.25.25 0 00-.193-.243L19.25 4.5H17v.25a.75.75 0 11-1.5 0V4.5h-7v.25a.75.75 0 01-1.5 0V4.5zm12.804 10.147a.75.75 0 011.049 1.05l-.073.083-1.969 1.97 1.97 1.97a.75.75 0 01-.977 1.133l-.084-.073-1.97-1.969-1.97 1.97-.084.072a.75.75 0 01-1.049-1.05l.073-.083 1.969-1.97-1.97-1.97a.75.75 0 01.977-1.133l.084.073 1.97 1.969 1.97-1.97.084-.072z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAccountingYearCancel);\n","import * as React from 'react';\nfunction IconAccountingYear(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.25 2a.75.75 0 01.75.75V3h2.25c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25v-3h1.5v3a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V8h-15v3.25H3v-6.5C3 3.784 3.784 3 4.75 3H7v-.25a.75.75 0 011.5 0V3h7v-.25a.75.75 0 01.75-.75zm-6.804 8.147l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.719-1.72H3.75a.75.75 0 01-.102-1.493L3.75 13h6.439l-1.72-1.72a.75.75 0 01-.072-.976l.073-.084a.75.75 0 01.976-.073zM7 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75V6.5h15V4.75a.25.25 0 00-.193-.243L19.25 4.5H17v.25a.75.75 0 11-1.5 0V4.5h-7v.25a.75.75 0 01-1.5 0V4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAccountingYear);\n","import * as React from 'react';\nfunction IconAccounting(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.25 2c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h12.5zM13 17.5H6.5a.5.5 0 00-.492.41L6 18v1.5a.5.5 0 00.41.492L6.5 20H13a.5.5 0 00.492-.41l.008-.09V18a.5.5 0 00-.41-.492L13 17.5zm4.5 0h-2a.5.5 0 00-.492.41L15 18v1.5a.5.5 0 00.41.492l.09.008h2a.5.5 0 00.492-.41L18 19.5V18a.5.5 0 00-.41-.492l-.09-.008zm-9-3.5h-2a.5.5 0 00-.492.41L6 14.5V16a.5.5 0 00.41.492l.09.008h2a.5.5 0 00.492-.41L9 16v-1.5a.5.5 0 00-.41-.492L8.5 14zm9 0h-2a.5.5 0 00-.492.41L15 14.5V16a.5.5 0 00.41.492l.09.008h2a.5.5 0 00.492-.41L18 16v-1.5a.5.5 0 00-.41-.492L17.5 14zM13 14h-2a.5.5 0 00-.492.41l-.008.09V16a.5.5 0 00.41.492l.09.008h2a.5.5 0 00.492-.41L13.5 16v-1.5a.5.5 0 00-.41-.492L13 14zm-4.5-3.5h-2a.5.5 0 00-.492.41L6 11v1.5a.5.5 0 00.41.492L6.5 13h2a.5.5 0 00.492-.41L9 12.5V11a.5.5 0 00-.41-.492L8.5 10.5zm9 0h-2a.5.5 0 00-.492.41L15 11v1.5a.5.5 0 00.41.492l.09.008h2a.5.5 0 00.492-.41L18 12.5V11a.5.5 0 00-.41-.492l-.09-.008zm-4.5 0h-2a.5.5 0 00-.492.41L10.5 11v1.5a.5.5 0 00.41.492L11 13h2a.5.5 0 00.492-.41l.008-.09V11a.5.5 0 00-.41-.492L13 10.5zM17.5 4h-11a.5.5 0 00-.492.41L6 4.5V8a.5.5 0 00.41.492l.09.008h11a.5.5 0 00.492-.41L18 8V4.5a.5.5 0 00-.41-.492L17.5 4zm-1 1a.5.5 0 01.5.5V7a.5.5 0 01-.5.5h-1A.5.5 0 0115 7V5.5a.5.5 0 01.5-.5h1z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAccounting);\n","import * as React from 'react';\nfunction IconAiChatSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.823 2.122a.188.188 0 01.352 0l.874 2.364c.02.051.06.092.111.11l2.364.875a.188.188 0 010 .352l-2.364.875a.188.188 0 00-.11.11l-.875 2.364a.188.188 0 01-.352 0l-.875-2.364a.187.187 0 00-.11-.11l-2.364-.875a.188.188 0 010-.352l2.364-.874a.187.187 0 00.11-.111l.875-2.364zm1.667 7a.188.188 0 01.351 0l.515 1.39a.19.19 0 00.11.112l1.39.514a.188.188 0 010 .352l-1.39.514a.188.188 0 00-.11.111l-.515 1.39a.187.187 0 01-.351 0l-.515-1.39a.187.187 0 00-.11-.11l-1.391-.515a.188.188 0 010-.352l1.39-.514a.187.187 0 00.111-.111l.515-1.39zm-5.363-2.36c-.889-.328-1.014-1.455-.374-2.008a12.291 12.291 0 00-3.864-.606C5.979 4.148 2 6.884 2 10.26c0 2.393 1.999 4.463 4.91 5.467L4.513 19.99a.556.556 0 00.832.706l5.406-4.325.426-.003c3.493-.076 6.477-1.538 7.829-3.612l-.879-.325c-1.034-.383-1.034-1.845 0-2.228l.234-.086a1.168 1.168 0 01-.476-.595l-.745-2.013-2.013-.745z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAiChatSolid);\n","import * as React from 'react';\nfunction IconAiStars(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <mask id=\"ai-stars_svg__a\" fill=\"#fff\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.324 2.476a.188.188 0 01.351 0l.875 2.364c.019.05.06.091.11.11l2.364.875a.188.188 0 010 .352l-2.363.874a.187.187 0 00-.111.11l-.875 2.365a.188.188 0 01-.351 0l-.875-2.364a.188.188 0 00-.11-.11l-2.364-.875a.188.188 0 010-.352l2.363-.875a.188.188 0 00.111-.11l.875-2.364zM8.226 4.931c.266-.719 1.281-.719 1.547 0l1.566 4.23 4.23 1.566c.719.266.719 1.282 0 1.547l-4.23 1.566-1.566 4.23c-.266.72-1.281.72-1.547 0L6.66 13.84l-4.23-1.566c-.719-.265-.719-1.281 0-1.547l4.23-1.566 1.566-4.23zM9 7.16L7.96 9.974a.825.825 0 01-.488.487L4.66 11.5l2.81 1.041a.825.825 0 01.488.487L9 15.84l1.04-2.812a.825.825 0 01.488-.487l2.811-1.04-2.81-1.04a.825.825 0 01-.488-.488L9 7.162zm8.675 7.315a.188.188 0 00-.351 0l-.875 2.364a.188.188 0 01-.11.11l-2.364.875a.188.188 0 000 .352l2.363.874c.052.02.092.06.111.11l.875 2.364c.06.164.291.164.351 0l.875-2.363a.187.187 0 01.11-.11l2.364-.875a.188.188 0 000-.352l-2.363-.875a.187.187 0 01-.111-.11l-.875-2.364z\"\n />\n </mask>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.324 2.476a.188.188 0 01.351 0l.875 2.364c.019.05.06.091.11.11l2.364.875a.188.188 0 010 .352l-2.363.874a.187.187 0 00-.111.11l-.875 2.365a.188.188 0 01-.351 0l-.875-2.364a.188.188 0 00-.11-.11l-2.364-.875a.188.188 0 010-.352l2.363-.875a.188.188 0 00.111-.11l.875-2.364zM8.226 4.931c.266-.719 1.281-.719 1.547 0l1.566 4.23 4.23 1.566c.719.266.719 1.282 0 1.547l-4.23 1.566-1.566 4.23c-.266.72-1.281.72-1.547 0L6.66 13.84l-4.23-1.566c-.719-.265-.719-1.281 0-1.547l4.23-1.566 1.566-4.23zM9 7.16L7.96 9.974a.825.825 0 01-.488.487L4.66 11.5l2.81 1.041a.825.825 0 01.488.487L9 15.84l1.04-2.812a.825.825 0 01.488-.487l2.811-1.04-2.81-1.04a.825.825 0 01-.488-.488L9 7.162zm8.675 7.315a.188.188 0 00-.351 0l-.875 2.364a.188.188 0 01-.11.11l-2.364.875a.188.188 0 000 .352l2.363.874c.052.02.092.06.111.11l.875 2.364c.06.164.291.164.351 0l.875-2.363a.187.187 0 01.11-.11l2.364-.875a.188.188 0 000-.352l-2.363-.875a.187.187 0 01-.111-.11l-.875-2.364z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M17.675 2.476l.704-.26-.704.26zm-.351 0l-.704-.26.704.26zM18.55 4.84l.703-.26-.703.26zm.11.11l-.26.704.26-.704zm2.364.875l.26-.704-.26.704zm0 .352l-.26-.704.26.704zm-2.363.874l-.26-.703.26.703zm-.111.11l.703.261-.703-.26zm-.875 2.365l.704.26-.704-.26zm-.351 0l-.704.26.704-.26zm-.875-2.364l.703-.26-.703.26zm-.11-.11l.26-.704-.26.703zm-2.364-.875l-.26.703.26-.703zm0-.352l-.26-.704.26.704zm2.363-.875l.26.704-.26-.704zm.111-.11l.703.26-.703-.26zm-6.676.09l-.703.26.703-.26zm-1.547 0l.703.26-.703-.26zm3.113 4.231l-.704.26.12.324.323.12.26-.704zm4.23 1.566l-.26.703.26-.703zm0 1.547l-.26-.703.26.704zm-4.23 1.566l-.26-.703-.324.12-.12.323.704.26zm-1.566 4.23l-.703-.26.703.26zm-1.547 0l.703-.26-.703.26zM6.66 13.84l.704-.26-.12-.324-.324-.12-.26.704zm-4.23-1.566l.26-.703-.26.704zm0-1.547l.26.703-.26-.703zm4.23-1.566l.26.704.324-.12.12-.323-.704-.26zm1.3.812l.703.26-.704-.26zM9 7.162l.703-.26L9 5l-.704 1.9.704.26zM7.472 10.46l-.26-.703.26.704zM4.66 11.5l-.26-.703-1.901.704 1.9.703.26-.703zm2.81 1.041l.261-.703-.26.703zm.488.487l.704-.26-.704.26zM9 15.84l-.703.26L9 18l.703-1.9L9 15.84zm1.04-2.812l.704.26-.703-.26zm.488-.487l-.26-.703.26.703zm2.811-1.04l.26.703 1.901-.703-1.9-.704-.26.704zm-2.81-1.04l.26-.704-.26.704zm-.488-.488l.703-.26-.703.26zm7.284 4.503l-.704-.26.704.26zm.351 0l.704-.26-.704.26zM16.45 16.84l.703.26-.703-.26zm-.11.11l.26.704-.26-.704zm-2.364.875l-.26-.703.26.703zm0 .352l.26-.704-.26.704zm2.363.874l-.26.704.26-.704zm.111.11l.703-.26-.703.26zm.875 2.364l-.704.26.704-.26zm.351 0l.704.26-.704-.26zm.875-2.363l.703.26-.703-.26zm.11-.11l.261.703-.26-.704zm2.364-.875l.26.703-.26-.703zm0-.352l.26-.703-.26.703zm-2.363-.875l-.26.704.26-.704zm-.111-.11l.703-.26-.703.26zM18.38 2.216c-.302-.817-1.457-.817-1.759 0l1.407.52a.563.563 0 01-1.055 0l1.407-.52zm.874 2.363l-.874-2.363-1.407.52.875 2.364 1.406-.52zm-.332-.332a.562.562 0 01.332.332l-1.406.52a.937.937 0 00.553.555l.521-1.407zm2.364.874l-2.364-.874-.52 1.407 2.363.874.52-1.407zm0 1.759c.816-.302.816-1.456 0-1.759l-.521 1.407a.563.563 0 010-1.055l.52 1.407zm-2.364.875l2.364-.875-.521-1.407-2.363.875.52 1.407zm.332-.333a.562.562 0 01-.332.333l-.52-1.407a.937.937 0 00-.554.554l1.406.52zm-.874 2.364l.874-2.364-1.406-.52-.875 2.363 1.407.52zm-1.759 0c.302.816 1.457.816 1.759 0l-1.407-.52a.563.563 0 011.055 0l-1.407.52zm-.874-2.364l.874 2.364 1.407-.52-.875-2.364-1.406.52zm.332.333a.562.562 0 01-.332-.333l1.406-.52a.938.938 0 00-.553-.554l-.521 1.407zm-2.364-.875l2.364.875.52-1.407-2.363-.875-.52 1.407zm0-1.759c-.816.303-.816 1.457 0 1.759l.521-1.407c.49.181.49.874 0 1.055l-.52-1.407zm2.364-.874l-2.364.874.521 1.407 2.364-.874-.521-1.407zm-.332.332a.562.562 0 01.332-.332l.52 1.407a.938.938 0 00.555-.554l-1.407-.52zm.874-2.363l-.874 2.363 1.406.52.875-2.363-1.407-.52zM10.477 4.67c-.508-1.37-2.447-1.37-2.955 0l1.407.52a.1.1 0 01.015-.027.041.041 0 01.01-.01A.085.085 0 019 5.142c.021 0 .037.006.045.011a.041.041 0 01.01.01.1.1 0 01.015.028l1.407-.52zm1.565 4.231l-1.565-4.23-1.407.52 1.565 4.23 1.407-.52zm3.788 1.123L11.6 8.458l-.521 1.407 4.23 1.565.521-1.406zm0 2.954c1.371-.508 1.371-2.447 0-2.954l-.52 1.406a.103.103 0 01.028.015.044.044 0 01.009.01.084.084 0 01.011.046.084.084 0 01-.011.045.04.04 0 01-.01.01.102.102 0 01-.028.015l.521 1.407zm-4.23 1.565l4.23-1.565-.52-1.407-4.232 1.566.521 1.406zm-1.123 3.788l1.565-4.23-1.407-.521-1.565 4.23 1.407.521zm-2.955 0c.508 1.371 2.447 1.371 2.955 0l-1.407-.52a.1.1 0 01-.015.028.04.04 0 01-.01.009.085.085 0 01-.045.012.085.085 0 01-.046-.012.04.04 0 01-.01-.01.1.1 0 01-.015-.027l-1.407.52zm-1.565-4.23l1.565 4.23 1.407-.52-1.565-4.231-1.407.52zm-3.788-1.123l4.23 1.565.521-1.406-4.23-1.566-.521 1.407zm0-2.954c-1.371.507-1.371 2.446 0 2.954l.52-1.407a.1.1 0 01-.028-.015.04.04 0 01-.009-.01.085.085 0 01-.011-.045.09.09 0 01.011-.046.043.043 0 01.01-.01.099.099 0 01.028-.015l-.521-1.406zm4.23-1.566l-4.23 1.566.52 1.406L6.92 9.865 6.4 8.458zM7.523 4.67L5.957 8.901l1.407.52 1.565-4.23-1.407-.52zm1.14 5.563l1.04-2.81-1.406-.521-1.04 2.81 1.407.521zm-.93.93c.431-.159.771-.498.93-.93l-1.406-.52a.075.075 0 01-.044.044l.52 1.407zm-2.811 1.041l2.811-1.04-.52-1.407-2.812 1.04.52 1.407zm2.811-.366l-2.811-1.04-.52 1.406 2.81 1.04.521-1.406zm.93.93a1.574 1.574 0 00-.93-.93l-.52 1.406c.02.008.036.024.044.045l1.407-.52zm1.04 2.811l-1.04-2.81-1.406.52 1.04 2.81 1.407-.52zm-.366-2.81l-1.04 2.81 1.407.52 1.04-2.81-1.407-.52zm.93-.931c-.43.16-.77.499-.93.93l1.407.52a.075.075 0 01.044-.044l-.52-1.406zm2.812-1.04l-2.811 1.04.52 1.406 2.812-1.04-.52-1.407zm-2.811.366l2.811 1.04.52-1.407-2.81-1.04-.521 1.407zm-.93-.93c.159.43.499.77.93.93l.52-1.407a.075.075 0 01-.044-.044l-1.407.52zm-1.04-2.812l1.04 2.811 1.406-.52-1.04-2.811-1.407.52zm9.73 7.314a.563.563 0 01-1.055 0l1.407-.52c-.302-.816-1.457-.816-1.759 0l1.407.52zm-.875 2.364l.875-2.364-1.407-.52-.874 2.363 1.406.52zm-.553.554a.938.938 0 00.553-.554l-1.406-.52a.563.563 0 01.332-.333l.52 1.407zm-2.364.874l2.364-.874-.521-1.407-2.364.875.521 1.406zm0-1.055c.49.181.49.874 0 1.055l-.52-1.406c-.817.302-.817 1.456 0 1.758l.52-1.407zm2.364.875l-2.364-.875-.52 1.407 2.363.875.52-1.407zm.553.554a.938.938 0 00-.553-.554l-.521 1.407a.563.563 0 01-.332-.333l1.406-.52zm.875 2.363l-.875-2.363-1.406.52.874 2.364 1.407-.52zm-1.055 0a.563.563 0 011.055 0l-1.407.52c.302.817 1.457.817 1.759 0l-1.407-.52zm.875-2.363l-.875 2.363 1.407.52.874-2.363-1.406-.52zm.553-.554a.937.937 0 00-.553.554l1.406.52a.562.562 0 01-.332.333l-.52-1.407zm2.364-.875l-2.363.875.52 1.407 2.364-.875-.521-1.407zm0 1.055a.563.563 0 010-1.055l.52 1.407c.817-.302.817-1.456 0-1.758l-.52 1.406zm-2.363-.874l2.363.874.52-1.406-2.363-.875-.52 1.407zm-.554-.554a.938.938 0 00.553.554l.521-1.407a.562.562 0 01.332.332l-1.406.52zm-.875-2.364l.875 2.364 1.406-.52-.874-2.364-1.407.52z\"\n fill=\"currentColor\"\n mask=\"url(#ai-stars_svg__a)\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAiStars);\n","import * as React from 'react';\nfunction IconArrowBottom(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M8.25 18h7.5a.75.75 0 110 1.5h-7.5a.75.75 0 110-1.5zM12 4.5a.75.75 0 01.743.648l.007.102v8.189l2.22-2.22a.75.75 0 011.133.977l-.073.084-3.5 3.5a.754.754 0 01-.078.069l.078-.069-.042.04-.052.04-.114.068-.098.038-.084.02-.088.012L12 16l-.029-.002h-.023l-.021-.003-.054-.006-.07-.015-.072-.024-.1-.047-.082-.054-.08-.069-3.5-3.5a.75.75 0 01.977-1.133l.084.073 2.22 2.219V5.25A.75.75 0 0112 4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowBottom);\n","import * as React from 'react';\nfunction IconArrowDown(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 6.25a.75.75 0 01.743.648L12.75 7l-.001 8.189 2.22-2.22a.75.75 0 011.134.977l-.073.084-3.5 3.5-.038.036-.046.037h-.002l-.008.007-.081.051-.134.056-.085.02-.084.011h-.103l-.12-.018-.12-.039-.078-.038-.082-.054-.08-.069-3.5-3.5a.75.75 0 01.977-1.133l.084.073 2.219 2.218L11.25 7a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowDown);\n","import * as React from 'react';\nfunction IconArrowEnd(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.75 7.5a.75.75 0 01.75.75v7.5a.75.75 0 11-1.5 0v-7.5a.75.75 0 01.75-.75zm-6.554.397l.084.073 3.5 3.5c.025.024.048.05.069.078l-.069-.078.04.042.04.052.068.114.038.098.02.084.012.088v.104l-.018.119-.03.098-.047.1-.032.051-.027.038-.064.072-3.5 3.5a.75.75 0 01-1.133-.976l.073-.084 2.219-2.22H5.25a.75.75 0 01-.102-1.493l.102-.007h8.189l-2.22-2.22a.75.75 0 01.977-1.133z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowEnd);\n","import * as React from 'react';\nfunction IconArrowLeft(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.03 7.97a.75.75 0 01.073.976l-.073.084-2.219 2.219L17 11.25a.75.75 0 01.102 1.493L17 12.75l-8.19-.001 2.22 2.22a.75.75 0 01-.976 1.134l-.084-.073-3.5-3.5-.08-.094-.051-.081-.05-.116-.027-.103-.01-.089v-.094l.018-.124.03-.099.047-.099.054-.082.069-.08 3.5-3.5a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowLeft);\n","import * as React from 'react';\nfunction IconArrowRight(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.946 7.897l.084.073 3.5 3.5.036.038.044.056.051.081.05.116.027.103.01.084v.103l-.018.12-.039.12-.038.078-.06.09-.063.071-3.5 3.5a.75.75 0 01-1.133-.976l.073-.084 2.218-2.22H7a.75.75 0 01-.102-1.493L7 11.25h8.189l-2.22-2.22a.75.75 0 01.977-1.133z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowRight);\n","import * as React from 'react';\nfunction IconArrowStart(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.25 7.5a.75.75 0 01.75.75v7.5a.75.75 0 11-1.5 0v-7.5a.75.75 0 01.75-.75zm7.53.47a.75.75 0 01.073.976l-.073.084-2.219 2.22h8.189a.75.75 0 01.102 1.493l-.102.007h-8.189l2.22 2.22a.75.75 0 01-.977 1.133l-.084-.073-3.5-3.5-.055-.06-.046-.065-.049-.088-.044-.12-.018-.089L8 11.965l.019-.136.03-.098.047-.1.054-.082.069-.08 3.5-3.5a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowStart);\n","import * as React from 'react';\nfunction IconArrowTop(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.86 8.013l.067-.01.125-.001.119.018.098.03.1.047.051.032.038.027.072.064 3.5 3.5a.75.75 0 01-.976 1.133l-.084-.073-2.22-2.219v8.189a.75.75 0 01-1.493.102l-.007-.102v-8.189l-2.22 2.22a.75.75 0 01-1.133-.977l.073-.084 3.5-3.5.042-.04.052-.04.114-.068.098-.038.084-.02zM15.75 4.5a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowTop);\n","import * as React from 'react';\nfunction IconArrowUp(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.864 6.262l.089-.01h.095l.123.018.12.039.078.038.09.06.071.063 3.5 3.5a.75.75 0 01-.976 1.133l-.084-.073-2.22-2.219V17a.75.75 0 01-1.493.102L11.25 17V8.81l-2.22 2.22a.75.75 0 01-1.133-.976l.073-.084 3.5-3.5.094-.08.081-.051.134-.056.085-.02z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconArrowUp);\n","import * as React from 'react';\nfunction IconAttachAuto(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.916 10.159l1.06 1.06-2.663 2.665a3.75 3.75 0 005.159 5.44l.144-.137 6.657-6.657a.75.75 0 011.128.984l-.067.077-6.657 6.657a5.25 5.25 0 01-7.575-7.269l.15-.156 2.664-2.664zm11.771-6.468a3.75 3.75 0 01.137 5.16l-.137.144-9.132 9.132a2.25 2.25 0 01-3.287-3.07l.105-.112 6.657-6.657a.75.75 0 011.128.984l-.067.076-6.657 6.657a.75.75 0 00.984 1.128l.077-.067 9.132-9.132a2.25 2.25 0 00-3.07-3.287l-.112.105-2.933 2.932-1.061-1.061 2.933-2.932a3.75 3.75 0 015.303 0zM4 9a2 2 0 002 2 2 2 0 00-1.995 1.85L4 13l-.004-.132A2 2 0 002 11a2 2 0 002-2zm6-2.5a2 2 0 002 2 2 2 0 00-1.995 1.85L10 10.5l-.004-.132A2 2 0 008 8.5a2 2 0 002-2zM6.5 2c0 2.21 2.015 4 4.5 4-2.412 0-4.381 1.687-4.495 3.806L6.5 10l-.01-.263C6.338 7.65 4.386 6 2 6c2.485 0 4.5-1.79 4.5-4z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAttachAuto);\n","import * as React from 'react';\nfunction IconAttachCancel(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.026 18.467a.75.75 0 01-.977 1.133l-.084-.073-2.288-2.288-3.005 3.006a5.25 5.25 0 01-7.574-7.269l.15-.156 3.005-3.005-2.288-2.288a.75.75 0 01.977-1.133l.084.073 12 12zm-9.713-7.592l-3.005 3.006a3.75 3.75 0 005.16 5.44l.144-.137 3.005-3.005-1.061-1.061-3.005 3.005a2.25 2.25 0 01-3.287-3.069l.105-.113 3.005-3.005-1.061-1.061zm2.122 2.122L8.43 16.002a.75.75 0 00.984 1.128l.076-.067 3.005-3.006-1.06-1.06zm7.894-.47a.75.75 0 01.067.984l-.067.077-1.53 1.53-1.061-1.061 1.53-1.53a.75.75 0 011.061 0zm.354-8.839a3.75 3.75 0 01.137 5.16l-.137.144-4.006 4.004-1.06-1.06 4.005-4.005a2.25 2.25 0 00-3.07-3.287l-.112.105-4.005 4.005-1.061-1.061 4.005-4.005a3.75 3.75 0 015.304 0zm-4.596 4.597a.75.75 0 01.067.983l-.067.077-1.531 1.53-1.061-1.061 1.53-1.53a.75.75 0 011.062 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAttachCancel);\n","import * as React from 'react';\nfunction IconAttachWarning(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.38 3.688a3.75 3.75 0 015.44 5.16l-.137.144-9.132 9.131a2.25 2.25 0 01-3.287-3.069l.105-.113 6.657-6.656a.75.75 0 011.128.983l-.068.077-6.656 6.657a.75.75 0 00.984 1.128l.076-.067 9.132-9.132a2.25 2.25 0 00-3.07-3.287l-.112.105-9.132 9.132a3.75 3.75 0 005.16 5.44l.144-.137 1.934-1.935a6.062 6.062 0 00.09 2.031l-.964.965a5.25 5.25 0 01-7.574-7.269l.15-.156 9.131-9.132zM22 18a4.5 4.5 0 10-9 0 4.5 4.5 0 009 0zm-5.243-2.852a.75.75 0 011.493.102v3.5l-.007.102a.75.75 0 01-1.493-.102v-3.5l.007-.102zM17.5 20a.75.75 0 100 1.5.75.75 0 000-1.5z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAttachWarning);\n","import * as React from 'react';\nfunction IconAttach(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.38 3.688a3.75 3.75 0 015.44 5.16l-.137.144-9.132 9.131a2.25 2.25 0 01-3.287-3.069l.105-.113 6.657-6.656a.75.75 0 011.128.983l-.067.077-6.657 6.657a.75.75 0 00.984 1.128l.076-.067 9.132-9.132a2.25 2.25 0 00-3.07-3.287l-.112.105-9.132 9.132a3.75 3.75 0 005.16 5.44l.144-.137 6.657-6.657a.75.75 0 011.127.984l-.067.077-6.657 6.657a5.25 5.25 0 01-7.574-7.269l.15-.156 9.131-9.132z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAttach);\n","import * as React from 'react';\nfunction IconAutotextInsert(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.75 5.75a.25.25 0 00-.193-.243L14.5 5.5H14a.75.75 0 01-.102-1.493L14 4h.5c.372 0 .718.116 1.001.315.242-.17.53-.28.841-.308L16.5 4h.5l.102.007a.75.75 0 010 1.486L17 5.5h-.5l-.057.007a.25.25 0 00-.184.175l-.009.068V8h4c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0120.25 16h-4v2.25l.007.057a.25.25 0 00.175.184l.068.009h.5l.102.007a.75.75 0 010 1.486L17 20h-.5l-.144-.006a1.74 1.74 0 01-.856-.308 1.734 1.734 0 01-.856.308L14.5 20H14a.75.75 0 01-.102-1.493L14 18.5h.5a.25.25 0 00.243-.193l.007-.057V5.75zm5.5 3.75h-4v5h4a.25.25 0 00.243-.193l.007-.057v-4.5a.25.25 0 00-.193-.243L20.25 9.5zM6 11a1 1 0 110 2 1 1 0 010-2zm3.5 0a1 1 0 110 2 1 1 0 010-2zm3.5 0c.087 0 .17.011.25.032v1.936A1.002 1.002 0 0112 12a1 1 0 011-1zm-9.25 5A1.75 1.75 0 012 14.25v-4.5C2 8.784 2.784 8 3.75 8h9.5v1.5h-9.5a.25.25 0 00-.243.193L3.5 9.75v4.5a.25.25 0 00.193.243l.057.007h9.5V16h-9.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAutotextInsert);\n","import * as React from 'react';\nfunction IconAutotext(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 8c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0120.25 16H3.75A1.75 1.75 0 012 14.25v-4.5C2 8.784 2.784 8 3.75 8h16.5zm0 1.5H3.75a.25.25 0 00-.243.193L3.5 9.75v4.5a.25.25 0 00.193.243l.057.007h16.5a.25.25 0 00.243-.193l.007-.057v-4.5a.25.25 0 00-.193-.243L20.25 9.5zM6 11a1 1 0 110 2 1 1 0 010-2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconAutotext);\n","import * as React from 'react';\nfunction IconBasicTabs(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.5 12.25l1.5 1.5V21a1 1 0 01-1 1H5a1 1 0 01-1-1v-7.25l1.5-1.5v8.25h13v-8.25zm-6.875.582l.375.375.375-.375a1.591 1.591 0 112.25 2.25L12 17.707l-2.625-2.625a1.591 1.591 0 012.25-2.25zm.821-10.685l.084.073L17 6.689V5.5a.5.5 0 01.5-.5h.5a.5.5 0 01.5.5v2.689l3.03 3.03a.75.75 0 01-.976 1.134l-.084-.073L12 3.811l-8.47 8.47a.75.75 0 01-.976.072l-.084-.073a.75.75 0 01-.073-.976l.073-.084 9-9a.75.75 0 01.976-.073z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBasicTabs);\n","import * as React from 'react';\nfunction IconBasic(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M15.25 18.999V21h-2.5v-2.001h2.5zM21 16.75v2.5A1.75 1.75 0 0119.25 21h-2.5v-2.001H19V16.75h2zm-11.5-4c.966 0 1.75.784 1.75 1.75v4.75A1.75 1.75 0 019.5 21H4.75A1.75 1.75 0 013 19.25V14.5c0-.966.784-1.75 1.75-1.75H9.5zm11.5 0v2.5h-2v-2.5h2zm0-4v2.5h-2v-2.5h2zm-16 0v2.5H3v-2.5h2zM19.25 3c.966 0 1.75.784 1.75 1.75v2.5h-2V4.999h-2.25V3h2.5zm-12 0v1.999H5V7.25H3v-2.5C3 3.784 3.784 3 4.75 3h2.5zm4 0v1.999h-2.5V3h2.5zm4 0v1.999h-2.5V3h2.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBasic);\n","import * as React from 'react';\nfunction IconBellSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.5 19.5a2.5 2.5 0 01-4.995.164L9.5 19.5h5zM12 2c.915 0 1.686.767 1.924 1.815A6.002 6.002 0 0118 9.5V15l1.6 1.2A1 1 0 0119 18H5a1 1 0 01-.6-1.8L6 15V9.5a6.003 6.003 0 014.077-5.685C10.314 2.767 11.085 2 12 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBellSolid);\n","import * as React from 'react';\nfunction IconBook(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17 4.5c1.583 0 3.165.45 4.748 1.352a.5.5 0 01.252.435V19.15a.5.5 0 01-.728.445C19.848 18.865 18.424 18.5 17 18.5c-1.667 0-3.333.5-5 1.5-1.667-1-3.333-1.5-5-1.5-1.424 0-2.848.365-4.272 1.095A.5.5 0 012 19.15V6.287a.5.5 0 01.252-.435C3.835 4.951 5.417 4.5 7 4.5c1.667 0 3.333.5 5 1.5 1.667-1 3.333-1.5 5-1.5zM17 6c-1.284 0-2.586.363-3.92 1.108l-.308.178L12 7.75l-.772-.463C9.786 6.421 8.383 6 7 6c-1.11 0-2.232.271-3.378.825l-.122.062v10.739l.056-.02a10.363 10.363 0 013.059-.598L7 17c1.585 0 3.156.382 4.704 1.134l.296.149.296-.149c1.429-.694 2.878-1.073 4.339-1.127L17 17c1.027 0 2.05.16 3.065.48l.435.147V6.887l-.122-.062c-1.041-.504-2.064-.773-3.075-.818L17 6zm0 7.75c.836 0 1.669.115 2.5.344v1.567a7.98 7.98 0 00-2.5-.411c-1.16 0-2.325.266-3.501.804v-1.627A9.628 9.628 0 0117 13.75zm0-3c.836 0 1.669.115 2.5.344v1.567a7.98 7.98 0 00-2.5-.411c-1.16 0-2.325.266-3.501.804v-1.627A9.628 9.628 0 0117 10.75zm0-3c.836 0 1.669.115 2.5.344v1.567A7.98 7.98 0 0017 9.25c-1.16 0-2.325.266-3.501.804V8.427A9.628 9.628 0 0117 7.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBook);\n","import * as React from 'react';\nfunction IconBooking(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 2a.75.75 0 01.743.648L20 2.75v18.5a.75.75 0 01-.648.743L19.25 22H6.75a2.75 2.75 0 01-2.739-3H4V5l.043.001A.749.749 0 014 4.75a2.75 2.75 0 012.582-2.745L6.75 2h12.5zm-.75 16H6.75a1.25 1.25 0 00-.128 2.494l.128.006H18.5v-.75H6.75a.5.5 0 110-1H18.5V18zM5.506 4.622L5.5 4.75a.749.749 0 01-.043.251L5.5 5v11.8a2.732 2.732 0 011-.289V3.525a1.25 1.25 0 00-.994 1.097zM18.5 3.5h-11v13h11v-13zM14.25 9a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm2-3a.75.75 0 110 1.5h-6.5a.75.75 0 010-1.5h6.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBooking);\n","import * as React from 'react';\nfunction IconBudget(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.75 11c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0110.75 22h-6A1.75 1.75 0 013 20.25v-7.5c0-.966.784-1.75 1.75-1.75h6zm.25 8.5H9.5v1H11v-1zm-2.5 0h-4v1h4v-1zM14.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707v9.836A1.75 1.75 0 0119.25 20H13.5v-1.5h5.75a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L14 7.25V3.499L8.25 3.5a.25.25 0 00-.243.193L8 3.75V10H6.5V3.75C6.5 2.784 7.284 2 8.25 2h6.336zM11 17.5H9.5v1H11v-1zm-2.5 0H7v1h1.5v-1zm-2.5 0H4.5v1H6v-1zm10.016-6.984c.152 0 .333.058.371.263l.008.084v.242c.554.063 1.043.247 1.34.536.21.203.32.418.32.644 0 .29-.239.492-.516.492-.242 0-.437-.074-.648-.234-.328-.25-.586-.348-.93-.348-.379 0-.61.23-.61.48 0 .226.168.369.56.457l.14.028.687.121c1 .176 1.508.68 1.508 1.508 0 .908-.638 1.554-1.67 1.741l-.185.029v.175c0 .27-.207.352-.375.352-.157 0-.34-.065-.38-.269l-.007-.083v-.164c-.649-.047-1.211-.242-1.543-.558-.2-.196-.316-.41-.316-.645 0-.347.265-.543.59-.543.159 0 .308.044.495.162l.118.08c.343.254.726.395 1.043.395.48 0 .722-.203.722-.5 0-.217-.177-.353-.617-.458l-.14-.03-.672-.133c-.996-.192-1.489-.703-1.489-1.54 0-.885.638-1.523 1.633-1.683l.18-.023v-.23c0-.274.21-.348.383-.348zM11 15.5H9.5v1H11v-1zm-2.5 0H7v1h1.5v-1zm-2.5 0H4.5v1H6v-1zm5-3H4.5v2H11v-2zm4.5-7.881V7.25a.25.25 0 00.193.243l.057.007h2.631L15.5 4.619z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconBudget);\n","import * as React from 'react';\nfunction IconCalendar(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.25 2c.414 0 .75.294.75.656V3h2.25c.966 0 1.75.83 1.75 1.853v14.294C21 20.17 20.216 21 19.25 21H4.75C3.784 21 3 20.17 3 19.147V4.853C3 3.83 3.784 3 4.75 3H7v-.344C7 2.294 7.336 2 7.75 2s.75.294.75.656V3h7v-.344c0-.362.336-.656.75-.656zm3.25 6h-15v11.147c0 .125.082.23.193.258l.057.007h14.5a.254.254 0 00.243-.204l.007-.06V8zm-11 7a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h2zm4.5 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h2zm4.5 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h2zm-9-4.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2A.5.5 0 016 12v-1a.5.5 0 01.5-.5h2zm4.5 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h2zm4.5 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h2zM7 4.588H4.75a.254.254 0 00-.243.204l-.007.06V6.5h15V4.853a.262.262 0 00-.193-.258l-.057-.007H17v.256c0 .362-.336.656-.75.656s-.75-.294-.75-.656v-.256h-7v.256c0 .362-.336.656-.75.656S7 5.206 7 4.844v-.256z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCalendar);\n","import * as React from 'react';\nfunction IconCashAccount(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20 8a2 2 0 012 2v9a2 2 0 01-2 2H8a2 2 0 01-2-2v-9a2 2 0 012-2h12zm.5 5h-13v6a.5.5 0 00.41.492L8 19.5h12a.5.5 0 00.492-.41L20.5 19v-6zM12 15a.5.5 0 01.5.5V17a.5.5 0 01-.5.5h-2a.5.5 0 01-.5-.5v-1.5a.5.5 0 01.5-.5h2zm4.607-10.568L17.294 7h-1.553l-.583-2.18a.5.5 0 00-.524-.369l-.089.016L3.92 7.314a.5.5 0 00-.369.523l.016.089L5 13.276v3.905a1.992 1.992 0 01-.812-1.14l-2.07-7.727a2 2 0 011.414-2.45l10.625-2.846a2 2 0 012.45 1.414zM20 9.5H8a.5.5 0 00-.492.41L7.5 10v1.5h13V10a.5.5 0 00-.41-.492L20 9.5z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCashAccount);\n","import * as React from 'react';\nfunction IconCashReports(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zM13 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5zm-1.143 6.234c.215 0 .434.097.48.36l.009.107v.387c.714.091 1.353.338 1.75.725.301.285.463.602.463.902 0 .355-.28.602-.618.602-.29 0-.51-.102-.779-.333-.456-.435-.843-.607-1.38-.607-.634 0-1.037.36-1.037.811 0 .372.266.62.843.762l.15.033 1.016.21c1.353.263 2.02.934 2.02 2.035 0 1.218-.86 2.076-2.251 2.304l-.193.027v.338c0 .344-.247.468-.49.468-.214 0-.437-.098-.484-.361l-.01-.107v-.327c-.816-.07-1.535-.322-1.981-.736-.301-.274-.473-.585-.473-.908 0-.419.306-.655.688-.655.236 0 .43.075.735.333.478.435 1.005.66 1.547.66.758 0 1.166-.338 1.166-.853 0-.374-.264-.605-.921-.77l-.159-.036-1.01-.22c-1.3-.269-1.955-.967-1.955-2.063 0-1.187.855-2.034 2.199-2.223l.186-.022v-.376c0-.349.247-.467.489-.467zM14.5 4.62v2.63a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCashReports);\n","import * as React from 'react';\nfunction IconChartArea(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.5 4.75a.75.75 0 00-1.5 0v14.5c0 .414.336.75.75.75h18.5a.75.75 0 000-1.5h-1.5V6a.75.75 0 00-1.14-.64l-6.88 4.188-3.045-2.682a.75.75 0 00-.921-.055L3.5 9.745V4.75zm0 6.816V18.5h14.75V7.335l-6.211 3.782a.75.75 0 01-.886-.078l-3.02-2.66L3.5 11.565z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChartArea);\n","import * as React from 'react';\nfunction IconChartBar(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 17.75A1.75 1.75 0 009.25 16h-4.5A1.75 1.75 0 003 17.75v1.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0011 19.25v-1.5zm6-6.5a1.75 1.75 0 00-1.75-1.75H4.75A1.75 1.75 0 003 11.25v1.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0017 12.75v-1.5zm4-6.5A1.75 1.75 0 0019.25 3H4.75A1.75 1.75 0 003 4.75v1.5C3 7.216 3.784 8 4.75 8h14.5A1.75 1.75 0 0021 6.25v-1.5zm-11.5 13v1.5a.25.25 0 01-.193.243l-.057.007h-4.5a.25.25 0 01-.243-.193L4.5 19.25v-1.5a.25.25 0 01.193-.243l.057-.007h4.5a.25.25 0 01.243.193l.007.057zm6-6.5v1.5a.25.25 0 01-.193.243L15.25 13H4.75a.25.25 0 01-.243-.193L4.5 12.75v-1.5a.25.25 0 01.193-.243L4.75 11h10.5a.25.25 0 01.243.193l.007.057zm4-6.5v1.5a.25.25 0 01-.193.243l-.057.007H4.75a.25.25 0 01-.243-.193L4.5 6.25v-1.5a.25.25 0 01.193-.243L4.75 4.5h14.5a.25.25 0 01.243.193l.007.057z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChartBar);\n","import * as React from 'react';\nfunction IconChartLine(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.5 4.75a.75.75 0 00-1.5 0v14.5c0 .414.336.75.75.75h18.5a.75.75 0 000-1.5H3.5V4.75zm18.06 2.53a.75.75 0 10-1.06-1.06l-5.97 5.97-3.47-3.47a.75.75 0 00-1.06 0l-4.47 4.47a.75.75 0 001.061 1.06l3.94-3.94L14 13.78a.75.75 0 001.06 0l6.5-6.5z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChartLine);\n","import * as React from 'react';\nfunction IconChartPie(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.25 4.25A.75.75 0 0111 5v8h8a.75.75 0 01.743.648l.007.102c0 4.97-4.03 8.5-9 8.5a9 9 0 01-9-9c0-4.97 3.53-9 8.5-9zM9.5 5.787l-.209.024c-3.69.47-6.041 3.622-6.041 7.439a7.5 7.5 0 007.5 7.5c3.817 0 6.968-2.352 7.44-6.041l.022-.209H10.25a.75.75 0 01-.743-.648L9.5 13.75V5.787zm3.75-4.037a9 9 0 019 9 .75.75 0 01-.75.75h-8.25a.75.75 0 01-.75-.75V2.5a.75.75 0 01.75-.75zM14 3.287V10h6.712l-.023-.209a7.504 7.504 0 00-6.48-6.48L14 3.287z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChartPie);\n","import * as React from 'react';\nfunction IconChartTable(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.5 4.5h15v3.75h-15V4.5zM3 9.75V4.5A1.5 1.5 0 014.5 3h15A1.5 1.5 0 0121 4.5v15a1.5 1.5 0 01-1.5 1.5h-15A1.5 1.5 0 013 19.5V9.75zM4.5 14V9.75h4V14h-4zm0 1.5v4h4v-4h-4zm5.5 4h4v-4h-4v4zm5.5 0h4v-4h-4v4zm4-5.5V9.75h-4V14h4zM10 9.75h4V14h-4V9.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChartTable);\n","import * as React from 'react';\nfunction IconChatSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.557 13.056c1.474.7 2.443 1.881 2.443 3.222 0 1.294-.903 2.44-2.292 3.147l.89 1.582a.556.556 0 01-.748.761l-.084-.055-2.059-1.647a7.87 7.87 0 01-1.263.1c-2.853 0-5.205-1.506-5.52-3.444 2.666-.007 5.071-.766 6.817-1.966a7.924 7.924 0 001.802-1.682l.014-.018zM10.889 3.5c4.91 0 8.889 2.736 8.889 6.111 0 3.309-3.825 6.004-8.601 6.108l-.426.003-5.406 4.324a.556.556 0 01-.832-.706l2.398-4.262C3.999 14.074 2 12.003 2 9.61 2 6.236 5.98 3.5 10.889 3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChatSolid);\n","import * as React from 'react';\nfunction IconChat(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.313 12.156c.59.664.937 1.466.937 2.344 0 1.01-.467 1.944-1.272 2.68l-.21.179.885 1.77c.174.348.174.753.01 1.096l-.068.125-.084.118c-.352.44-.948.585-1.501.347l-.127-.062-.129-.09-2.446-1.955-.233.021-.19.012-.385.009c-2.065 0-3.908-.798-4.923-2.035a13.97 13.97 0 002.216-.108c.728.397 1.667.643 2.707.643.209 0 .415-.01.619-.03l.303-.037.323-.047 2.059 1.649-.969-1.94.582-.36c.86-.533 1.333-1.252 1.333-1.985 0-.371-.122-.733-.343-1.065.3-.336.562-.69.781-1.06l.125-.219zM11 3.25c4.786 0 8.75 2.725 8.75 6.25 0 3.455-3.81 6.143-8.47 6.247l-.139.001-4.662 3.73a1.25 1.25 0 01-1.567-.004l-.1-.09-.09-.102a1.25 1.25 0 01-.174-1.27l.06-.124 1.737-3.087-.23-.106c-2.193-1.046-3.646-2.768-3.842-4.737l-.017-.228-.006-.23c0-3.525 3.964-6.25 8.75-6.25zm0 1.5c-4.05 0-7.25 2.2-7.25 4.75 0 1.679 1.397 3.263 3.66 4.119l.255.092.85.293-1.969 3.498 4.072-3.255.267.002.384-.002c3.922-.095 6.981-2.253 6.981-4.747 0-2.55-3.2-4.75-7.25-4.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChat);\n","import * as React from 'react';\nfunction IconChevronDownDouble(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.47 6.47a.75.75 0 01.976-.073l.084.073L12 10.939l4.47-4.47a.75.75 0 01.976-.072l.084.073a.75.75 0 01.073.976l-.073.084-5 5a.75.75 0 01-.976.073l-.084-.073-5-5a.75.75 0 010-1.06zm0 5a.75.75 0 01.976-.073l.084.073L12 15.939l4.47-4.47a.75.75 0 01.976-.072l.084.073a.75.75 0 01.073.976l-.073.084-5 5a.75.75 0 01-.976.073l-.084-.073-5-5a.75.75 0 010-1.06z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronDownDouble);\n","import * as React from 'react';\nfunction IconChevronDownSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.854 9.354l5.792 5.792a.5.5 0 00.708 0l5.792-5.792a.5.5 0 00-.353-.854H6.207a.5.5 0 00-.353.854z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronDownSolid);\n","import * as React from 'react';\nfunction IconChevronDown(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.47 10.03a.75.75 0 01.976-1.133l.084.073L12 13.439l4.47-4.47a.75.75 0 01.976-.072l.084.073a.75.75 0 01.073.976l-.073.084-5 5a.75.75 0 01-.976.073l-.084-.073-5-5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronDown);\n","import * as React from 'react';\nfunction IconChevronLeftDouble(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17.53 6.47a.75.75 0 01.073.976l-.073.084L13.061 12l4.47 4.47a.75.75 0 01.072.976l-.073.084a.75.75 0 01-.976.073l-.084-.073-5-5a.75.75 0 01-.073-.976l.073-.084 5-5a.75.75 0 011.06 0zm-5 0a.75.75 0 01.073.976l-.073.084L8.061 12l4.47 4.47a.75.75 0 01.072.976l-.073.084a.75.75 0 01-.976.073l-.084-.073-5-5a.75.75 0 01-.073-.976l.073-.084 5-5a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronLeftDouble);\n","import * as React from 'react';\nfunction IconChevronLeftSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.5 6.207a.5.5 0 00-.854-.353l-5.792 5.792a.5.5 0 000 .708l5.792 5.792a.5.5 0 00.854-.353V6.207z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronLeftSolid);\n","import * as React from 'react';\nfunction IconChevronLeft(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.97 6.47a.75.75 0 011.133.976l-.073.084L10.561 12l4.47 4.47a.75.75 0 01.072.976l-.073.084a.75.75 0 01-.976.073l-.084-.073-5-5a.75.75 0 01-.073-.976l.073-.084 5-5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronLeft);\n","import * as React from 'react';\nfunction IconChevronRightDouble(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.47 6.47a.75.75 0 01.976-.073l.084.073 5 5 .073.084a.75.75 0 01.007.882l-.08.094-5 5-.084.073a.75.75 0 01-.882.007l-.094-.08-.073-.084a.75.75 0 01-.007-.882l.08-.094L15.939 12l-4.47-4.47-.072-.084a.75.75 0 01.073-.976zm-5 0a.75.75 0 01.976-.073l.084.073 5 5 .073.084a.75.75 0 01.007.882l-.08.094-5 5-.084.073a.75.75 0 01-.882.007l-.094-.08-.073-.084a.75.75 0 01-.007-.882l.08-.094L10.939 12l-4.47-4.47-.072-.084a.75.75 0 01.073-.976z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronRightDouble);\n","import * as React from 'react';\nfunction IconChevronRightSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.5 17.793a.5.5 0 00.854.353l5.792-5.792a.5.5 0 000-.708L9.354 5.854a.5.5 0 00-.854.353v11.586z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronRightSolid);\n","import * as React from 'react';\nfunction IconChevronRight(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.03 6.47a.75.75 0 00-1.133.976l.073.084L13.439 12l-4.47 4.47a.75.75 0 00-.072.976l.073.084a.75.75 0 00.976.073l.084-.073 5-5a.75.75 0 00.073-.976l-.073-.084-5-5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronRight);\n","import * as React from 'react';\nfunction IconChevronUpDouble(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.47 12.53a.75.75 0 01-.073-.976l.073-.084 5-5 .084-.073a.75.75 0 01.882-.007l.094.08 5 5 .073.084a.75.75 0 01.007.882l-.08.094-.084.073a.75.75 0 01-.882.007l-.094-.08L12 8.061l-4.47 4.47-.084.072a.75.75 0 01-.976-.073zm0 5a.75.75 0 01-.073-.976l.073-.084 5-5 .084-.073a.75.75 0 01.882-.007l.094.08 5 5 .073.084a.75.75 0 01.007.882l-.08.094-.084.073a.75.75 0 01-.882.007l-.094-.08L12 13.061l-4.47 4.47-.084.072a.75.75 0 01-.976-.073z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronUpDouble);\n","import * as React from 'react';\nfunction IconChevronUpSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.854 14.646l5.792-5.792a.5.5 0 01.708 0l5.792 5.792a.5.5 0 01-.353.854H6.207a.5.5 0 01-.353-.854z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronUpSolid);\n","import * as React from 'react';\nfunction IconChevronUp(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17.53 13.97a.75.75 0 01-.976 1.133l-.084-.073L12 10.561l-4.47 4.47a.75.75 0 01-.976.072l-.084-.073a.75.75 0 01-.073-.976l.073-.084 5-5a.75.75 0 01.976-.073l.084.073 5 5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconChevronUp);\n","import * as React from 'react';\nfunction IconCircleClose(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zM8.641 8.641a.75.75 0 01.984-.067l.077.067L12 10.94l2.298-2.298a.75.75 0 011.128.984l-.067.077L13.06 12l2.298 2.298a.75.75 0 01-.984 1.128l-.077-.067L12 13.06l-2.298 2.298a.75.75 0 01-1.128-.984l.067-.077L10.94 12 8.641 9.702a.75.75 0 010-1.06z\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleClose);\n","import * as React from 'react';\nfunction IconCircleInformation(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm-.267 5.753a1 1 0 10-.001-2.001 1 1 0 00.001 2.001zM14 16.754a.75.75 0 000-1.502h-1.267V11.5a.752.752 0 00-.75-.751H10a.75.75 0 000 1.502h1.233v3H10a.75.75 0 000 1.503h4z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleInformation);\n","import * as React from 'react';\nfunction IconCircleMinus(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm4 7.75c.934 0 1.027 1.366.102 1.493-8 0 0 0-8.102.007-.934 0-1.027-1.366-.102-1.493z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleMinus);\n","import * as React from 'react';\nfunction IconCirclePlus(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm0 3.75a.75.75 0 01.743.648L12.75 8v3.25H16a.75.75 0 01.102 1.493L16 12.75h-3.25V16a.75.75 0 01-1.493.102L11.25 16v-3.25H8a.75.75 0 01-.102-1.493L8 11.25h3.25V8a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCirclePlus);\n","import * as React from 'react';\nfunction IconCircleQuestionmark(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm.58 10.15a.71.71 0 00.226-.543v-1.272a.306.306 0 01.045-.143.522.522 0 01.136-.133 3.91 3.91 0 01.285-.18l.028-.016c.112-.066.242-.143.387-.237.706-.454 1.156-1.012 1.156-1.838 0-.673-.37-1.19-.887-1.53-.513-.336-1.183-.508-1.845-.508-.552 0-1.234.096-1.79.317a2.441 2.441 0 00-.574.315c-.09.069-.174.146-.245.232a1.15 1.15 0 00-.154.238 1.474 1.474 0 00-.148.625c0 .075.01.118.02.167.036.159.12.3.254.401a.77.77 0 00.47.147.768.768 0 00.745-.517l.004-.013c.053-.17.226-.306.517-.4.282-.09.611-.116.852-.116.267 0 .575.078.809.213.241.139.345.298.345.44 0 .188-.051.32-.152.444-.11.136-.285.27-.55.444h-.002l-.136.091h-.001c-.232.153-.49.322-.695.513-.252.234-.467.537-.467.938v1.38c0 .226.087.421.248.556.155.13.357.185.56.185.21 0 .41-.064.558-.2zm-.559 3.1c.504 0 .924-.4.924-.904 0-.512-.423-.9-.924-.9a.908.908 0 00-.92.9c0 .504.42.904.92.904z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleQuestionmark);\n","import * as React from 'react';\nfunction IconCircleTick(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm4.403 3.867a.75.75 0 01.282.938l-.052.098-5.091 8a.75.75 0 01-1.145.145l-.074-.08-2.909-3.636a.75.75 0 011.096-1.018l.076.081 2.253 2.817 4.528-7.115a.75.75 0 011.036-.23z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleTick);\n","import * as React from 'react';\nfunction IconCircleWarning(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zm0 3.75a.97.97 0 00-.974.989L11.2 12.5c.01.417.352.749.771.749a.768.768 0 00.77-.74l.23-4.26a.97.97 0 00-.97-1zm0 9.5a1 1 0 100-2 1 1 0 000 2z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCircleWarning);\n","import * as React from 'react';\nfunction IconClampOpen(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.03 12.97a.75.75 0 01.073.976l-.073.084-5.72 5.72H8.5a.75.75 0 01.743.648l.007.102a.75.75 0 01-.648.743l-.102.007-5.051-.002-.12-.018-.068-.019-.06-.023-.07-.035-.082-.054-.08-.07a.749.749 0 01-.096-.118l-.05-.09-.04-.103a.737.737 0 01-.026-.116L2.75 20.5v-5a.75.75 0 011.493-.102l.007.102-.001 3.189 5.72-5.72a.75.75 0 011.061 0zm4.368-10.213l.102-.007h5l.07.003.101.017.068.019.06.023.07.035.082.054.08.07a.749.749 0 01.096.118l.05.09.04.103c.012.037.02.076.026.116l.007.102v5a.75.75 0 01-1.493.102L19.75 8.5V5.31l-5.72 5.72a.75.75 0 01-1.133-.976l.073-.084 5.718-5.72H15.5a.75.75 0 01-.743-.648L14.75 3.5a.75.75 0 01.648-.743z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconClampOpen);\n","import * as React from 'react';\nfunction IconClamp(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.398 12.757l.102-.007h5l.07.003.101.017.068.019.06.023.07.035.082.054.08.07a.749.749 0 01.096.118l.05.09.04.103c.012.037.02.076.026.116l.007.102v5a.75.75 0 01-1.493.102L9.75 18.5v-3.19l-5.72 5.72a.75.75 0 01-1.133-.976l.073-.084 5.718-5.72H5.5a.75.75 0 01-.743-.648L4.75 13.5a.75.75 0 01.648-.743zM21.03 2.97a.75.75 0 01.073.976l-.073.084-5.72 5.72h3.19a.75.75 0 01.743.648l.007.102a.75.75 0 01-.648.743l-.102.007-5.051-.002-.12-.018-.068-.019-.06-.023-.07-.035-.082-.054-.08-.07a.749.749 0 01-.096-.118l-.05-.09-.04-.103a.737.737 0 01-.026-.116l-.007-.102v-5a.75.75 0 011.493-.102l.007.102v3.188l5.72-5.718a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconClamp);\n","import * as React from 'react';\nfunction IconClose(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.554 6.397a.75.75 0 011.049 1.05l-.073.083L13.061 12l4.47 4.47a.75.75 0 01-.977 1.133l-.084-.073L12 13.061l-4.47 4.47-.084.072a.75.75 0 01-1.049-1.05l.073-.083L10.939 12l-4.47-4.47a.75.75 0 01.977-1.133l.084.073L12 10.939l4.47-4.47.084-.072z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconClose);\n","import * as React from 'react';\nfunction IconColumnFreeze(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14 4.5h-4v15h4v-15zm1.5 0v15h3.75a.25.25 0 00.25-.25V4.75a.25.25 0 00-.25-.25H15.5zM4.75 3A1.75 1.75 0 003 4.75v14.5c0 .966.784 1.75 1.75 1.75h14.5A1.75 1.75 0 0021 19.25V4.75A1.75 1.75 0 0019.25 3H4.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconColumnFreeze);\n","import * as React from 'react';\nfunction IconColumnUnfreeze(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.6 4.5H14v15h-2.378a2.26 2.26 0 010 1.5h7.628A1.75 1.75 0 0021 19.25V4.75A1.75 1.75 0 0019.25 3H4.75A1.75 1.75 0 003 4.75v6.75c.576 0 1.152.22 1.591.659l1.659 1.659 1.659-1.659a2.244 2.244 0 011.691-.657V4.5zm5.9 15v-15h3.75a.25.25 0 01.25.25v14.5a.25.25 0 01-.25.25H15.5zM2.47 20.78a.75.75 0 010-1.06L5.19 17l-2.72-2.72a.75.75 0 111.06-1.06l2.72 2.72 2.72-2.72a.75.75 0 111.06 1.06L7.31 17l2.72 2.72a.75.75 0 11-1.06 1.06l-2.72-2.72-2.72 2.72a.75.75 0 01-1.06 0z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconColumnUnfreeze);\n","import * as React from 'react';\nfunction IconColumns(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14 4.5h-4v15h4v-15zm1.5 0v15h3.75a.25.25 0 00.25-.25V4.75a.25.25 0 00-.25-.25H15.5zm-10.75 0H8.5v15H4.75a.25.25 0 01-.25-.25V4.75a.25.25 0 01.25-.25zm0-1.5A1.75 1.75 0 003 4.75v14.5c0 .966.784 1.75 1.75 1.75h14.5A1.75 1.75 0 0021 19.25V4.75A1.75 1.75 0 0019.25 3H4.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconColumns);\n","import * as React from 'react';\nfunction IconConnectionEnable(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19 9a3 3 0 11-2.877 3.854H7.877A3.001 3.001 0 012 12a3 3 0 015.93-.647h8.14A3.001 3.001 0 0119 9zM5 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm14 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconConnectionEnable);\n","import * as React from 'react';\nfunction IconConnectionRevoke(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.66 4.174a.75.75 0 01.32.933l-.045.091-8.298 14.373a.75.75 0 01-1.344-.659l.045-.091 8.298-14.373a.75.75 0 011.025-.274zM5 9a3.001 3.001 0 012.935 2.374.685.685 0 01.169-.02h1.814l-.866 1.5h-.948a.75.75 0 01-.22-.033A2.998 2.998 0 012 12a3 3 0 013-3zm14 0a3 3 0 11-2.877 3.854h-1.875l.866-1.5.956-.001A3.001 3.001 0 0119 9zM5 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm14 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconConnectionRevoke);\n","import * as React from 'react';\nfunction IconContacts(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.25 2c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V18h-.5a.75.75 0 110-1.5H4v-3.75h-.5a.75.75 0 110-1.5H4V8h-.5a.75.75 0 010-1.5H4V3.75C4 2.784 4.784 2 5.75 2h12.5zm0 1.5H5.75a.25.25 0 00-.243.193L5.5 3.75V6.5H6A.75.75 0 016 8h-.5v3.25H6a.75.75 0 110 1.5h-.5v3.75H6A.75.75 0 116 18h-.5v2.25a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L18.25 3.5zM11.866 12c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0114.482 18H9.25a1.75 1.75 0 01-1.724-2.05c.46-2.634 1.906-3.95 4.34-3.95zm0-5.5c1.104 0 2 1.12 2 2.5s-.896 2.5-2 2.5c-1.105 0-2-1.12-2-2.5s.895-2.5 2-2.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconContacts);\n","import * as React from 'react';\nfunction IconCopy(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6 5v1.5h-.25a.25.25 0 00-.243.193L5.5 6.75v13.5a.25.25 0 00.193.243l.057.007h9.5a.25.25 0 00.243-.193l.007-.057V20H17v.25A1.75 1.75 0 0115.25 22h-9.5A1.75 1.75 0 014 20.25V6.75C4 5.784 4.784 5 5.75 5H6zm7.586-3a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707v8.836A1.75 1.75 0 0118.25 19h-9.5A1.75 1.75 0 017 17.25V3.75C7 2.784 7.784 2 8.75 2h4.836zM13 3.5H8.75a.25.25 0 00-.243.193L8.5 3.75v13.5a.25.25 0 00.193.243l.057.007h9.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5zm1.5 1.121V7.25a.25.25 0 00.193.243l.057.007h2.629L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCopy);\n","import * as React from 'react';\nfunction IconCourses(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.441 3.441a1.25 1.25 0 01.983-.058l.135.058 9.598 4.799a.85.85 0 01.464.859l-.001 6.151a.75.75 0 11-1.5 0v-4.971L19 11.339V17.5c0 1.657-3.134 3-7 3-3.772 0-6.847-1.278-6.994-2.88L5 17.5v-6.162L1.842 9.76a.85.85 0 01-.421-1.042l.041-.098a.85.85 0 01.286-.325l.094-.055 9.598-4.799zm-4.942 8.647v5.395c.009.095.385.448 1.217.791C8.82 18.73 10.351 19 12 19c1.689 0 3.253-.284 4.359-.757.472-.203.822-.425 1.023-.629l.11-.117c.003-.003.005-.004.006-.003l.002.006v-5.411l-4.941 2.47a1.25 1.25 0 01-.983.058l-.135-.058-4.942-2.471zM12 4.838L3.677 8.999l8.322 4.162 8.323-4.162L12 4.838z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCourses);\n","import * as React from 'react';\nfunction IconCredit(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.499 15l.001 5.25a.25.25 0 00.193.243l.057.007h9.5a.25.25 0 00.243-.193l.007-.057V20H18v.25A1.75 1.75 0 0116.25 22h-9.5A1.75 1.75 0 015 20.25L4.999 15h1.5zm8.087-13a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707v8.836A1.75 1.75 0 0119.25 19h-9.5A1.75 1.75 0 018 17.25L7.999 15h1.5l.001 2.25a.25.25 0 00.193.243l.057.007h9.5a.25.25 0 00.243-.193l.007-.057L19.499 9H15.75a1.75 1.75 0 01-1.744-1.606L14 7.25l-.001-3.75H9.75a.25.25 0 00-.243.193L9.5 3.75 9.499 5h-1.5L8 3.75C8 2.784 8.784 2 9.75 2h4.836zM4.392 8.956a.5.5 0 01.55-.147l.082.038 2.143 1.237.074.052a.5.5 0 01.147.55l-.038.081-.052.074a.5.5 0 01-.55.147l-.081-.038-.878-.505a2.5 2.5 0 004 1.525.75.75 0 11.925 1.181 4.002 4.002 0 01-6.343-2.173l-.402.695-.052.074a.5.5 0 01-.852-.492l.038-.082L4.341 9.03l.051-.074zM8.25 6a4.001 4.001 0 013.92 3.197l.358-.62a.5.5 0 01.6-.221l.083.038a.5.5 0 01.22.601l-.037.082-1.238 2.143a.5.5 0 01-.6.221l-.083-.038-2.143-1.237a.5.5 0 01.418-.904l.082.038.914.528A2.5 2.5 0 006.711 8.03a.75.75 0 11-.925-1.181A3.985 3.985 0 018.25 6zm7.249-1.38l.001 2.63a.25.25 0 00.193.243l.057.007h2.629l-2.88-2.88z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconCredit);\n","import * as React from 'react';\nfunction IconDeletePermanently(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2a4.5 4.5 0 014.472 4h-1.514a3 3 0 00-5.917 0H20.25a.75.75 0 110 1.5h-.75V18a4 4 0 01-4 4h-7a4 4 0 01-4-4V7.5h-.75a.75.75 0 010-1.5h3.777A4.5 4.5 0 0112 2zm6 5.5H6V18a2.5 2.5 0 002.336 2.495l.164.005h7a2.5 2.5 0 002.495-2.336L18 18V7.5zm-3.946 3.397a.75.75 0 011.049 1.05l-.073.083L13.061 14l1.97 1.97a.75.75 0 01-.977 1.133l-.084-.073L12 15.061l-1.97 1.97-.084.072a.75.75 0 01-1.049-1.05l.073-.083L10.939 14l-1.97-1.97a.75.75 0 01.977-1.133l.084.073L12 12.939l1.97-1.97.084-.072z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDeletePermanently);\n","import * as React from 'react';\nfunction IconDelete(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2a4.5 4.5 0 014.472 4h3.778a.75.75 0 110 1.5h-.75V18a4 4 0 01-4 4h-7a4 4 0 01-4-4V7.5h-.75a.75.75 0 010-1.5h3.777A4.5 4.5 0 0112 2zm6 5.5H6V18a2.5 2.5 0 002.336 2.495l.164.005h7a2.5 2.5 0 002.495-2.336L18 18V7.5zm-8.25 2a.75.75 0 01.75.75v7.5a.75.75 0 11-1.5 0v-7.5a.75.75 0 01.75-.75zm4.5 0a.75.75 0 01.75.75v7.5a.75.75 0 11-1.5 0v-7.5a.75.75 0 01.75-.75zM12 3.5A3 3 0 009.041 6h5.917A3 3 0 0012 3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDelete);\n","import * as React from 'react';\nfunction IconDepecriate(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.25 2a.75.75 0 01.75.75V3h2.25c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H17v-1.5h2.25a.25.25 0 00.243-.193l.007-.057V8h-15v11.25a.25.25 0 00.193.243l.057.007H7V21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3H7v-.25a.75.75 0 011.5 0V3h7v-.25a.75.75 0 01.75-.75zM12 11.25a.75.75 0 01.743.648l.007.102v6.439l1.72-1.72a.75.75 0 01.976-.072l.084.073a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-.976.073l-.084-.073-3-3a.75.75 0 01.976-1.133l.084.073 1.72 1.719V12a.75.75 0 01.75-.75zM7 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75V6.5h15V4.75a.25.25 0 00-.193-.243L19.25 4.5H17v.25a.75.75 0 11-1.5 0V4.5h-7v.25a.75.75 0 01-1.5 0V4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDepecriate);\n","import * as React from 'react';\nfunction IconDeveloper(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.303 2.787a1.25 1.25 0 01.934 1.39l-.024.126-4 16a1.25 1.25 0 01-2.45-.48l.024-.126 4-16a1.25 1.25 0 011.516-.91zM7.05 5.04a1.25 1.25 0 01.242 1.65l-.082.11L2.877 12l4.333 5.2a1.25 1.25 0 01-.06 1.667l-.1.093a1.25 1.25 0 01-1.667-.06l-.093-.1-5-6a1.25 1.25 0 01-.083-1.49l.083-.11 5-6a1.25 1.25 0 011.76-.16zm9.9 0a1.25 1.25 0 011.667.06l.093.1 5 6 .083.11a1.25 1.25 0 010 1.38l-.083.11-5 6-.093.1a1.25 1.25 0 01-1.558.142l-.11-.082-.1-.093a1.25 1.25 0 01-.14-1.558l.08-.11L21.124 12 16.79 6.8l-.082-.11a1.25 1.25 0 01.242-1.65z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDeveloper);\n","import * as React from 'react';\nfunction IconDistributionTemplate(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.5 17a.5.5 0 01.5.5v4a.5.5 0 01-.5.5h-4a.5.5 0 01-.5-.5v-4a.5.5 0 01.5-.5h4zm-1 1.5h-2v2h2v-2zm-5-14.75a.75.75 0 01.102 1.493l-.102.007H13a.25.25 0 00-.243.193l-.007.057v5.75h1.75a.75.75 0 01.102 1.493l-.102.007h-1.75v5.75a.25.25 0 00.193.243l.057.007h1.5a.75.75 0 01.102 1.493l-.102.007H13a1.75 1.75 0 01-1.744-1.606l-.006-.144v-5.75H9.5a.75.75 0 01-.102-1.493l.102-.007h1.75V5.5a1.75 1.75 0 011.606-1.744L13 3.75h1.5zm6 5.75a.5.5 0 01.5.5v4a.5.5 0 01-.5.5h-4a.5.5 0 01-.5-.5v-4a.5.5 0 01.5-.5h4zm-13 0a.5.5 0 01.5.5v4a.5.5 0 01-.5.5h-4A.5.5 0 013 14v-4a.5.5 0 01.5-.5h4zm12 1.5h-2v2h2v-2zm-13 0h-2v2h2v-2zm14-9a.5.5 0 01.5.5v4a.5.5 0 01-.5.5h-4a.5.5 0 01-.5-.5v-4a.5.5 0 01.5-.5h4zm-1 1.5h-2v2h2v-2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDistributionTemplate);\n","import * as React from 'react';\nfunction IconDocumentApprove(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V14h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007H10V22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm6.194 13.72a.75.75 0 01.073.976l-.073.084-5 5a.75.75 0 01-.976.073l-.084-.073-3-3a.75.75 0 01.976-1.133l.084.073 2.47 2.469 4.47-4.47a.75.75 0 011.06 0zm-2.4-8.22L14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentApprove);\n","import * as React from 'react';\nfunction IconDocumentCreateEntry(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V13h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007H12V22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm2.164 11.5a.75.75 0 01.743.648l.007.102V17h2.75a.75.75 0 01.102 1.493l-.102.007H16.5v2.75a.75.75 0 01-1.493.102L15 21.25V18.5h-2.75a.75.75 0 01-.102-1.493L12.25 17H15v-2.75a.75.75 0 01.75-.75zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentCreateEntry);\n","import * as React from 'react';\nfunction IconDocumentCut(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11.95 11.146l2.219 3.843.868.234a2.5 2.5 0 111.826 2.042l-1.633-.438.845 1.464a2.5 2.5 0 11-2.444-1.235l-.45-.778-4.287-1.148a.75.75 0 11.388-1.45l2.839.761-1.47-2.545a.75.75 0 011.3-.75zM13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V11h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007H10V22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm-.176 16.675a1 1 0 101 1.732 1 1 0 00-1-1.732zm3.134-4.084a1 1 0 101.932.518 1 1 0 00-1.932-.518zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentCut);\n","import * as React from 'react';\nfunction IconDocumentError(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zM13 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5zm-1 12.91c.516 0 .935.333.935.849 0 .515-.42.848-.935.848-.516 0-.94-.333-.94-.848 0-.516.424-.849.94-.849zm0-5.978c.509 0 .883.352.917.807l.001.106-.15 3.62a.754.754 0 01-.768.736.757.757 0 01-.768-.632l-.01-.104-.135-3.62c-.022-.505.37-.913.913-.913zm2.5-5.811V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentError);\n","import * as React from 'react';\nfunction IconDocumentIsolatePage(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707v4.336h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h5V22h-5A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm5.664 12.25a.75.75 0 01.743.648L20 15v4.5a.75.75 0 01-1.493.102L18.5 19.5v-2.69l-4.97 4.97a.75.75 0 01-1.133-.976l.073-.084 4.968-4.97H14.75a.75.75 0 01-.743-.648L14 15a.75.75 0 01.648-.743l.102-.007h4.5zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentIsolatePage);\n","import * as React from 'react';\nfunction IconDocumentMerge(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.586 2a1 1 0 01.707.293l3.414 3.414a1 1 0 01.293.707v8.836A1.75 1.75 0 0119.25 17H15v3.25A1.75 1.75 0 0113.25 22h-8.5A1.75 1.75 0 013 20.25V8.75C3 7.784 3.784 7 4.75 7H9V3.75C9 2.784 9.784 2 10.75 2h5.836zM15.5 3.499l-4.75.001a.25.25 0 00-.243.193l-.007.057V7h1v1.5h-1V10H9V8.5H4.75a.25.25 0 00-.243.193L4.5 8.75v11.5a.25.25 0 00.193.243l.057.007h8.5a.25.25 0 00.243-.193l.007-.057V17h-1v-1.5h1V14H15v1.5h4.25a.25.25 0 00.243-.193l.007-.057V7.5h-2.25a1.75 1.75 0 01-1.744-1.606L15.5 5.75V3.499zM10.5 14v1.25a.25.25 0 00.193.243l.057.007h.75V17h-.75A1.75 1.75 0 019 15.25V14h1.5zm4.5-3v2h-1.5v-2H15zm-4.5 0v2H9v-2h1.5zm2-4h.75c.966 0 1.75.784 1.75 1.75V10h-1.5V8.75a.25.25 0 00-.193-.243L13.25 8.5h-.75V7zM17 4.12v1.63a.25.25 0 00.193.243L17.25 6h1.631L17 4.12z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentMerge);\n","import * as React from 'react';\nfunction IconDocumentMove(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V12h1.5v8.25a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5h-2V2h2.586zM4.433 7.25a.5.5 0 01-.717.661l-.07-.057-1-1-.057-.07a.5.5 0 010-.568l.057-.07 1-1 .07-.057a.5.5 0 01.568 0l.07.057.057.07a.5.5 0 01.022.535L6.25 5.75V3.933a.5.5 0 01-.534-.022l-.07-.057a.5.5 0 01-.057-.638l.057-.07 1-1 .07-.057a.5.5 0 01.568 0l.07.057 1 1 .057.07a.5.5 0 010 .568l-.057.07-.07.057a.5.5 0 01-.534.022V5.75h1.817a.5.5 0 01.022-.534l.057-.07a.5.5 0 01.638-.057l.07.057 1 1a.5.5 0 01.057.638l-.057.07-1 1a.5.5 0 01-.787-.604H7.75v1.817a.5.5 0 01.534.022l.07.057a.5.5 0 01.057.638l-.057.07-1 1a.5.5 0 01-.638.057l-.07-.057-1-1a.5.5 0 01.605-.787L6.25 7.25H4.433zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentMove);\n","import * as React from 'react';\nfunction IconDocumentPreview(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V12h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007H10V22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm.164 10.75a3 3 0 100 6 3 3 0 000-6zm.75-8.129V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621zm-.75 15.629a4.5 4.5 0 113.632-1.842l.036-.05 2.362 2.362a.75.75 0 01-.976 1.133l-.084-.073-2.363-2.362-.112.077a4.479 4.479 0 01-2.495.755z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentPreview);\n","import * as React from 'react';\nfunction IconDocumentReceived(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V12.5h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V17H20v3.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm-.032 9.147a.75.75 0 01.882-.007l.094.08.073.084a.75.75 0 01.007.882l-.08.094L12.811 14h6.439l.102.007a.75.75 0 010 1.486l-.102.007h-6.439l1.72 1.72.072.084a.75.75 0 01-1.05 1.049l-.083-.073-3-3-.073-.084a.75.75 0 01-.007-.882l.08-.094 3-3 .084-.073zm.946-6.526V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentReceived);\n","import * as React from 'react';\nfunction IconDocumentRejectedRequest(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V14h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007H12V22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm5.218 13.647a.75.75 0 011.049 1.05l-.073.083-1.969 1.97 1.97 1.97a.75.75 0 01-.977 1.133l-.084-.073-1.97-1.969-1.97 1.97-.084.072a.75.75 0 01-1.049-1.05l.073-.083 1.969-1.97-1.97-1.97a.75.75 0 01.977-1.133l.084.073 1.97 1.969 1.97-1.97.084-.072zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentRejectedRequest);\n","import * as React from 'react';\nfunction IconDocumentSignedSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13 2v5.25l.006.144a1.75 1.75 0 001.593 1.6L14.75 9H20v11.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2H13zm-3 7.75c-1.572 0-2.858 1.745-3.337 3.877l-.048.23-.039.217c-.138.832-.124 1.608.046 2.26l.07.238.055.148-.191.101c-.33.166-.672.305-1.025.413a.75.75 0 00.339 1.457l.1-.023.281-.092c.35-.122.691-.268 1.02-.435l.325-.174.098-.059.02.014c.302.18.66.293 1.074.32L9 18.25l.255-.004c1.076-.038 1.983-.315 2.706-.82l.193-.145.124-.104.014.052c.044.14.098.262.164.369l.069.102.086.107c.579.665 1.275.432 2.018-.32l.117-.122.102-.115.021.104c.043.2.09.356.163.512.209.456.598.755 1.132.708.582-.052 1.196-.55 2.042-1.612l.162-.206.32-.425.17-.23a.75.75 0 00-1.144-.965l-.071.085-.293.396-.28.362-.251.308-.22.256-.187.205-.11.112-.082-.493-.042-.199-.024-.09c-.083-.294-.201-.52-.436-.692-.598-.437-1.122-.163-1.695.514l-.258.312-.107.118-.007-.214a12.73 12.73 0 01.094-1.533c.1-.89-1.135-1.152-1.438-.372l-.033.103-.057.203c-.397 1.321-1.216 2.03-2.562 2.195l-.217.022-.176.009.199-.19a8.876 8.876 0 001.813-2.556c1.013-2.18.695-4.247-1.274-4.247zm0 1.5c.406 0 .531.695-.005 1.934l-.081.181-.116.237a7.434 7.434 0 01-1.401 1.893l-.25.236-.105.089-.032-.177c-.06-.406-.037-.911.077-1.5C8.402 12.53 9.306 11.25 10 11.25zm4.5-4V2L20 7.5h-5.25l-.057-.007a.25.25 0 01-.184-.175L14.5 7.25z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentSignedSolid);\n","import * as React from 'react';\nfunction IconDocumentSigned(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.293 2.293A1 1 0 0013.586 2H5.75A1.75 1.75 0 004 3.75v16.5c0 .966.784 1.75 1.75 1.75h12.5A1.75 1.75 0 0020 20.25V8.414a1 1 0 00-.293-.707l-5.414-5.414zM5.75 3.5H13v3.75l.006.144A1.75 1.75 0 0014.75 9h3.75v11.25l-.007.057a.25.25 0 01-.243.193H5.75l-.057-.007a.25.25 0 01-.193-.243V3.75l.007-.057A.25.25 0 015.75 3.5zm8.75 1.121V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621zm-6.693 9.425C8.183 12.37 9.194 11 10.43 11c1.547 0 1.796 1.624 1 3.337a6.972 6.972 0 01-1.424 2.009l-.156.148.138-.007.17-.017c1.058-.13 1.702-.687 2.014-1.725l.044-.16.026-.08c.239-.613 1.208-.407 1.13.292a10.03 10.03 0 00-.074 1.205l.006.168.084-.093.202-.245c.451-.532.863-.748 1.332-.404.185.135.278.313.343.543l.019.072.033.156.064.387.087-.088.147-.16.172-.202.197-.242.22-.284.23-.312.057-.067a.59.59 0 01.898.758l-.133.182-.252.334-.127.162c-.665.834-1.147 1.225-1.605 1.266-.419.037-.725-.198-.889-.556a1.83 1.83 0 01-.128-.403l-.016-.081-.08.09-.093.096c-.583.591-1.13.773-1.585.251l-.068-.084-.054-.08a1.31 1.31 0 01-.128-.29l-.011-.04-.098.082-.152.112c-.568.398-1.28.616-2.126.645l-.2.003-.167-.005a1.862 1.862 0 01-.843-.253l-.016-.01-.077.046-.256.137a6.378 6.378 0 01-.8.342l-.222.072-.078.018a.59.59 0 01-.267-1.145 5.16 5.16 0 00.806-.324l.15-.08-.043-.116-.056-.188c-.133-.511-.144-1.121-.036-1.775l.031-.17.038-.181zm2.617-.347c.422-.975.323-1.52.004-1.52-.545 0-1.255 1.006-1.502 2.273-.09.462-.108.86-.061 1.178l.025.14.082-.07.197-.186a5.84 5.84 0 001.1-1.488l.091-.185.064-.142z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentSigned);\n","import * as React from 'react';\nfunction IconDocumentSplit(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20 14v6.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V14h4v1.5H5.5v4.75a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V15.5H16V14h4zm-6 0v1.5h-4V14h4zm0-3v1.5h-4V11h4zm.5-6.379V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621zM4 3.75C4 2.784 4.784 2 5.75 2h7.836a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V12.5h-4V11h2.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75V11H8v1.5H4V3.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentSplit);\n","import * as React from 'react';\nfunction IconDocumentTime(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H16v-1.5h2.25a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75V10H4V3.75C4 2.784 4.784 2 5.75 2h7.836zM10 10a6 6 0 110 12 6 6 0 010-12zm0 1.5a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 .75a.75.75 0 01.743.648l.007.102v3a.75.75 0 01-.648.743L10 16.75H8a.75.75 0 01-.102-1.493L8 15.25l1.25-.001V13a.75.75 0 01.648-.743L10 12.25zm4.5-7.629V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocumentTime);\n","import * as React from 'react';\nfunction IconDocument(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zM13 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5zm2.5 12.25a.75.75 0 01.102 1.493l-.102.007h-7a.75.75 0 01-.102-1.493l.102-.007h7zm0-4a.75.75 0 01.102 1.493l-.102.007h-7a.75.75 0 01-.102-1.493l.102-.007h7zm-1-7.129V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDocument);\n","import * as React from 'react';\nfunction IconDownload(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 16.25a.75.75 0 01.743.648L21 17v1.25a3.75 3.75 0 01-3.55 3.745l-.2.005H6.75a3.75 3.75 0 01-3.745-3.55L3 18.25V17a.75.75 0 011.493-.102L4.5 17v1.25a2.25 2.25 0 002.096 2.245l.154.005h10.5a2.25 2.25 0 002.245-2.096l.005-.154V17a.75.75 0 01.75-.75zm-3.5.75a.75.75 0 110 1.5h-9.5a.75.75 0 110-1.5h9.5zM12 2a.75.75 0 01.743.648l.007.102v9.189l2.22-2.22a.75.75 0 011.133.977l-.073.084-3.5 3.5a.754.754 0 01-.078.069l.078-.069-.042.04-.052.04-.114.068-.098.038-.084.02-.088.012L12 14.5l-.052-.002-.119-.018-.098-.03-.1-.047-.082-.054-.08-.069-3.5-3.5a.75.75 0 01.977-1.133l.084.073 2.22 2.219V2.75A.75.75 0 0112 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDownload);\n","import * as React from 'react';\nfunction IconDrag(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M9.5 15.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-5-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-5-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconDrag);\n","import * as React from 'react';\nfunction IconECopedia(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17 4c1.583 0 3.165.45 4.748 1.352a.5.5 0 01.252.435V18.65a.5.5 0 01-.728.445C19.848 18.365 18.424 18 17 18c-1.667 0-3.333.5-5 1.5-1.667-1-3.333-1.5-5-1.5-1.424 0-2.848.365-4.272 1.095A.5.5 0 012 18.65V5.787a.5.5 0 01.252-.435C3.835 4.451 5.417 4 7 4c1.667 0 3.333.5 5 1.5 1.667-1 3.333-1.5 5-1.5zM7 13.5c-1.227 0-2.289.177-3.186.536a.5.5 0 10.372.928c.77-.308 1.707-.464 2.814-.464s2.044.156 2.814.464a.5.5 0 10.372-.928C9.289 13.677 8.226 13.5 7 13.5zm10 0c-1.227 0-2.289.177-3.186.536a.5.5 0 10.372.928c.77-.308 1.707-.464 2.814-.464s2.044.156 2.814.464a.5.5 0 10.372-.928c-.897-.359-1.96-.536-3.186-.536zm-10-3c-1.227 0-2.289.177-3.186.536a.5.5 0 10.372.928c.77-.308 1.707-.464 2.814-.464s2.044.156 2.814.464a.5.5 0 10.372-.928C9.289 10.677 8.226 10.5 7 10.5zm10 0c-1.227 0-2.289.177-3.186.536a.5.5 0 10.372.928c.77-.308 1.707-.464 2.814-.464s2.044.156 2.814.464a.5.5 0 10.372-.928c-.897-.359-1.96-.536-3.186-.536zm-10-3c-1.227 0-2.289.177-3.186.536a.5.5 0 00.372.928C4.956 8.656 5.893 8.5 7 8.5s2.044.156 2.814.464a.5.5 0 10.372-.928C9.289 7.677 8.226 7.5 7 7.5zm10 0c-1.227 0-2.289.177-3.186.536a.5.5 0 00.372.928c.77-.308 1.707-.464 2.814-.464s2.044.156 2.814.464a.5.5 0 10.372-.928C19.289 7.677 18.226 7.5 17 7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconECopedia);\n","import * as React from 'react';\nfunction IconEditSimple(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.013 4.513a1.75 1.75 0 012.35-.114l.124.114 1.586 1.585a1.75 1.75 0 01.114 2.35l-.114.125L8.061 20.586H4v-4.06L16.013 4.512zm-1.514 3.633l-8.999 9v1.94h1.938l9-9.001-1.939-1.939zm2.928-2.573a.25.25 0 00-.3-.04l-.054.04-1.513 1.512 1.939 1.939 1.514-1.511a.25.25 0 00.065-.24l-.025-.06-.04-.054-1.586-1.586z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEditSimple);\n","import * as React from 'react';\nfunction IconEdit(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 20.5a.75.75 0 110 1.5H3.75a.75.75 0 110-1.5h16.5zM16.013 2.927a1.75 1.75 0 012.35-.114l.124.114 1.586 1.586a1.75 1.75 0 01.114 2.35l-.114.124L8.061 19H4v-4.06L16.013 2.926zM14.499 6.56l-8.999 9v1.94h1.938l9-9-1.939-1.94zm2.928-2.573a.25.25 0 00-.3-.04l-.054.04L15.56 5.5l1.939 1.94 1.514-1.512a.25.25 0 00.065-.24l-.025-.06-.04-.054-1.586-1.586z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEdit);\n","import * as React from 'react';\nfunction IconEllipsisHorizontal(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 10.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm10 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEllipsisHorizontal);\n","import * as React from 'react';\nfunction IconEllipsisVertical(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 15.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm0-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm0-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEllipsisVertical);\n","import * as React from 'react';\nfunction IconEntriesOnAccount(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm.25 3h-15v13.25a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V6zm-2.25 9.5a.75.75 0 110 1.5H6.75a.75.75 0 110-1.5h10.5zm0-3.5a.75.75 0 110 1.5H6.75a.75.75 0 110-1.5h10.5zm0-3.5a.75.75 0 110 1.5H6.75a.75.75 0 010-1.5h10.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntriesOnAccount);\n","import * as React from 'react';\nfunction IconEntriesOpen(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm.25 3h-15v13.25a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V6zm-7.25 2a.5.5 0 01.5.5v9a.5.5 0 01-.5.5h-.5a.5.5 0 01-.5-.5v-9a.5.5 0 01.5-.5h.5zm-3.5 7.5a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2zm0-3.5a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2zm0-3.5a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h2zm8.5 0a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntriesOpen);\n","import * as React from 'react';\nfunction IconEntriesWarning(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.75 12.5a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm.5-9.5c.966 0 1.75.784 1.75 1.75l.001 6.687a5.96 5.96 0 00-1.5-.39L19.5 6h-15v13.25a.25.25 0 00.193.243l.057.007h8.544a5.99 5.99 0 00.985 1.5H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm-.5 16a.75.75 0 100 1.5.75.75 0 000-1.5zm0-5.5a.75.75 0 00-.743.648L18 14.25v3.5a.75.75 0 001.493.102l.007-.102v-3.5a.75.75 0 00-.75-.75zM12.25 8a.5.5 0 01.5.5v9a.5.5 0 01-.5.5h-.5a.5.5 0 01-.5-.5v-9a.5.5 0 01.5-.5h.5zm-3.5 7.5a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2zm0-3.5a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2zm0-3.5a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h2zm8.5 0a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntriesWarning);\n","import * as React from 'react';\nfunction IconEntryTypeCustomerInvoice(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.5 16c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0110.116 22H4.884a1.75 1.75 0 01-1.724-2.05C3.62 17.315 5.066 16 7.5 16zm.25-12.5a.25.25 0 00-.243.193L7.5 3.75V9.5c-.54 0-1.053.164-1.5.464V3.75C6 2.784 6.784 2 7.75 2h7.525c.464 0 .91.184 1.238.513l3.974 3.974c.329.329.513.774.513 1.238V18.25A1.75 1.75 0 0119.25 20h-6.038l-.01-.063a11.184 11.184 0 00-.369-1.437h6.417a.25.25 0 00.243-.193l.007-.057v-10h-3a1.75 1.75 0 01-1.744-1.606L14.75 6.5v-3h-7zm-.25 7c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zm9.75 3a.75.75 0 110 1.5h-5.5a.75.75 0 110-1.5h5.5zm0-3a.75.75 0 110 1.5h-6a.75.75 0 110-1.5h6zm1.378-3.75L16.25 4.371V6.5a.25.25 0 00.193.243l.057.007h2.128z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeCustomerInvoice);\n","import * as React from 'react';\nfunction IconEntryTypeCustomerPayment(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.5 16c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0110.116 22H4.884a1.75 1.75 0 01-1.724-2.05C3.62 17.315 5.066 16 7.5 16zm14.263-3.75c.155.24.237.491.237.75 0 1.272-1.978 2.358-4.77 2.795l-.516.072c-.7.087-1.443.133-2.214.133-1.25 0-2.43-.122-3.466-.339a4.583 4.583 0 00-1.063-.672c.175-.294.313-.626.404-.984.945.25 2.042.417 3.225.474l.612.019.288.002.453-.006c3.293-.078 6.014-1.006 6.81-2.243zM7.5 10.5c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zm14.263-1.75c.155.24.237.491.237.75 0 1.272-1.978 2.358-4.77 2.795l-.516.072c-.7.087-1.443.133-2.214.133-1.524 0-2.941-.182-4.125-.494a3.637 3.637 0 00-.68-1.398 3.187 3.187 0 00-.47-.478c1.163.463 2.705.773 4.423.85l.564.018.288.002.453-.006c3.293-.078 6.014-1.006 6.81-2.243zM14.5 3c.77 0 1.514.046 2.214.133l.516.072C20.022 3.642 22 4.728 22 6s-1.978 2.358-4.77 2.795l-.516.072c-.7.087-1.443.133-2.214.133-.77 0-1.514-.046-2.214-.133l-.516-.072C8.978 8.358 7 7.272 7 6s1.978-2.358 4.77-2.795l.516-.072A18.02 18.02 0 0114.5 3zm0 1.5c-1.835 0-3.538.288-4.746.771-.456.183-.81.381-1.042.57L8.538 6l.082.078c.225.212.613.442 1.134.65 1.208.484 2.91.772 4.746.772 1.835 0 3.538-.288 4.746-.771.456-.183.81-.381 1.042-.57L20.461 6l-.081-.078c-.225-.212-.613-.442-1.134-.65-1.208-.484-2.91-.772-4.746-.772z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeCustomerPayment);\n","import * as React from 'react';\nfunction IconEntryTypeJournalEntry(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.275 17.75c.702.931 2.675 1.627 5.072 1.735l.378.012.275.003.356-.005c2.53-.061 4.638-.776 5.37-1.745.178.236.274.489.274.75 0 1.38-2.686 2.5-6 2.5s-6-1.12-6-2.5c0-.261.096-.514.275-.75zM14.25 3c.966 0 1.75.784 1.75 1.75V9c-.516 0-1.018.026-1.5.074V5.5h-11v10.75a.25.25 0 00.193.243l.057.007H9V18H3.75A1.75 1.75 0 012 16.25V4.75C2 3.784 2.784 3 3.75 3h10.5zm-3.975 11.75c.702.931 2.675 1.627 5.072 1.735l.378.012.275.003.356-.005c2.53-.061 4.638-.776 5.37-1.745.178.236.274.489.274.75 0 1.38-2.686 2.5-6 2.5s-6-1.12-6-2.5c0-.261.096-.514.275-.75zM16 10c3.314 0 6 1.12 6 2.5S19.314 15 16 15s-6-1.12-6-2.5 2.686-2.5 6-2.5zm-8.25 3a.75.75 0 110 1.5h-1.5a.75.75 0 110-1.5h1.5zM16 11.5c-1.425 0-2.742.232-3.666.617a3.354 3.354 0 00-.65.347l-.048.036.048.036c.126.091.292.186.493.278l.157.07c.924.384 2.24.616 3.666.616 1.425 0 2.742-.232 3.666-.617.273-.114.492-.233.65-.347l.047-.037-.047-.035a3.044 3.044 0 00-.493-.278l-.157-.07c-.924-.384-2.24-.616-3.666-.616zM8.25 10a.75.75 0 110 1.5h-2a.75.75 0 110-1.5h2zm3.5-3a.75.75 0 110 1.5h-5.5a.75.75 0 010-1.5h5.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeJournalEntry);\n","import * as React from 'react';\nfunction IconEntryTypeManualCustomerInvoice(\n props: React.SVGProps<SVGSVGElement>,\n svgRef?: React.Ref<SVGSVGElement>\n): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.371 18.835l1.564 1.565a.998.998 0 010 1.414l-.392.393a.996.996 0 01-1.414 0l-1.565-1.565 1.807-1.807zM7.5 16c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0110.116 22H4.884a1.75 1.75 0 01-1.724-2.05C3.62 17.315 5.066 16 7.5 16zm7.5 2.5l1.498 1.5h-3.286l-.01-.063a11.184 11.184 0 00-.369-1.437H15zm.453-4.586l4.212 4.213-1.808 1.808-4.21-4.213-.005-1.762 1.811-.046zM15.275 2c.464 0 .91.184 1.238.513l3.974 3.974c.329.329.513.774.513 1.238v10.334l-1.5-1.501V8.25h-3a1.75 1.75 0 01-1.744-1.606L14.75 6.5v-3h-7a.25.25 0 00-.243.193L7.5 3.75V9.5c-.54 0-1.053.164-1.5.464V3.75C6 2.784 6.784 2 7.75 2h7.525zM7.5 10.5c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zm7.25 1a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zm1.5-7.129V6.5a.25.25 0 00.193.243l.057.007h2.128L16.25 4.371z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeManualCustomerInvoice);\n","import * as React from 'react';\nfunction IconEntryTypeSupplierInvoice(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.5 8l3 3v8.25A1.75 1.75 0 0120.75 21h-7.5a1.75 1.75 0 01-1.75-1.75v-9.5c0-.966.784-1.75 1.75-1.75h6.25zm-1 1.5h-5.25a.25.25 0 00-.243.193L13 9.75v9.5a.25.25 0 00.193.243l.057.007h7.5a.25.25 0 00.243-.193L21 19.25V12h-2.5V9.5zm.25 7a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zM6.25 14a1.5 1.5 0 110 3 1.5 1.5 0 010-3zM18 3a1.75 1.75 0 011.744 1.606l.006.144V7h-6.27a3.11 3.11 0 00-1.955.675l-.152.13a2.654 2.654 0 00-.866 1.757l-.007.188v5.5H8.738a2.5 2.5 0 00-2.324-2.245L6.25 13a2.5 2.5 0 00-2.488 2.25H2.25l-.102-.007a.75.75 0 01-.641-.641L1.5 14.5V9.929l.008-.108a.75.75 0 01.112-.3l.066-.086 3-3.429.076-.075a.75.75 0 01.381-.173l.107-.008h2.5v-1a1.75 1.75 0 011.606-1.744L9.5 3H18zm.75 10.5a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zM7 7.25H5.59L4 9.068V10h3V7.25z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeSupplierInvoice);\n","import * as React from 'react';\nfunction IconEntryTypeSupplierPayment(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.775 17.75c.702.931 2.675 1.627 5.072 1.735l.378.012.275.003.356-.005c2.53-.061 4.638-.776 5.37-1.745.178.236.274.489.274.75 0 1.38-2.686 2.5-6 2.5s-6-1.12-6-2.5c0-.261.096-.514.275-.75zm0-3c.702.931 2.675 1.627 5.072 1.735l.378.012.275.003.356-.005c2.53-.061 4.638-.776 5.37-1.745.178.236.274.489.274.75 0 1.38-2.686 2.5-6 2.5s-6-1.12-6-2.5c0-.261.096-.514.275-.75zM6.25 14a1.5 1.5 0 110 3 1.5 1.5 0 010-3zM18 3a1.75 1.75 0 011.744 1.606l.006.144.001 4.617A13.959 13.959 0 0016.5 9c-1.809 0-3.443.316-4.627.81-.695.289-1.247.646-1.628 1.029-.458.46-.695.97-.738 1.488L9.5 12.5v2.75h-.762a2.5 2.5 0 00-2.324-2.245L6.25 13a2.5 2.5 0 00-2.488 2.25H2.25l-.102-.007a.75.75 0 01-.641-.641L1.5 14.5V9.929l.008-.108a.75.75 0 01.112-.3l.066-.086 3-3.429.076-.075a.75.75 0 01.381-.173l.107-.008h2.5v-1a1.75 1.75 0 011.606-1.744L9.5 3H18zm-1.5 7c3.314 0 6 1.12 6 2.5s-2.686 2.5-6 2.5-6-1.12-6-2.5 2.686-2.5 6-2.5zm0 1.5c-1.425 0-2.742.232-3.666.617a3.354 3.354 0 00-.65.347l-.048.036.048.036c.126.091.292.186.493.278l.157.07c.924.384 2.24.616 3.666.616 1.425 0 2.742-.232 3.666-.617.273-.114.492-.233.65-.347l.047-.037-.047-.035a3.044 3.044 0 00-.493-.278l-.157-.07c-.924-.384-2.24-.616-3.666-.616zM7 7.25H5.59L4 9.068V10h3V7.25z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEntryTypeSupplierPayment);\n","import * as React from 'react';\nfunction IconEnvelopeApproved(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 4c.966 0 1.75.784 1.75 1.75v6.14l-1.5-.001v-5.55l-8.04 6.253a.75.75 0 01-.826.062l-.094-.062L3.5 6.339V18.25a.25.25 0 00.193.243l.057.007H12V20H3.75A1.75 1.75 0 012 18.25V5.75C2 4.784 2.784 4 3.75 4h16.5zm1.53 9.72a.75.75 0 01.073.976l-.073.084-5 5a.75.75 0 01-.976.073l-.084-.073-3-3a.75.75 0 01.976-1.133l.084.073 2.47 2.469 4.47-4.47a.75.75 0 011.06 0zM19.134 5.5H4.865L12 11.049 19.134 5.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEnvelopeApproved);\n","import * as React from 'react';\nfunction IconEnvelopeSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.137 5.07l8.77 7.016a1.75 1.75 0 002.186 0l8.77-7.016c.088.209.137.439.137.68v12.5A1.75 1.75 0 0120.25 20H3.75A1.75 1.75 0 012 18.25V5.75c0-.241.049-.471.137-.68zM3.28 4.064c.15-.042.307-.064.47-.064h16.5c.163 0 .32.022.47.064l-8.564 6.85a.25.25 0 01-.312 0L3.28 4.064z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEnvelopeSolid);\n","import * as React from 'react';\nfunction IconEnvelope(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 4c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0120.25 20H3.75A1.75 1.75 0 012 18.25V5.75C2 4.784 2.784 4 3.75 4h16.5zm.25 2.339l-8.04 6.253a.75.75 0 01-.826.062l-.094-.062L3.5 6.339V18.25a.25.25 0 00.193.243l.057.007h16.5a.25.25 0 00.243-.193l.007-.057V6.339zM19.134 5.5H4.865L12 11.049 19.134 5.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEnvelope);\n","import * as React from 'react';\nfunction IconExpandView(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H13.5v-1.5h5.75a.25.25 0 00.243-.193l.007-.057V4.75a.25.25 0 00-.193-.243L19.25 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75v5.75H3V4.75C3 3.784 3.784 3 4.75 3h14.5zm-9 9c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0110.25 21h-5.5A1.75 1.75 0 013 19.25v-5.5c0-.966.784-1.75 1.75-1.75h5.5zm0 1.5h-5.5a.25.25 0 00-.243.193l-.007.057v5.5a.25.25 0 00.193.243l.057.007h5.5a.25.25 0 00.243-.193l.007-.057v-5.5a.25.25 0 00-.193-.243l-.057-.007zm7.25-7.75a.75.75 0 01.743.648l.007.102V10a.75.75 0 01-1.493.102L16.75 10V8.31l-3.22 3.22a.75.75 0 01-1.133-.976l.073-.084 3.218-3.22H14a.75.75 0 01-.743-.648L13.25 6.5a.75.75 0 01.648-.743L14 5.75h3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconExpandView);\n","import * as React from 'react';\nfunction IconExpenses(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.25 2a1.75 1.75 0 011.744 1.606L20 3.75v16a.75.75 0 01-.177.484l-.074.076-1.813 1.613a.75.75 0 01-.908.068l-.089-.068-1.314-1.17-1.314 1.17a.75.75 0 01-.811.121l-.097-.053-.089-.068L12 20.753l-1.314 1.17a.75.75 0 01-.811.121l-.097-.053-.089-.068-1.314-1.17-1.314 1.17a.75.75 0 01-.811.121l-.097-.053-.089-.068-1.813-1.613a.75.75 0 01-.243-.454L4 19.75v-16a1.75 1.75 0 011.606-1.744L5.75 2h12.5zm0 1.5H5.75a.25.25 0 00-.243.193L5.5 3.75v15.662l1.063.946 1.313-1.168a.75.75 0 01.812-.122l.096.053.09.069 1.314 1.168 1.313-1.168a.75.75 0 01.812-.122l.096.053.09.069 1.314 1.168 1.313-1.168a.75.75 0 01.812-.122l.096.053.09.069 1.314 1.168 1.062-.945V3.75a.25.25 0 00-.13-.22l-.063-.023-.057-.007zm-2.5 9.5a.75.75 0 110 1.5h-7.5a.75.75 0 110-1.5h7.5zm-3-3.5a.75.75 0 110 1.5h-4.5a.75.75 0 110-1.5h4.5zm3-3.5a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconExpenses);\n","import * as React from 'react';\nfunction IconExportToExcel(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H12.5v-1.5h5.75a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v8.75H4V3.75C4 2.784 4.784 2 5.75 2h7.836zM4.648 14.507l.102-.007h5l.07.003.101.017.068.019.06.023.07.035.082.054.08.07a.749.749 0 01.096.118l.05.09.04.103c.012.037.02.076.026.116l.007.102v5a.75.75 0 01-1.493.102L9 20.25v-3.19l-4.72 4.72a.75.75 0 01-1.133-.976l.073-.084L7.938 16H4.75a.75.75 0 01-.743-.648L4 15.25a.75.75 0 01.648-.743zM16.5 16.5v2h-4v-2h4zm0-3v2h-4v-2h4zm-5-3v2h-4v-2h4zm5 0v2h-4v-2h4zm-2-5.879V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconExportToExcel);\n","import * as React from 'react';\nfunction IconExportToPdf(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H12.5v-1.5h5.75a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v8.75H4V3.75C4 2.784 4.784 2 5.75 2h7.836zM4.648 14.507l.102-.007h5l.07.003.101.017.068.019.06.023.07.035.082.054.08.07a.749.749 0 01.096.118l.05.09.04.103c.012.037.02.076.026.116l.007.102v5a.75.75 0 01-1.493.102L9 20.25v-3.19l-4.72 4.72a.75.75 0 01-1.133-.976l.073-.084L7.938 16H4.75a.75.75 0 01-.743-.648L4 15.25a.75.75 0 01.648-.743zM14.5 4.62v2.63a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconExportToPdf);\n","import * as React from 'react';\nfunction IconExport(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M8.5 7.999V9.5H5.75a.25.25 0 00-.243.193L5.5 9.75v10.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9.75a.25.25 0 00-.193-.243L18.25 9.5H15.5V7.999L18.25 8c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V9.75C4 8.784 4.784 8 5.75 8l2.75-.001zM11.992 2l.1.006.076.013.08.023.107.047.091.058.084.073 3 3a.75.75 0 01-.976 1.133l-.084-.073-1.72-1.719V15.25a.75.75 0 01-1.493.102l-.007-.102V4.561l-1.72 1.72a.75.75 0 01-1.133-.977l.073-.084 3-3a.753.753 0 01.125-.101l.088-.049.119-.043.106-.021A.754.754 0 0111.992 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconExport);\n","import * as React from 'react';\nfunction IconEyeOff(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.53 2.47a.75.75 0 00-1.06 1.06l3.605 3.605a10.258 10.258 0 00-4.097 6.208.75.75 0 101.466.314 8.757 8.757 0 013.71-5.443l1.987 1.988a4 4 0 005.656 5.656l5.673 5.672a.75.75 0 101.06-1.06l-18-18zm10.207 12.328l-3.535-3.535a2.5 2.5 0 003.535 3.535zM12.061 9L16 12.94A4 4 0 0012.06 9zM8.815 5.754l1.218 1.218a8.753 8.753 0 0110.523 6.685.75.75 0 101.467-.314C21.032 8.718 16.922 5.25 12 5.25c-1.112 0-2.182.177-3.185.504z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEyeOff);\n","import * as React from 'react';\nfunction IconEyeOn(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.444 13.657a8.753 8.753 0 0117.112 0 .75.75 0 101.466-.314C21.033 8.718 16.922 5.25 12 5.25c-4.922 0-9.031 3.468-10.022 8.093a.75.75 0 101.466.314zM14.5 13a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.5 0a4 4 0 11-8 0 4 4 0 018 0z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconEyeOn);\n","import * as React from 'react';\nfunction IconFilterSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 2a.75.75 0 01.75.75v2a.75.75 0 01-.15.45l-5.7 7.6a.75.75 0 00-.15.45v6.725a.75.75 0 01-.494.705l-4 1.454A.75.75 0 019.5 21.43v-8.163a.75.75 0 00-.168-.473L3.168 5.207A.75.75 0 013 4.734V2.75A.75.75 0 013.75 2h16.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconFilterSolid);\n","import * as React from 'react';\nfunction IconFilter(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 2a.75.75 0 01.75.75v2a.75.75 0 01-.15.45l-5.7 7.6a.75.75 0 00-.15.45v6.725a.75.75 0 01-.494.705l-4 1.454A.75.75 0 019.5 21.43v-8.163a.75.75 0 00-.168-.473L3.168 5.207A.75.75 0 013 4.734V2.75A.75.75 0 013.75 2h16.5zm-.75 1.5h-15v.967l5.996 7.38c.285.351.457.779.496 1.226l.008.193v7.092l2.5-.91V13.25c0-.426.12-.842.347-1.2l.103-.15 5.55-7.401V3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconFilter);\n","import * as React from 'react';\nfunction IconFontSize(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.75 3.75A.75.75 0 019.5 3h12a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V4.5h-4.5v15h1.25a.75.75 0 010 1.5h-4a.75.75 0 010-1.5h1.25v-15h-4.5v.75a.75.75 0 01-1.5 0v-1.5zM6.5 9.25h4a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-.75h-2.5v8.75H8.5a.75.75 0 010 1.5h-4a.75.75 0 010-1.5h1.25v-8.75h-2.5v.75a.75.75 0 01-1.5 0V10a.75.75 0 01.75-.75h4z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconFontSize);\n","import * as React from 'react';\nfunction IconGraphSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm-.925 3.324a.75.75 0 00-.95.263l-.051.088-4.124 8.591-2.924-6.09-.057-.1a.751.751 0 00-1.238 0l-.057.1-1.724 3.59-.524-1.09-.05-.09a.75.75 0 00-1.34.644l.038.095 1.2 2.5.057.1a.751.751 0 001.238 0l.057-.1L9.6 11.233l2.924 6.092.057.1a.751.751 0 001.238 0l.057-.1 4.8-10 .038-.095a.75.75 0 00-.39-.906z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconGraphSolid);\n","import * as React from 'react';\nfunction IconHash(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.158 2.017a.75.75 0 01.59.79l-.015.102-1.047 4.841H20a.75.75 0 01.102 1.493L20 9.25h-2.638l-1.189 5.5H18.5a.75.75 0 01.102 1.493l-.102.007h-2.652l-1.115 5.159a.75.75 0 01-1.48-.216l.014-.101 1.046-4.842H7.848l-1.115 5.159a.75.75 0 01-1.48-.216l.014-.101 1.046-4.842H4a.75.75 0 01-.102-1.493L4 14.75h2.637l1.189-5.5H5.5a.75.75 0 01-.102-1.493L5.5 7.75h2.651l1.116-5.158a.75.75 0 011.48.216l-.014.1L9.686 7.75h6.465l1.116-5.158a.75.75 0 01.891-.575zM14.637 14.75l1.189-5.5H9.362l-1.189 5.5h6.464z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHash);\n","import * as React from 'react';\nfunction IconHeightExtraTall(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.53 2.97a.75.75 0 00-1.06 0l-3 3a.75.75 0 001.06 1.06l1.72-1.72v13.38l-1.72-1.72a.75.75 0 10-1.06 1.06l3 3a.75.75 0 001.06 0l3-3a.75.75 0 10-1.06-1.06l-1.72 1.72V5.31l1.72 1.72a.75.75 0 101.06-1.06l-3-3zM3 19.25a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3zM2.25 12a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5H3a.75.75 0 01-.75-.75zM3 3.25a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHeightExtraTall);\n","import * as React from 'react';\nfunction IconHeightMedium(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.53 2.97a.75.75 0 00-1.06 0l-3 3a.75.75 0 001.06 1.06l1.72-1.72v13.38l-1.72-1.72a.75.75 0 10-1.06 1.06l3 3a.75.75 0 001.06 0l3-3a.75.75 0 10-1.06-1.06l-1.72 1.72V5.31l1.72 1.72a.75.75 0 101.06-1.06l-3-3zM2.25 7.5A.75.75 0 013 6.75h8.5a.75.75 0 010 1.5H3a.75.75 0 01-.75-.75zM3 11.25a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3zm0 4.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHeightMedium);\n","import * as React from 'react';\nfunction IconHeightShort(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.53 2.97a.75.75 0 00-1.06 0l-3 3a.75.75 0 001.06 1.06l1.72-1.72v13.38l-1.72-1.72a.75.75 0 10-1.06 1.06l3 3a.75.75 0 001.06 0l3-3a.75.75 0 10-1.06-1.06l-1.72 1.72V5.31l1.72 1.72a.75.75 0 101.06-1.06l-3-3zM2.25 9A.75.75 0 013 8.25h8.5a.75.75 0 010 1.5H3A.75.75 0 012.25 9zM3 11.25a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3zm0 3a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHeightShort);\n","import * as React from 'react';\nfunction IconHeightTall(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.53 2.97a.75.75 0 00-1.06 0l-3 3a.75.75 0 001.06 1.06l1.72-1.72v13.38l-1.72-1.72a.75.75 0 10-1.06 1.06l3 3a.75.75 0 001.06 0l3-3a.75.75 0 10-1.06-1.06l-1.72 1.72V5.31l1.72 1.72a.75.75 0 101.06-1.06l-3-3zM2.25 6A.75.75 0 013 5.25h8.5a.75.75 0 010 1.5H3A.75.75 0 012.25 6zM3 11.25a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3zm0 6a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5H3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHeightTall);\n","import * as React from 'react';\nfunction IconHouseSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 6l8 8v7a1 1 0 01-1 1h-5v-5a1 1 0 00-.883-.993L13 16h-2a1 1 0 00-.993.883L10 17v5H5a1 1 0 01-1-1v-7l8-8zm.613-3.79l.094.083L17 6.585V4.75a.5.5 0 01.5-.5h1a.5.5 0 01.5.5v3.835l2.707 2.708a1 1 0 01-1.32 1.497l-.094-.083L12 4.415l-8.293 8.292a1 1 0 01-1.32.083l-.094-.083a1 1 0 01-.083-1.32l.083-.094 9-9a1 1 0 011.32-.083z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHouseSolid);\n","import * as React from 'react';\nfunction IconHouse(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.116 2.823a1.25 1.25 0 011.768 0L17.25 7.19V6a.75.75 0 011.5 0v2.69l2.78 2.78a.75.75 0 01-1.06 1.06l-2.994-2.993-.013-.013L12 4.061l-8.47 8.47a.75.75 0 01-1.06-1.061l8.646-8.647zm1.768 3.25l7 7c.234.235.366.553.366.884v6.293c0 .69-.56 1.25-1.25 1.25h-4c-.69 0-1.25-.56-1.25-1.25V16.5h-3.5v3.75c0 .69-.56 1.25-1.25 1.25H5c-.69 0-1.25-.56-1.25-1.25v-6.293c0-.332.132-.65.366-.884l7-7a1.25 1.25 0 011.768 0zM12 7.311l-6.75 6.75V20h3.5v-3.75c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25V20h3.5v-5.94L12 7.31z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconHouse);\n","import * as React from 'react';\nfunction IconId(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.25 5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0120.25 19H3.75A1.75 1.75 0 012 17.25V6.75C2 5.784 2.784 5 3.75 5h16.5zm0 1.5H3.75a.25.25 0 00-.243.193L3.5 6.75v10.5a.25.25 0 00.193.243l.057.007h16.5a.25.25 0 00.243-.193l.007-.057V6.75a.25.25 0 00-.193-.243L20.25 6.5zm-9.268 7.993c-.316-1.81-1.31-2.714-2.982-2.714-1.673 0-2.667.905-2.982 2.714a1.204 1.204 0 001.184 1.41h3.595a1.204 1.204 0 001.185-1.41zM8 8c.76 0 1.374.77 1.374 1.718 0 .949-.615 1.718-1.374 1.718-.759 0-1.374-.77-1.374-1.718C6.626 8.769 7.24 8 8 8zm11 .75a.75.75 0 00-.75-.75h-6a.75.75 0 000 1.5h6a.75.75 0 00.75-.75zM18.25 14a.75.75 0 010 1.5h-4.5a.75.75 0 010-1.5h4.5zm.75-2.25a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h4.5a.75.75 0 00.75-.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconId);\n","import * as React from 'react';\nfunction IconImages(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.25 6c.966 0 1.75.784 1.75 1.75v11.5A1.75 1.75 0 0116.25 21H4.75A1.75 1.75 0 013 19.25V7.75C3 6.784 3.784 6 4.75 6h11.5zm0 1.5H4.75a.25.25 0 00-.243.193L4.5 7.75v11.5a.25.25 0 00.193.243l.057.007h11.5a.25.25 0 00.243-.193l.007-.057V7.75a.25.25 0 00-.193-.243L16.25 7.5zm-4.264 6.889l3.164 3.961h-9.5l2.375-3.164 1.605 2.148 2.356-2.945zM19.25 3a1.75 1.75 0 011.744 1.606L21 4.75v12.5a.75.75 0 01-1.493.102l-.007-.102V4.75a.25.25 0 00-.193-.243L19.25 4.5H6.75a.75.75 0 01-.102-1.493L6.75 3h12.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconImages);\n","import * as React from 'react';\nfunction IconImport(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M8.5 8v1.5H5.75a.25.25 0 00-.243.193L5.5 9.75v10.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9.75a.25.25 0 00-.193-.243L18.25 9.5H15.5V8h2.75c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V9.75C4 8.784 4.784 8 5.75 8H8.5zM12 2a.75.75 0 01.743.648l.007.102v10.689l1.72-1.72a.75.75 0 011.133.977l-.073.084-3 3a.753.753 0 01-.125.101l-.088.049-.119.043-.106.021-.041.004-.07.002-.073-.006-.076-.013-.08-.023-.1-.043a.75.75 0 01-.182-.135l-3-3a.75.75 0 01.976-1.133l.084.073 1.72 1.719V2.75A.75.75 0 0112 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconImport);\n","import * as React from 'react';\nfunction IconInboxEinvoicing(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 3.997v2H6.918l-2.8 8h3.229a1 1 0 01.916.598l.974 2.221a1 1 0 00.916.598h3.694a1 1 0 00.915-.598l.976-2.22a1 1 0 01.915-.599h3.228l-.525-1.5h2.118l.428 1.22c.065.185.098.38.098.578v3.952a1.75 1.75 0 01-1.607 1.744l-.143.006H3.75A1.75 1.75 0 012 18.247v-3.952c0-.197.033-.393.098-.578L5.09 5.169a1.75 1.75 0 011.652-1.172H12zM17.966 1c2.373 0 4.052 1.688 4.052 3.99 0 .988-.267 1.349-1.03 1.386l-.14.003h-4.72v.404c.01 1.301.836 2.136 2.216 2.136.64 0 1.114-.139 1.502-.41l.403-.307c.267-.196.425-.276.705-.276.483 0 .817.334.817.844 0 .367-.2.72-.554 1.016l-.278.216c-.63.455-1.627.727-2.745.727-2.653 0-4.32-1.515-4.416-4.023l-.005-.23V5.27c0-2.547 1.688-4.27 4.193-4.27zM18 2.763c-1.09 0-1.805.769-1.868 1.932l-.004.186h3.674v-.017c0-1.275-.703-2.101-1.802-2.101z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInboxEinvoicing);\n","import * as React from 'react';\nfunction IconInboxScanning(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.5 4v2H6.918l-2.8 8h3.229a1 1 0 01.916.598l.974 2.22a1 1 0 00.916.599h3.694a1 1 0 00.915-.598l.976-2.221a1 1 0 01.915-.598h3.228l-.525-1.5h2.118l.428 1.22c.065.185.098.38.098.577v3.953a1.75 1.75 0 01-1.607 1.744L20.25 20H3.75A1.75 1.75 0 012 18.25v-3.953c0-.197.033-.392.098-.578L5.09 5.172A1.75 1.75 0 016.742 4H13.5zM20 1l3 3v6c0 .51-.388.935-.884.993L22 11h-6.005a.998.998 0 01-.988-.884L15 10l.005-8a1 1 0 01.879-.993L16 1h4zm-1 1v3h3l-3-3z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInboxScanning);\n","import * as React from 'react';\nfunction IconInboxSmart(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 4v2H6.918l-2.8 8h3.229a1 1 0 01.916.598l.974 2.22a1 1 0 00.916.599h3.694a1 1 0 00.915-.598l.976-2.221a1 1 0 01.915-.598h3.228l-.525-1.5h2.118l.428 1.22c.065.185.098.38.098.577v3.953a1.75 1.75 0 01-1.607 1.744L20.25 20H3.75A1.75 1.75 0 012 18.25v-3.953c0-.197.033-.392.098-.578L5.09 5.172A1.75 1.75 0 016.742 4H12zm6.167-2.76a.35.35 0 01.631-.074l.036.074 1.145 3.115 3.183.179c.283.016.421.342.286.57l-.043.058-.037.036-2.476 2.104.823 3.226c.073.288-.182.527-.43.46l-.068-.025-.042-.024L18.5 9.121l-2.674 1.816c-.24.163-.535-.018-.552-.286l.003-.075.01-.049.821-3.226-2.475-2.104a.384.384 0 01.088-.637l.068-.02.05-.007 3.183-.179 1.145-3.115z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInboxSmart);\n","import * as React from 'react';\nfunction IconInbox(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.258 4c.744 0 1.407.47 1.652 1.172l2.992 8.547c.065.186.098.382.098.578v3.953a1.75 1.75 0 01-1.607 1.744L20.25 20H3.75A1.75 1.75 0 012 18.25v-3.953c0-.197.033-.392.098-.578L5.09 5.172A1.75 1.75 0 016.742 4h10.516zm-.177 2H6.918l-2.8 8h3.229a1 1 0 01.916.598l.974 2.22a1 1 0 00.916.599h3.694a1 1 0 00.915-.598l.976-2.221a1 1 0 01.915-.598h3.228l-2.8-8z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInbox);\n","import * as React from 'react';\nfunction IconInfo(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M14.75 18.249A.75.75 0 0114 19h-4a.75.75 0 010-1.503h1.233V11H10a.75.75 0 010-1.503h1.983a.75.75 0 01.75.752v7.248H14a.75.75 0 01.75.752z\"\n fill=\"currentColor\"\n />\n <path d=\"M12.733 6.002a1 1 0 11-2.001.001 1 1 0 012.001-.001z\" fill=\"currentColor\" />\n </svg>\n );\n}\nexport default React.forwardRef(IconInfo);\n","import * as React from 'react';\nfunction IconInventoryMatrix(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm-8 12.25H4.5v4a.25.25 0 00.193.243l.057.007h6.5v-4.25zm8.25-5h-6.75v9.25h6.5a.25.25 0 00.243-.193l.007-.057v-9zm-2.996 2.383c.419 0 .71.26.755.67l.007.115v3.945c0 .442-.23.688-.637.688-.373 0-.597-.207-.635-.573l-.006-.115v-3.511h-.015l-.41.277c-.204.129-.313.168-.442.168a.431.431 0 01-.445-.445c0-.165.086-.314.256-.445l.091-.063.637-.426c.305-.195.582-.285.844-.285zM11.25 4.5h-6.5a.25.25 0 00-.243.193L4.5 4.75v9h6.75V4.5zM7.883 6.57c1.074 0 1.86.657 1.86 1.551 0 .505-.224.954-.764 1.519l-1.268 1.282v.055h1.625c.363 0 .59.195.59.515 0 .285-.18.468-.484.502L9.336 12H6.664c-.379 0-.629-.215-.629-.543 0-.208.102-.392.399-.699l.12-.121 1.352-1.39c.418-.427.594-.708.594-1.005 0-.383-.277-.64-.688-.64-.332 0-.574.168-.746.515-.171.266-.32.367-.546.367-.31 0-.524-.21-.524-.507 0-.727.82-1.407 1.887-1.407zM19.25 4.5h-6.5v4.25h6.75v-4a.25.25 0 00-.193-.243L19.25 4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInventoryMatrix);\n","import * as React from 'react';\nfunction IconInventory(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10 15a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm0 2.25a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm11.518-1.94l.04.121a1.25 1.25 0 01-.762 1.492l-.122.04-6.175 1.654.001-.117a4.48 4.48 0 00-.633-2.302l6.16-1.65a1.25 1.25 0 011.491.762zm-3.375-9.442l1.812 6.762a1 1 0 01-.707 1.224l-5.943 1.592a4.496 4.496 0 00-2.268-1.326L9.45 8.197a1 1 0 01.707-1.224l6.761-1.812a1 1 0 011.225.707zM3.657 1.536l.128.049 2.69 1.184c.304.133.54.381.66.686l.044.134L9.97 14l-.18.005a4.475 4.475 0 00-2.218.706L4.919 4.815l-2.141-.942a1.25 1.25 0 01-.69-1.52l.05-.128c.259-.59.918-.879 1.519-.689zM15.44 7.37a.75.75 0 00-.819-.55l-.1.02-1.449.388a.75.75 0 00.288 1.469l.1-.02 1.45-.388a.75.75 0 00.53-.919z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconInventory);\n","import * as React from 'react';\nfunction IconJournalPro(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.737 3.668c-.055 1.093.226 2.033.894 2.7.668.669 1.608.95 2.7.897a18.08 18.08 0 01-3.09 4.184 27.666 27.666 0 01-3.127 2.706v3.318a.553.553 0 01-.162.39l-3.975 3.975a.553.553 0 01-.943-.39V18.32a.55.55 0 01.162-.39l1.24-1.24a.553.553 0 00.161-.39v-.133c-1.238.463-2.218.487-2.735-.03-.517-.517-.493-1.497-.03-2.735H7.7a.553.553 0 00-.325.105l-.066.057-1.24 1.24a.553.553 0 01-.303.154l-.087.007H2.553a.553.553 0 01-.455-.867l.064-.076 3.975-3.975a.553.553 0 01.304-.155l.086-.007h3.318a27.666 27.666 0 012.706-3.126 18.078 18.078 0 014.186-3.092zM21.93 2.07c.104.105.095.547-.048 1.212l-.083.35-.107.386-.061.204-.142.43c-.154.444-.345.928-.575 1.436-1.073.193-1.96.04-2.501-.5-.523-.523-.684-1.37-.52-2.395l.019-.107a16.762 16.762 0 011.654-.649l.416-.13.197-.055.368-.095c.76-.18 1.27-.2 1.383-.087z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconJournalPro);\n","import * as React from 'react';\nfunction IconLayoutBoth(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10 3a1 1 0 011 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V4a1 1 0 011-1h6zm10 0a1 1 0 011 1v16a1 1 0 01-1 1h-6a1 1 0 01-1-1V4a1 1 0 011-1h6z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLayoutBoth);\n","import * as React from 'react';\nfunction IconLayoutFirst(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20 3a1 1 0 011 1v16a1 1 0 01-1 1h-6a1 1 0 01-1-1V4a1 1 0 011-1h6zM10 3a1 1 0 011 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V4a1 1 0 011-1h6zm9.5 1.5h-5v15h5v-15z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLayoutFirst);\n","import * as React from 'react';\nfunction IconLayoutLast(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10 3a1 1 0 01.993.883L11 4v16a1 1 0 01-.883.993L10 21H4a1 1 0 01-.993-.883L3 20V4a1 1 0 01.883-.993L4 3h6zm10 0a1 1 0 01.993.883L21 4v16a1 1 0 01-.883.993L20 21h-6a1 1 0 01-.993-.883L13 20V4a1 1 0 01.883-.993L14 3h6zM9.5 4.5h-5v15h5v-15z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLayoutLast);\n","import * as React from 'react';\nfunction IconLayoutNone(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20 3a1 1 0 011 1v16a1 1 0 01-1 1h-6a1 1 0 01-1-1V4a1 1 0 011-1h6zM10 3a1 1 0 01.993.883L11 4v16a1 1 0 01-.883.993L10 21H4a1 1 0 01-.993-.883L3 20V4a1 1 0 01.883-.993L4 3h6zm9.5 1.5h-5v15h5v-15zm-10 0h-5v15h5v-15z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLayoutNone);\n","import * as React from 'react';\nfunction IconLayout(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.5 20.5V22h-5v-1.5h5zm-9-2.5v2.25a.25.25 0 00.193.243l.057.007H8V22H5.75A1.75 1.75 0 014 20.25V18h1.5zM20 18v2.25A1.75 1.75 0 0118.25 22H16v-1.5h2.25a.25.25 0 00.243-.193l.007-.057V18H20zm0-5.25v3.75h-1.5v-3.75H20zm-14.5 0v3.75H4v-3.75h1.5zM16.326 2.676a1.752 1.752 0 012.349-.113l.125.113.594.593c.59.589.676 1.502.21 2.216l-.094.131-.115.128-7.504 7.5-3 .008-.078-3.067 7.513-7.509zm-.796 2.916l-5.202 5.199.025.957.914-.002 5.209-5.207-.946-.947zM20 9v2.25h-1.5V9H20zM5.5 7.5v3.75H4V7.5h1.5zM8 2v1.5H5.75a.25.25 0 00-.243.193L5.5 3.75V6H4V3.75C4 2.784 4.784 2 5.75 2H8zm9.687 1.697a.252.252 0 00-.248 0l-.053.04-.796.795.946.947.82-.82a.248.248 0 00.043-.216l-.021-.053-.044-.06-.594-.593-.053-.04zM13 2v1.499L9.5 3.5V2H13z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLayout);\n","import * as React from 'react';\nfunction IconLedgerCardCustomerReminder(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.5 11.5c1.69 0 3.093.4 4.212 1.198a4.49 4.49 0 00-.83 1.255C12.996 13.307 11.875 13 10.5 13c-3.37 0-5.211 1.84-5.806 6.002a1.313 1.313 0 001.165 1.491l.134.007h6.506L12.5 22H5.993a2.813 2.813 0 01-2.784-3.21c.695-4.86 3.125-7.29 7.291-7.29zm8.725 9.474A1.259 1.259 0 0118 22c-.605 0-1.11-.44-1.225-1.026h2.45zM18 12c.456 0 .841.392.961.927A3 3 0 0121 15.769v2.898l.835.642a.5.5 0 01-.213.888l-.092.008h-7.06a.5.5 0 01-.305-.896l.835-.642v-2.898c0-1.32.854-2.442 2.04-2.843.119-.534.504-.926.96-.926zM10.5 2C12.433 2 14 3.903 14 6.25s-1.567 4.25-3.5 4.25S7 8.597 7 6.25 8.567 2 10.5 2zm0 1.5c-1.033 0-2 1.174-2 2.75S9.467 9 10.5 9s2-1.174 2-2.75-.967-2.75-2-2.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardCustomerReminder);\n","import * as React from 'react';\nfunction IconLedgerCardManualCustomerInvoice(\n props: React.SVGProps<SVGSVGElement>,\n svgRef?: React.Ref<SVGSVGElement>\n): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm.25 3h-15v13.25a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V6zm-8.75 9.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm-6.5-3.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm-6.5-3.5a.75.75 0 110 1.5h-4a.75.75 0 010-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardManualCustomerInvoice);\n","import * as React from 'react';\nfunction IconLedgerCardObsoleteStock(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.25 16.5V18h-2.5a.75.75 0 110-1.5h2.5zm12 0a.75.75 0 110 1.5h-2.5v-1.5h2.5zm-7.75 0V18H8.25v-1.5h3.25zm4.25 0V18H12.5v-1.5h3.25zm-8.5-3.501v1.5l-2.5.001a.75.75 0 110-1.5l2.5-.001zm12 .001a.75.75 0 110 1.5l-2.5-.001v-1.5l2.5.001zm-7.75-.001v1.5H8.25v-1.5h3.25zm4.25 0v1.5H12.5v-1.5h3.25zM7.25 9.5V11h-2.5a.75.75 0 110-1.5h2.5zm12 0a.75.75 0 110 1.5h-2.5V9.5h2.5zm-7.75 0V11H8.25V9.5h3.25zm4.25 0V11H12.5V9.5h3.25zM7.25 6v1.5h-2.5a.75.75 0 010-1.5h2.5zm12 0a.75.75 0 110 1.5h-2.5V6h2.5zM11.5 6v1.5H8.25V6h3.25zm4.25 0v1.5H12.5V6h3.25z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardObsoleteStock);\n","import * as React from 'react';\nfunction IconLedgerCardOpeningEntry(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.567 12.105a.4.4 0 01.1.309l-.29 2.798 2.434 1.41a.4.4 0 01-.116.737l-2.752.587-.587 2.752a.4.4 0 01-.738.116L15.21 18.38l-2.798.292a.4.4 0 01-.339-.666l1.88-2.092-1.141-2.571a.4.4 0 01.528-.528l2.57 1.141 2.093-1.88a.4.4 0 01.565.03zM19.25 3c.966 0 1.75.784 1.75 1.75V11h-1.5V6h-15v13.25a.25.25 0 00.193.243l.057.007H11V21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm-8.5 12.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm0-3.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm0-3.5a.75.75 0 110 1.5h-4a.75.75 0 010-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardOpeningEntry);\n","import * as React from 'react';\nfunction IconLedgerCardReservedEntry(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75a1.75 1.75 0 01-1.732-1.499L19.25 19.5a.25.25 0 00.243-.193l.007-.057L19.499 6h-15v3.5h-1.5L3 4.75C3 3.784 3.784 3 4.75 3h14.5zM6.28 10.97a.75.75 0 01.073.976l-.073.084-1.719 1.719 5.689.001a.75.75 0 110 1.5l-5.69-.001 1.72 1.72a.75.75 0 01-.976 1.134l-.084-.073-3-3-.08-.094-.051-.081-.05-.116-.027-.103-.01-.089v-.094l.018-.124.03-.099.047-.099.054-.082.069-.08 3-3a.75.75 0 011.06 0zm10.97 4.53a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zm0-3.5a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zm0-3.5a.75.75 0 110 1.5h-8.5a.75.75 0 010-1.5h8.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardReservedEntry);\n","import * as React from 'react';\nfunction IconLedgerCardShrinkagePilferage(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 15.25a.75.75 0 01.743.648l.007.102v3.439l1.22-1.22a.75.75 0 011.133.977l-.073.084-2.5 2.5a.754.754 0 01-.078.069l.078-.069-.042.04-.052.04-.114.068-.098.038-.116.026-.056.006h-.104l-.119-.018-.098-.03-.1-.047-.082-.054-.08-.069-2.5-2.5a.75.75 0 01.977-1.133l.084.073 1.22 1.219V16a.75.75 0 01.75-.75zm-4.75-2.751v1.5L4.75 14a.75.75 0 110-1.5l2.5-.001zm12 .001a.75.75 0 110 1.5l-2.5-.001v-1.5l2.5.001zm-7.75-.001v1.5H8.25v-1.5h3.25zm4.25 0v1.5H12.5v-1.5h3.25zm-8.5-3.5v1.5l-2.5.001a.75.75 0 110-1.5l2.5-.001zm12 .001a.75.75 0 110 1.5l-2.5-.001v-1.5l2.5.001zm-7.75-.001v1.5H8.25v-1.5h3.25zm4.25 0v1.5H12.5v-1.5h3.25zm3.5-3.499a.75.75 0 110 1.5H4.75a.75.75 0 010-1.5h14.5zm0-3.5a.75.75 0 110 1.5H4.75a.75.75 0 010-1.5h14.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardShrinkagePilferage);\n","import * as React from 'react';\nfunction IconLedgerCardStockAdjustment(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 20.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-3.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-3.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-3.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm-2.5-8a.75.75 0 01.743.648l.007.102v3.439l1.22-1.22a.75.75 0 011.133.977l-.073.084-2.5 2.5a.754.754 0 01-.078.069l.078-.069-.042.04-.052.04-.114.068-.098.038-.084.02-.088.012-.052.002-.052-.002-.119-.018-.098-.03-.1-.047-.082-.054-.08-.069-2.5-2.5a.75.75 0 01.977-1.133l.084.073L16 6.189V2.75a.75.75 0 01.75-.75zm-9.576.004l.128-.002.119.018.098.03.1.047.051.032.038.027.072.064 2.5 2.5a.75.75 0 01-.976 1.133L9.22 5.78 7.999 4.56 8 8a.75.75 0 01-1.493.102L6.5 8l-.001-3.438L5.28 5.78a.75.75 0 01-1.133-.976l.073-.084 2.5-2.5.042-.04.052-.04.114-.068.098-.038.084-.02a.75.75 0 01.064-.01z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardStockAdjustment);\n","import * as React from 'react';\nfunction IconLedgerCardTransferredOpeningEntry(\n props: React.SVGProps<SVGSVGElement>,\n svgRef?: React.Ref<SVGSVGElement>\n): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.567 12.105a.4.4 0 01.1.309l-.29 2.798 2.434 1.41a.4.4 0 01-.116.737l-2.752.587-.587 2.752a.4.4 0 01-.738.116L15.21 18.38l-2.798.292a.4.4 0 01-.339-.666l1.88-2.092-1.141-2.571a.4.4 0 01.528-.528l2.57 1.141 2.093-1.88a.4.4 0 01.565.03zM4.5 15v4.25a.25.25 0 00.193.243l.057.007H11V21H4.75A1.75 1.75 0 013 19.25V15h1.5zm6.28-1.72l-3 3-.084.073a.75.75 0 01-1.049-1.05l.073-.083 1.718-1.72H2.75a.75.75 0 110-1.5h5.689l-1.72-1.72a.75.75 0 01.977-1.133l.084.073 3 3a.754.754 0 01.092.11l.054.095.035.086.027.103.01.084-.001.121-.017.102-.019.068-.023.06-.035.07-.06.09-.063.071zM19.25 3c.966 0 1.75.784 1.75 1.75V11h-1.5V6h-15v4.5H3V4.75C3 3.784 3.784 3 4.75 3h14.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCardTransferredOpeningEntry);\n","import * as React from 'react';\nfunction IconLedgerCard(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.5 16c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0110.116 22H4.884a1.75 1.75 0 01-1.724-2.05C3.62 17.315 5.066 16 7.5 16zM19.25 2c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 20h-6.038l-.01-.063a11.184 11.184 0 00-.369-1.437h6.417a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L19.25 3.5H7.75a.25.25 0 00-.243.193L7.5 3.75V9.5c-.54 0-1.053.164-1.5.464V3.75C6 2.784 6.784 2 7.75 2h11.5zM7.5 10.5c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zm9.75 3.5a.75.75 0 110 1.5h-4.5a.75.75 0 110-1.5h4.5zm0-4a.75.75 0 110 1.5h-6a.75.75 0 110-1.5h6zm0-4a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLedgerCard);\n","import * as React from 'react';\nfunction IconLightbulb(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.598 20.501a2.999 2.999 0 01-5.196 0h5.196zm.152-2.251a.75.75 0 110 1.5h-5.5a.75.75 0 110-1.5h5.5zM12 4.5c3.314 0 6 2.716 6 6.067 0 1.502-.517 2.528-1.087 3.398l-.265.392-.39.561c-.418.614-.761 1.208-.82 1.929l-.01.22c0 .256-.112.4-.338.428L15 17.5H9c-.254 0-.395-.114-.423-.342l-.006-.091c0-.774-.328-1.414-.75-2.064l-.262-.392-.273-.402-.24-.364C6.492 12.978 6 11.973 6 10.567 6 7.217 8.686 4.5 12 4.5zM12 6c-2.482 0-4.5 2.04-4.5 4.567 0 .931.245 1.599.876 2.573l.647.96.152.234c.322.512.56.988.709 1.474l.052.192h4.128l.054-.192c.126-.402.314-.796.561-1.208l.156-.25.235-.352.408-.587c.736-1.07 1.022-1.78 1.022-2.844C16.5 8.04 14.482 6 12 6zm-5.846 7.875a.75.75 0 01-.19.968l-.084.057-.866.5a.75.75 0 01-.835-1.243l.085-.057.866-.5a.75.75 0 011.024.275zm12.625-.32l.091.045.866.5a.75.75 0 01-.658 1.344l-.092-.044-.866-.5a.75.75 0 01.659-1.344zm2.33-4.661a.75.75 0 01-.509.844l-.099.025-.985.173a.75.75 0 01-.36-1.453l.1-.024.985-.174a.75.75 0 01.868.609zm-17.451-.62l.101.011.985.174a.75.75 0 01-.159 1.488l-.101-.01-.985-.174a.75.75 0 01.159-1.489zm14.288-4.86a.75.75 0 01.152.974l-.06.083-.643.766a.75.75 0 01-1.209-.882l.06-.082.643-.766a.75.75 0 011.057-.093zM7.04 3.433l.07.074.644.766A.75.75 0 016.675 5.31l-.07-.073-.643-.766A.75.75 0 017.04 3.433zM12 1.25a.75.75 0 01.743.648L12.75 2v1a.75.75 0 01-1.493.102L11.25 3V2a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLightbulb);\n","import * as React from 'react';\nfunction IconLine(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18 11.25a.75.75 0 01.102 1.493L18 12.75H6a.75.75 0 01-.102-1.493L6 11.25h12z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLine);\n","import * as React from 'react';\nfunction IconLinkExternal(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fill=\"currentColor\"\n d=\"M11 5.5H7.25A1.75 1.75 0 005.5 7.25v9.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 001.75-1.75V13H17v3.75a.25.25 0 01-.25.25h-9.5a.25.25 0 01-.25-.25v-9.5A.25.25 0 017.25 7H11V5.5z\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M17.75 5.5a.75.75 0 01.743.648l.007.102v3.5a.75.75 0 01-1.493.102L17 9.75V8.06l-3.97 3.97a.75.75 0 01-1.133-.976l.073-.084L15.938 7H14.25a.75.75 0 01-.743-.648L13.5 6.25a.75.75 0 01.648-.743l.102-.007h3.5z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLinkExternal);\n","import * as React from 'react';\nfunction IconListBulleted(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.25 16a.75.75 0 01.75.75v2.5a.75.75 0 01-.75.75h-2.5a.75.75 0 01-.75-.75v-2.5a.75.75 0 01.75-.75h2.5zm14 1.25a.75.75 0 01.102 1.493l-.102.007H10a.75.75 0 01-.102-1.493L10 17.25h10.25zM6.25 10a.75.75 0 01.75.75v2.5a.75.75 0 01-.75.75h-2.5a.75.75 0 01-.75-.75v-2.5a.75.75 0 01.75-.75h2.5zm14 1.25a.75.75 0 01.102 1.493l-.102.007H10a.75.75 0 01-.102-1.493L10 11.25h10.25zM6.25 4a.75.75 0 01.75.75v2.5a.75.75 0 01-.75.75h-2.5A.75.75 0 013 7.25v-2.5A.75.75 0 013.75 4h2.5zm14 1.25a.75.75 0 01.102 1.493l-.102.007H10a.75.75 0 01-.102-1.493L10 5.25h10.25z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconListBulleted);\n","import * as React from 'react';\nfunction IconListSearch(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17.5 11a4.5 4.5 0 013.632 7.158l.036-.05 1.862 1.862a.75.75 0 01-.976 1.133l-.084-.073-1.863-1.862-.112.077A4.5 4.5 0 1117.5 11zm-6.25 7.5a.75.75 0 110 1.5h-8.5a.75.75 0 110-1.5h8.5zm6.25-6a3 3 0 100 6 3 3 0 000-6zm-7.25 1.167a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5zm3-4.834a.75.75 0 110 1.5H2.75a.75.75 0 110-1.5h10.5zm8-4.833a.75.75 0 110 1.5H2.75a.75.75 0 010-1.5h18.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconListSearch);\n","import * as React from 'react';\nfunction IconList(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 18a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-4.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-4.5a.75.75 0 110 1.5H4.75a.75.75 0 110-1.5h14.5zm0-4.5a.75.75 0 110 1.5H4.75a.75.75 0 010-1.5h14.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconList);\n","import * as React from 'react';\nfunction IconLocation(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.843 4.568a8.707 8.707 0 0112.314 12.314l-1.187 1.174c-.875.858-2.01 1.962-3.406 3.312a2.25 2.25 0 01-3.128 0l-3.491-3.396c-.44-.431-.806-.794-1.102-1.09a8.707 8.707 0 010-12.314zm11.253 1.06A7.207 7.207 0 106.903 15.822l1.488 1.468c.818.801 1.848 1.801 3.088 3a.75.75 0 001.042 0l3.395-3.3c.47-.461.863-.85 1.18-1.168a7.207 7.207 0 000-10.192zM12 7.999a3.002 3.002 0 110 6.004A3.002 3.002 0 0112 8zm0 1.5a1.502 1.502 0 100 3.004A1.502 1.502 0 0012 9.5z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLocation);\n","import * as React from 'react';\nfunction IconLockOpen(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 1a5.001 5.001 0 014.87 3.863.75.75 0 01-1.461.34 3.502 3.502 0 00-6.904.605L8.5 6v2h9.75c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V9.75C4 8.784 4.784 8 5.75 8H7V6a5 5 0 015-5zm6.25 8.5H5.75a.25.25 0 00-.243.193L5.5 9.75v10.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9.75a.25.25 0 00-.193-.243L18.25 9.5zM12 13a1.5 1.5 0 01.751 2.799l-.001.951a.75.75 0 11-1.5 0v-.95A1.5 1.5 0 0112 13z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLockOpen);\n","import * as React from 'react';\nfunction IconLock(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 1a5 5 0 015 5v2h1.25c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V9.75C4 8.784 4.784 8 5.75 8H7V6a5 5 0 015-5zm6.25 8.5H5.75a.25.25 0 00-.243.193L5.5 9.75v10.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9.75a.25.25 0 00-.193-.243L18.25 9.5zM12 13a1.5 1.5 0 01.751 2.799l-.001.951a.75.75 0 01-1.5 0v-.95A1.5 1.5 0 0112 13zm0-10.5a3.5 3.5 0 00-3.495 3.308L8.5 6v2h7V6a3.5 3.5 0 00-3.308-3.495L12 2.5z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLock);\n","import * as React from 'react';\nfunction IconLogOut(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.25 4.5H6.5v15h6.75a1.25 1.25 0 110 2.5h-7A2.25 2.25 0 014 19.75V4.25A2.25 2.25 0 016.25 2h7a1.25 1.25 0 110 2.5zm6.384 2.616l-.102-.091a1.25 1.25 0 00-1.666 1.859l1.867 1.866H11.75l-.128.007a1.25 1.25 0 00.128 2.493h7.982l-1.866 1.866-.091.102a1.25 1.25 0 001.859 1.666l4-4 .08-.089.05-.063.068-.106.058-.112.049-.127.03-.108.016-.088.012-.112L24 12l-.004-.096-.016-.13-.03-.127-.03-.087-.046-.107-.046-.086-.065-.1a1.267 1.267 0 00-.13-.15l-4-4zm4.084 4.094l-.084-.094c.03.03.058.061.084.094z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLogOut);\n","import * as React from 'react';\nfunction IconLog(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V10.5h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v16.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V19H20v1.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V3.75C4 2.784 4.784 2 5.75 2h7.836zm-.105 10.074c1.447 0 2.3.875 2.367 2.279l.004.178v.621c0 1.5-.863 2.446-2.371 2.446-1.444 0-2.304-.872-2.371-2.268l-.004-.178v-.62c0-1.516.871-2.458 2.375-2.458zm5.362 0c1.328 0 2.058.776 2.172 1.653l.012.132h-1.25c-.074-.414-.406-.734-.945-.734-.638 0-1.007.443-1.05 1.222l-.005.16v.626c0 .805.293 1.414 1.09 1.414.598 0 .914-.34.956-.745l.005-.095v-.234h-.93v-.903h2.14v1.04c0 1.038-.667 1.988-2.199 1.988-1.57 0-2.3-.987-2.355-2.296l-.004-.165v-.64c0-1.427.84-2.423 2.363-2.423zm-10.182.094v4.262h2.141v1.07H7.376v-5.332h1.285zm4.82.95c-.597 0-1.012.415-1.062 1.23l-.005.168v.64c0 .926.43 1.399 1.067 1.399.593 0 1.008-.416 1.057-1.23l.005-.169v-.64c0-.926-.43-1.399-1.062-1.399zM14.5 4.62v2.63a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconLog);\n","import * as React from 'react';\nfunction IconMarket(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7 17.5a.5.5 0 01.5.5v3.5a.5.5 0 01-.5.5H3.5a.5.5 0 01-.5-.5V18a.5.5 0 01.5-.5H7zm5.5 0a.5.5 0 01.5.5v3.5a.5.5 0 01-.5.5H9a.5.5 0 01-.5-.5V18a.5.5 0 01.5-.5h3.5zm5.5 0a.5.5 0 01.5.5v3.5a.5.5 0 01-.5.5h-3.5a.5.5 0 01-.5-.5V18a.5.5 0 01.5-.5H18zM7 12a.5.5 0 01.5.5V16a.5.5 0 01-.5.5H3.5A.5.5 0 013 16v-3.5a.5.5 0 01.5-.5H7zm5.5 0a.5.5 0 01.5.5V16a.5.5 0 01-.5.5H9a.5.5 0 01-.5-.5v-3.5A.5.5 0 019 12h3.5zm6.97-2.523l.906 3.381a.5.5 0 01-.353.612l-3.381.906a.5.5 0 01-.612-.353l-.906-3.381a.5.5 0 01.353-.612l3.381-.906a.5.5 0 01.612.353zM7 6.5a.5.5 0 01.5.5v3.5a.5.5 0 01-.5.5H3.5a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5H7zm3.642-2.376l3.38.906a.5.5 0 01.354.612l-.906 3.38a.5.5 0 01-.612.354l-3.38-.906a.5.5 0 01-.354-.612l.906-3.38a.5.5 0 01.612-.354zM20 2a.5.5 0 01.5.5V6a.5.5 0 01-.5.5h-3.5A.5.5 0 0116 6V2.5a.5.5 0 01.5-.5H20z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMarket);\n","import * as React from 'react';\nfunction IconMastercardOs(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path d=\"M14.698 7.314H9.286v9.66h5.412v-9.66z\" fill=\"#FF5A00\" />\n <path\n d=\"M9.646 12.144c0-1.963.929-3.704 2.354-4.83A6.178 6.178 0 008.185 6C4.766 6 2 8.748 2 12.144s2.766 6.143 6.185 6.143A6.178 6.178 0 0012 16.973a6.117 6.117 0 01-2.354-4.83z\"\n fill=\"#EB001B\"\n />\n <path\n d=\"M22 12.144c0 3.396-2.766 6.143-6.185 6.143A6.178 6.178 0 0112 16.973a6.095 6.095 0 002.354-4.83A6.146 6.146 0 0012 7.315 6.168 6.168 0 0115.813 6C19.233 6 22 8.766 22 12.144z\"\n fill=\"#F79E1B\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMastercardOs);\n","import * as React from 'react';\nfunction IconMatchAmount(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H13l-.001-1.5h5.251a.25.25 0 00.243-.193l.007-.057L18.499 9H14.75a1.75 1.75 0 01-1.744-1.606L13 7.25l-.001-3.75H5.75a.25.25 0 00-.243.193L5.5 3.75 5.499 13H4V3.75C4 2.784 4.784 2 5.75 2h7.836zM4.142 16.956a.5.5 0 01.55-.147l.082.038 2.143 1.237.074.052a.5.5 0 01.147.55l-.038.081-.052.074a.5.5 0 01-.55.147l-.081-.038-.878-.505a2.5 2.5 0 004 1.525.75.75 0 11.925 1.181 4.002 4.002 0 01-6.343-2.173l-.402.695-.052.074a.5.5 0 01-.852-.492l.038-.082 1.238-2.143.051-.074zM8 14a4.001 4.001 0 013.92 3.197l.358-.62a.5.5 0 01.6-.221l.083.038a.5.5 0 01.22.601l-.037.082-1.238 2.143a.5.5 0 01-.6.221l-.083-.038-2.143-1.237a.5.5 0 01.418-.904l.082.038.914.528a2.5 2.5 0 00-4.033-1.798.75.75 0 11-.925-1.181A3.985 3.985 0 018 14zm6.499-9.38l.001 2.63a.25.25 0 00.193.243l.057.007h2.629l-2.88-2.88z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMatchAmount);\n","import * as React from 'react';\nfunction IconMatchEntries(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3a1.75 1.75 0 011.744 1.606L21 4.75v14.5a1.75 1.75 0 01-1.606 1.744L19.25 21H12v-1.5h7.25a.25.25 0 00.243-.193l.007-.057V5.996L19.406 6H4.5l.001 6H3V4.75a1.75 1.75 0 011.606-1.744L4.75 3h14.5zM3.696 15.809l.082.038 2.143 1.237.074.052a.5.5 0 01.147.55l-.038.081-.052.074a.5.5 0 01-.55.147l-.081-.038-.878-.505a2.5 2.5 0 004 1.525.75.75 0 11.925 1.181 4.002 4.002 0 01-6.343-2.173l-.402.695-.052.074a.5.5 0 01-.852-.492l.038-.082 1.238-2.143.051-.074a.5.5 0 01.55-.147zM7.002 13a4.001 4.001 0 013.92 3.197l.357-.62a.5.5 0 01.602-.221l.081.038a.5.5 0 01.221.601l-.038.082-1.237 2.143a.5.5 0 01-.601.221l-.082-.038-2.143-1.237a.5.5 0 01.418-.904l.082.038.914.528a2.5 2.5 0 00-4.034-1.798.75.75 0 11-.924-1.181A3.985 3.985 0 017.002 13zm10.248 2a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm-.125-3.5c.483 0 .875.336.875.75s-.392.75-.875.75h-5.25c-.483 0-.875-.336-.875-.75s.392-.75.875-.75h5.25zM17.25 8a.75.75 0 110 1.5H6.75a.75.75 0 010-1.5h10.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMatchEntries);\n","import * as React from 'react';\nfunction IconMenu(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M4 19h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-6h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMenu);\n","import * as React from 'react';\nfunction IconMileage(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10 0 1.806-.479 3.5-1.316 4.962L20.66 17a.75.75 0 01-.933.32l-.091-.045-1.516-.875a.75.75 0 01.659-1.344l.091.044.84.485c.406-.874.67-1.83.757-2.834l-.967-.001a.75.75 0 01-.102-1.493l.102-.007h.967a8.447 8.447 0 00-.757-2.834l-.84.484a.75.75 0 01-.835-1.243l.085-.057.838-.483a8.548 8.548 0 00-2.075-2.075l-.483.838a.75.75 0 01-1.344-.659l.044-.091.484-.84a8.447 8.447 0 00-2.833-.757l-.001.967a.75.75 0 01-1.493.102L11.25 4.5v-.967a8.447 8.447 0 00-2.834.757l.484.84a.75.75 0 01-1.243.835L7.6 5.88l-.483-.838a8.548 8.548 0 00-2.075 2.075l.838.483a.75.75 0 01-.659 1.344L5.13 8.9l-.84-.484a8.447 8.447 0 00-.757 2.834H4.5a.75.75 0 01.102 1.493l-.102.007h-.967a8.427 8.427 0 00.758 2.835l.839-.485a.75.75 0 01.835 1.243l-.085.057-1.516.875A.75.75 0 013.34 17l-.02-.04-.003.003A9.954 9.954 0 012 12C2 6.477 6.477 2 12 2zm4.03 5.97a.75.75 0 01.073.976l-.073.084-2.792 2.794a1.25 1.25 0 11-1.061-1.061L14.97 7.97a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMileage);\n","import * as React from 'react';\nfunction IconModalResize(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 15.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-10 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm0-5a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconModalResize);\n","import * as React from 'react';\nfunction IconModalShrink(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H13.5v-1.5h5.75a.25.25 0 00.243-.193l.007-.057V4.75a.25.25 0 00-.193-.243L19.25 4.5H4.75a.25.25 0 00-.243.193L4.5 4.75v5.75H3V4.75C3 3.784 3.784 3 4.75 3h14.5zm-9 9c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0110.25 21h-5.5A1.75 1.75 0 013 19.25v-5.5c0-.966.784-1.75 1.75-1.75h5.5zm0 1.5h-5.5a.25.25 0 00-.243.193l-.007.057v5.5a.25.25 0 00.193.243l.057.007h5.5a.25.25 0 00.243-.193l.007-.057v-5.5a.25.25 0 00-.193-.243l-.057-.007zm7.78-7.53a.75.75 0 01.073.976l-.073.084-3.22 3.22h1.69a.75.75 0 01.743.648l.007.102a.75.75 0 01-.648.743l-.102.007H13a.75.75 0 01-.743-.648L12.25 11V7.5a.75.75 0 011.493-.102l.007.102v1.688l3.22-3.218a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconModalShrink);\n","import * as React from 'react';\nfunction IconMoreSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 8.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0-10a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMoreSolid);\n","import * as React from 'react';\nfunction IconMore(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 10a2 2 0 110 4 2 2 0 010-4zm0 6.5a2 2 0 110 4 2 2 0 010-4zm0-13a2 2 0 110 4 2 2 0 010-4z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMore);\n","import * as React from 'react';\nfunction IconMove(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.924 6.254l.128-.002.119.018.098.03.1.047.051.032.038.027.072.064 3.5 3.5a.75.75 0 01-.976 1.133l-.084-.073-2.22-2.219V17a.75.75 0 01-1.493.102L6.25 17V8.811l-2.22 2.22a.75.75 0 01-1.133-.977l.073-.084 3.5-3.5.042-.04.052-.04.114-.068.098-.038.084-.02a.75.75 0 01.064-.01zM17 6.25a.75.75 0 01.743.648L17.75 7l-.001 8.19 2.22-2.22a.75.75 0 011.134.976l-.073.084-3.5 3.5a.754.754 0 01-.078.069l.078-.069-.042.04-.052.04-.114.068-.098.038-.084.02-.088.012-.052.002-.052-.002-.119-.018-.098-.03-.1-.047-.082-.054-.08-.069-3.5-3.5a.75.75 0 01.977-1.133l.084.073 2.219 2.218L16.25 7a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconMove);\n","import * as React from 'react';\nfunction IconNavigationList(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.5 22v-.018A1.75 1.75 0 014 20.25V3.75c0-.882.652-1.61 1.5-1.732V2h12.75c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H5.5zM9 18.3H5.5v1.95a.25.25 0 00.193.243l.057.007H9v-2.2zm9.25-14.8H10.5v17h7.75a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L18.25 3.5zM9 14.6H5.5v2.2H9v-2.2zm0-3.7H5.5v2.2H9v-2.2zm0-3.7H5.5v2.2H9V7.2zm0-3.7H5.75a.25.25 0 00-.243.193L5.5 3.75V5.7H9V3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNavigationList);\n","import * as React from 'react';\nfunction IconNoteFollowUp(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.25 2c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H14v-1.5h4.25a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L18.25 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75V11H4V3.75C4 2.784 4.784 2 5.75 2h12.5zM9.225 20.974A1.259 1.259 0 018 22c-.605 0-1.11-.44-1.225-1.026h2.45zM8 12c.456 0 .841.392.961.927A3 3 0 0111 15.769v2.898l.835.642a.5.5 0 01-.305.896H4.47a.5.5 0 01-.305-.896L5 18.667v-2.898c0-1.32.854-2.442 2.04-2.843.119-.534.504-.926.96-.926zm7.25 2.5a.75.75 0 110 1.5h-1.5a.75.75 0 110-1.5h1.5zm0-3.5a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zm0-3.5a.75.75 0 110 1.5h-6.5a.75.75 0 010-1.5h6.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNoteFollowUp);\n","import * as React from 'react';\nfunction IconNoteRead(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.75 2a.75.75 0 01.75.75V3h1.75a1.75 1.75 0 011.744 1.606L21 4.75v14.5a1.75 1.75 0 01-1.606 1.744L19.25 21H4.75a1.75 1.75 0 01-1.744-1.606L3 19.25V4.75a1.75 1.75 0 011.606-1.744L4.75 3H6.5v-.25a.75.75 0 011.5 0V3h3.25v-.25a.75.75 0 111.5 0V3H16v-.25a.75.75 0 01.75-.75zM6.499 4.5H4.75l-.057.007a.25.25 0 00-.184.175L4.5 4.75v14.5l.007.057a.25.25 0 00.175.184l.068.009h14.5l.057-.007a.25.25 0 00.184-.175l.009-.068V4.75l-.007-.057a.25.25 0 00-.175-.184L19.25 4.5H17.5v.25a.75.75 0 11-1.5 0V4.5h-3.25v.25a.75.75 0 11-1.5 0V4.5H7.999L8 4.75a.75.75 0 01-1.5 0l-.001-.25zM16.25 12a.75.75 0 110 1.5h-8.5a.75.75 0 110-1.5h8.5zm0-3a.75.75 0 110 1.5h-8.5a.75.75 0 110-1.5h8.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNoteRead);\n","import * as React from 'react';\nfunction IconNote(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.75 2a.75.75 0 01.75.75V3h1.75a1.75 1.75 0 011.744 1.606L21 4.75V14h-1.5V4.75l-.007-.057a.25.25 0 00-.175-.184L19.25 4.5H17.5v.25a.75.75 0 11-1.5 0V4.5h-3.25v.25a.75.75 0 11-1.5 0V4.5H7.999L8 4.75a.75.75 0 01-1.5 0l-.001-.25H4.75l-.057.007a.25.25 0 00-.184.175L4.5 4.75v14.5l.007.057a.25.25 0 00.175.184l.068.009H14V21H4.75a1.75 1.75 0 01-1.744-1.606L3 19.25V4.75a1.75 1.75 0 011.606-1.744L4.75 3H6.5v-.25a.75.75 0 011.5 0V3h3.25v-.25a.75.75 0 111.5 0V3H16v-.25a.75.75 0 01.75-.75zm-3.94 7.75l7.513 7.513a1.75 1.75 0 01.114 2.35l-.114.124-.586.586a1.75 1.75 0 01-2.35.114l-.124-.114-7.513-7.512V9.75h3.06zm5.697 7.818l-.938.94.754.755a.25.25 0 00.24.065l.06-.025.054-.04.586-.586a.25.25 0 00.04-.3l-.04-.054-.756-.755zm-6.318-6.318h-.939v.939l5.258 5.258.938-.94-5.257-5.257z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNote);\n","import * as React from 'react';\nfunction IconNovemberFirst(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M21.484 8.828C19.73 3.592 14.065.768 8.829 2.519 3.592 4.271.767 9.936 2.519 15.172c1.752 5.237 7.418 8.06 12.655 6.308a9.997 9.997 0 006.31-12.653z\"\n fill=\"#0D2840\"\n />\n <path\n d=\"M13.977 7.263v5.445l-4.14-5.445H7.264l.78 1.156v7.686h1.919v-5.619l4.28 5.62H15.9V7.262h-1.922z\"\n fill=\"#2CD7B3\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNovemberFirst);\n","import * as React from 'react';\nfunction IconNumbers(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M3.203 16.625c0 .602.328.96.875.96.555 0 .875-.35.875-.96V7.898c0-.671-.437-1.132-1.078-1.132-.375 0-.742.14-1.273.515L1.125 8.344c-.367.25-.54.508-.54.789 0 .367.282.656.65.656.195 0 .382-.07.663-.266l1.258-.898h.047v8zm4.149.031c0 .516.414.844 1.046.844h5.22c.53 0 .843-.281.843-.734 0-.461-.328-.743-.844-.743H9.648v-.101l2.665-2.953c1.367-1.492 1.812-2.313 1.812-3.36 0-1.742-1.43-2.984-3.422-2.984-2.086 0-3.492 1.375-3.492 2.742 0 .485.312.813.766.813.367 0 .617-.211.804-.657.266-.906.93-1.43 1.82-1.43 1.063 0 1.774.665 1.774 1.657 0 .688-.344 1.313-1.21 2.266l-3.071 3.406c-.563.601-.742.89-.742 1.234zm8.562-1.375c0 1.242 1.555 2.446 3.617 2.446 2.274 0 3.867-1.297 3.867-3.141 0-1.352-.992-2.484-2.296-2.617v-.11c1.078-.171 1.953-1.257 1.953-2.421 0-1.649-1.461-2.813-3.524-2.813-1.984 0-3.414 1.156-3.414 2.39 0 .454.305.766.742.766.344 0 .578-.164.782-.578.367-.742 1.007-1.156 1.851-1.156 1.086 0 1.828.648 1.828 1.61 0 .952-.758 1.64-1.804 1.64h-.813c-.43 0-.726.305-.726.71 0 .423.304.735.726.735h.86c1.25 0 2.085.719 2.085 1.79 0 1.077-.82 1.765-2.093 1.765-.961 0-1.711-.422-2.14-1.188-.25-.414-.47-.57-.782-.57-.422 0-.719.313-.719.742z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconNumbers);\n","import * as React from 'react';\nfunction IconPartnerApi(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M9.884 11.616a1.25 1.25 0 01.091 1.666l-.091.102-1.868 1.866H19a1.25 1.25 0 01.128 2.494L19 17.75H8.017l1.867 1.866a1.25 1.25 0 01-1.666 1.859l-.102-.091-4-4a1.26 1.26 0 01-.13-.152l-.068-.106-.042-.079-.046-.107-.03-.087-.03-.127-.016-.126-.004-.1.002-.08.013-.111.016-.088.03-.108.05-.127.086-.16.062-.088.064-.076 4.043-4.046a1.25 1.25 0 011.768 0zm5.898-9.091l.102.091 4 4c.03.03.058.061.084.094l-.084-.094c.048.048.09.099.13.152l.064.099.046.086.046.107.03.087.03.127.016.13.004.096-.002.08-.013.111-.016.088-.03.108-.05.127-.057.112-.069.106-.048.063-.081.089-4 4a1.25 1.25 0 01-1.859-1.666l.091-.102 1.866-1.866H5a1.25 1.25 0 01-.128-2.494L5 6.25h10.983l-1.867-1.866a1.25 1.25 0 011.666-1.859z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPartnerApi);\n","import * as React from 'react';\nfunction IconPaymentPaid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.535 6.5h2.715a.25.25 0 01.25.25v2.715A3.502 3.502 0 0117.535 6.5zm-11.07 0H3.75a.25.25 0 00-.25.25v2.715A3.502 3.502 0 006.465 6.5zm1.51 0A5.002 5.002 0 013.5 10.975v2.05A5.002 5.002 0 017.975 17.5H14.5V19H3.75A1.75 1.75 0 012 17.25V6.75C2 5.784 2.784 5 3.75 5h16.5c.966 0 1.75.784 1.75 1.75v4.75h-1.5v-.525A5.002 5.002 0 0116.025 6.5h-8.05zM3.5 17.25v-2.715A3.502 3.502 0 016.465 17.5H3.75a.25.25 0 01-.25-.25zM14 12a2 2 0 11-4 0 2 2 0 014 0zm1.5 0a3.5 3.5 0 11-7 0 3.5 3.5 0 017 0zm5.095 1.608a.86.86 0 011.049-.14c.344.201.467.603.306.937l-.057.098-3.118 4.152-.07.087a.859.859 0 01-1.17.059l-.079-.08-1.878-2.164-.068-.092a.713.713 0 01.194-.962.863.863 0 011.06.035l.081.082 1.169 1.345 2.51-3.268.071-.089z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPaymentPaid);\n","import * as React from 'react';\nfunction IconPaymentUnpaid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.535 6.5h2.715a.25.25 0 01.25.25v2.715A3.502 3.502 0 0117.535 6.5zm-11.07 0H3.75a.25.25 0 00-.25.25v2.715A3.502 3.502 0 006.465 6.5zm1.51 0A5.002 5.002 0 013.5 10.975v2.05A5.002 5.002 0 017.975 17.5H14.5V19H3.75A1.75 1.75 0 012 17.25V6.75C2 5.784 2.784 5 3.75 5h16.5c.966 0 1.75.784 1.75 1.75v4.75h-1.5v-.525A5.002 5.002 0 0116.025 6.5h-8.05zM3.5 17.25v-2.715A3.502 3.502 0 016.465 17.5H3.75a.25.25 0 01-.25-.25zM14 12a2 2 0 11-4 0 2 2 0 014 0zm1.5 0a3.5 3.5 0 11-7 0 3.5 3.5 0 017 0zm6.297 1.203a.692.692 0 00-.901-.067l-.078.067L19 15.02l-1.818-1.818-.078-.067a.692.692 0 00-.901 1.046L18.02 16l-1.818 1.818-.067.078a.692.692 0 00.968.968l.078-.067L19 16.98l1.818 1.818.078.067a.692.692 0 00.901-1.046L19.98 16l1.818-1.818.067-.078a.692.692 0 00-.067-.901z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPaymentUnpaid);\n","import * as React from 'react';\nfunction IconPeriod(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 6c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0120.25 22H7.75A1.75 1.75 0 016 20.25V19h1.5v1.25a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V7.75a.25.25 0 00-.193-.243L20.25 7.5H19V6h1.25zm-7-5a.75.75 0 01.75.75V2h2.25c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0116.25 18H3.75A1.75 1.75 0 012 16.25V3.75C2 2.784 2.784 2 3.75 2H6v-.25a.75.75 0 011.5 0V2h5v-.25a.75.75 0 01.75-.75zm3.25 6.5h-13v8.75a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V7.5zm-6.195 1.277c.38 0 .62.21.662.554l.006.107v4.554c0 .356-.235.59-.582.59-.313 0-.538-.19-.58-.487l-.006-.103V9.957H9.78l-.824.574a.48.48 0 01-.312.106.402.402 0 01-.415-.422c0-.15.05-.267.172-.377l.082-.065L9.602 9a1.09 1.09 0 01.703-.223zM6 3.5H3.75a.25.25 0 00-.243.193L3.5 3.75V6h13V3.75a.25.25 0 00-.193-.243L16.25 3.5H14v.25a.75.75 0 11-1.5 0V3.5h-5v.25a.75.75 0 01-1.5 0V3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPeriod);\n","import * as React from 'react';\nfunction IconPersonChange(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.75 11.5c4.166 0 6.596 2.43 7.291 7.29A2.813 2.813 0 0119.257 22h-9.014a2.813 2.813 0 01-2.784-3.21c.695-4.86 3.125-7.29 7.291-7.29zm0 1.5c-3.37 0-5.211 1.84-5.806 6.002a1.313 1.313 0 001.165 1.491l.134.007h9.014a1.313 1.313 0 001.3-1.498C19.96 14.84 18.12 13 14.75 13zM6.446 6.397l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.719-1.72H1.75a.75.75 0 01-.102-1.493l.102-.007h5.439l-1.72-1.72a.75.75 0 01-.072-.976l.073-.084a.75.75 0 01.976-.073zM14.75 2c1.933 0 3.5 1.903 3.5 4.25s-1.567 4.25-3.5 4.25-3.5-1.903-3.5-4.25S12.817 2 14.75 2zm0 1.5c-1.033 0-2 1.174-2 2.75s.967 2.75 2 2.75 2-1.174 2-2.75-.967-2.75-2-2.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPersonChange);\n","import * as React from 'react';\nfunction IconPersonMinus(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.5 11.5c1.486 0 2.751.31 3.796.928-.462.29-.881.644-1.246 1.047-.726-.32-1.574-.475-2.55-.475-3.37 0-5.211 1.84-5.806 6.002a1.313 1.313 0 001.165 1.491l.134.007 6.31.001a6.027 6.027 0 001.23 1.5L5.992 22a2.813 2.813 0 01-2.784-3.21c.695-4.86 3.125-7.29 7.291-7.29zm7 1.5a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm2.25 3.75h-4.5a.75.75 0 00-.102 1.493l.102.007h4.5a.75.75 0 00.102-1.493l-.102-.007zM10.5 2C12.433 2 14 3.903 14 6.25s-1.567 4.25-3.5 4.25S7 8.597 7 6.25 8.567 2 10.5 2zm0 1.5c-1.033 0-2 1.174-2 2.75S9.467 9 10.5 9s2-1.174 2-2.75-.967-2.75-2-2.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPersonMinus);\n","import * as React from 'react';\nfunction IconPersonPlus(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.5 11.5c1.486 0 2.751.31 3.796.928-.462.29-.881.644-1.246 1.047-.726-.32-1.574-.475-2.55-.475-3.37 0-5.211 1.84-5.806 6.002a1.313 1.313 0 001.165 1.491l.134.007 6.31.001a6.027 6.027 0 001.23 1.5L5.992 22a2.813 2.813 0 01-2.784-3.21c.695-4.86 3.125-7.29 7.291-7.29zm7 1.5a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm0 1.5a.75.75 0 00-.743.648l-.007.102v1.5h-1.5a.75.75 0 00-.743.648l-.007.102c0 .38.282.693.648.743l.102.007h1.5v1.5c0 .38.282.693.648.743l.102.007a.75.75 0 00.743-.648l.007-.102v-1.5h1.5a.75.75 0 00.743-.648l.007-.102a.75.75 0 00-.648-.743l-.102-.007h-1.5v-1.5a.75.75 0 00-.648-.743L17.5 14.5zM10.5 2C12.433 2 14 3.903 14 6.25s-1.567 4.25-3.5 4.25S7 8.597 7 6.25 8.567 2 10.5 2zm0 1.5c-1.033 0-2 1.174-2 2.75S9.467 9 10.5 9s2-1.174 2-2.75-.967-2.75-2-2.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPersonPlus);\n","import * as React from 'react';\nfunction IconPersonTick(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.5 11.5c1.486 0 2.751.31 3.796.928-.462.29-.881.644-1.246 1.047-.726-.32-1.574-.475-2.55-.475-3.37 0-5.211 1.84-5.806 6.002a1.313 1.313 0 001.165 1.491l.134.007 6.31.001a6.027 6.027 0 001.23 1.5L5.992 22a2.813 2.813 0 01-2.784-3.21c.695-4.86 3.125-7.29 7.291-7.29zm7 1.5a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm2.403 1.867a.75.75 0 00-.97.141l-.066.09-1.983 3.114-.798-.999-.076-.081a.75.75 0 00-1.159.927l.063.091 1.455 1.819.073.079a.75.75 0 001.081-.059l.064-.086 2.546-4 .052-.098a.75.75 0 00-.282-.938zM10.5 2C12.433 2 14 3.903 14 6.25s-1.567 4.25-3.5 4.25S7 8.597 7 6.25 8.567 2 10.5 2zm0 1.5c-1.033 0-2 1.174-2 2.75S9.467 9 10.5 9s2-1.174 2-2.75-.967-2.75-2-2.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPersonTick);\n","import * as React from 'react';\nfunction IconPhoneSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.357 4.384l.891-.58c.835-.542 1.942-.323 2.586.513l1.28 1.663c.56.724.628 1.734.17 2.496l-1.273 2.12c.372.965.962 1.855 1.77 2.67a8.253 8.253 0 002.701 1.844l1.876-1.253c.711-.475 1.645-.398 2.317.19l1.565 1.373c.782.685.99 1.862.487 2.755l-.538.957c-.536.952-1.517 1.508-2.576 1.46-2.498-.115-5.197-1.718-8.096-4.811-2.903-3.098-4.408-5.983-4.514-8.655-.045-1.125.47-2.168 1.354-2.742z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPhoneSolid);\n","import * as React from 'react';\nfunction IconPhone(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M4.742 3.998l1.036-.641a2.75 2.75 0 013.58.6l1.39 1.703a2.75 2.75 0 01.2 3.196l-1.082 1.732a.25.25 0 00-.035.17c.06.396.52 1.073 1.397 1.95.638.638 1.174 1.062 1.59 1.27.289.144.43.154.48.123l1.783-1.114a2.75 2.75 0 013.195.201l1.696 1.383a2.75 2.75 0 01.606 3.57l-.639 1.04a3.75 3.75 0 01-3.234 1.788c-2.86-.03-5.846-1.636-8.974-4.763-3.133-3.133-4.739-6.124-4.764-8.986a3.75 3.75 0 011.775-3.222zm.79 1.276a2.25 2.25 0 00-1.065 1.932c.021 2.408 1.445 5.06 4.324 7.939 2.876 2.876 5.524 4.3 7.93 4.324a2.25 2.25 0 001.94-1.072l.639-1.04a1.25 1.25 0 00-.276-1.623l-1.696-1.383a1.25 1.25 0 00-1.452-.092l-1.787 1.117c-1.04.64-2.31.005-3.922-1.607-1.086-1.087-1.698-1.988-1.82-2.786a1.75 1.75 0 01.247-1.19l1.083-1.732a1.25 1.25 0 00-.092-1.453l-1.39-1.704a1.25 1.25 0 00-1.627-.272l-1.036.642z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPhone);\n","import * as React from 'react';\nfunction IconPlay(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 1.5a8.5 8.5 0 100 17 8.5 8.5 0 000-17zM9.8 8a.7.7 0 011.05-.606l.084.057 4.86 3.84a.7.7 0 01.081 1.023l-.081.075-4.86 3.84a.7.7 0 01-1.127-.449l-.007-.1V8zm1.4 1.445v4.789l3.03-2.395-3.03-2.394z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPlay);\n","import * as React from 'react';\nfunction IconPlusMinus(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.169 17.055c.43 0 .734-.305.734-.75V13.43h2.649c.453 0 .757-.297.757-.72 0-.429-.304-.726-.757-.726H6.903V9.258c0-.445-.304-.758-.734-.758s-.727.313-.727.758v2.726H2.825c-.445 0-.758.297-.758.727 0 .422.313.719.758.719h2.617v2.875c0 .445.305.75.727.75zm5.598 2.453c.352 0 .64-.211.735-.555l3.453-12.25a1.17 1.17 0 00.047-.258c.007-.406-.336-.75-.766-.75-.36 0-.648.211-.742.547l-3.446 12.25a.749.749 0 00.719 1.016zm9.388-6.11c.578 0 .882-.32.882-.78 0-.462-.304-.766-.882-.766h-3.68c-.57 0-.883.312-.883.765 0 .461.305.781.883.781h3.68z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPlusMinus);\n","import * as React from 'react';\nfunction IconPrint(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.75 2c.966 0 1.75.784 1.75 1.75v1.758A3.75 3.75 0 0122 9.25v7.5a1.75 1.75 0 01-1.75 1.75H18.5v1.75A1.75 1.75 0 0116.75 22h-9.5a1.75 1.75 0 01-1.75-1.75V18.5H3.75A1.75 1.75 0 012 16.75v-7.5a3.75 3.75 0 013.5-3.742V3.75C5.5 2.784 6.284 2 7.25 2h9.5zM17 14.5H7v5.75a.25.25 0 00.193.243l.057.007h9.5a.25.25 0 00.243-.193L17 20.25V14.5zM18.25 7H5.75a2.25 2.25 0 00-2.245 2.096L3.5 9.25v7.5a.25.25 0 00.193.243L3.75 17H5.5v-3.25a.75.75 0 01.75-.75h11.5a.75.75 0 01.75.75V17h1.75a.25.25 0 00.243-.193l.007-.057v-7.5a2.25 2.25 0 00-2.096-2.245L18.25 7zm-.5 3a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm-1-6.5h-9.5a.25.25 0 00-.243.193L7 3.75V5.5h10V3.75a.25.25 0 00-.193-.243L16.75 3.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconPrint);\n","import * as React from 'react';\nfunction IconProcessPayment(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.247 2a.75.75 0 01.75.75l-.001.25h2.25c.967 0 1.75.784 1.75 1.75v14.5a1.75 1.75 0 01-1.75 1.75h-7.25v-1.5h7.25a.25.25 0 00.244-.193l.007-.057L19.496 8h-15v4h-1.5V4.75c0-.966.784-1.75 1.75-1.75h2.25v-.25a.75.75 0 011.5 0V3h7v-.25a.75.75 0 01.75-.75zM3.139 15.956a.5.5 0 01.631-.11l2.144 1.238.073.052a.5.5 0 01.11.631l-.052.074a.5.5 0 01-.631.11l-.878-.506a2.5 2.5 0 004 1.525.75.75 0 11.925 1.181 4.002 4.002 0 01-6.343-2.173l-.402.695-.052.074a.5.5 0 01-.814-.574l1.237-2.143zM6.997 13a4.001 4.001 0 013.92 3.197l.358-.62a.5.5 0 01.6-.221l.083.038a.5.5 0 01.22.601l-.037.082-1.238 2.143a.5.5 0 01-.601.221l-.082-.038-2.143-1.237a.5.5 0 01.418-.904l.082.038.914.528a2.5 2.5 0 00-4.033-1.798.75.75 0 11-.925-1.181A3.985 3.985 0 016.997 13zm-.001-8.5h-2.25a.25.25 0 00-.243.193l-.006.057-.001 1.75h15V4.75a.25.25 0 00-.192-.243l-.057-.007h-2.251v.25a.75.75 0 11-1.5 0V4.5h-7v.25a.75.75 0 01-1.5 0V4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconProcessPayment);\n","import * as React from 'react';\nfunction IconProductLedgerCard(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.797 9c.464 0 .91.184 1.237.513l6.229 6.228a1.75 1.75 0 010 2.475l-4.047 4.047a1.75 1.75 0 01-2.475 0l-6.228-6.229A1.75 1.75 0 012 14.797V10.75C2 9.784 2.784 9 3.75 9h4.047zM18.25 2c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H14.5v-1.5h3.75a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L18.25 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75V8H4V3.75C4 2.784 4.784 2 5.75 2h12.5zM7.797 10.5H3.75a.25.25 0 00-.243.193l-.007.057v4.047a.25.25 0 00.033.125l.04.052 6.228 6.228a.25.25 0 00.3.04l.054-.04 4.047-4.047a.25.25 0 00.04-.3l-.04-.054-6.228-6.228a.25.25 0 00-.112-.064l-.065-.009zm-2.504 1.793a1 1 0 111.414 1.414 1 1 0 01-1.414-1.414zM15.75 9.5a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm0-3.5a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconProductLedgerCard);\n","import * as React from 'react';\nfunction IconProfile(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.97 9.97 0 003.047 7.187A9.967 9.967 0 0012 22a9.967 9.967 0 006.953-2.813A9.97 9.97 0 0022 12zM5.704 16.936A7.986 7.986 0 0012 20a7.986 7.986 0 006.296-3.064A7 7 0 0012 13a7 7 0 00-6.296 3.936zM12 12a3.5 3.5 0 100-7 3.5 3.5 0 000 7z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconProfile);\n","import * as React from 'react';\nfunction IconProjectCards(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm0 1.5H4.75a.25.25 0 00-.243.193L4.5 4.75v14.5a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V4.75a.25.25 0 00-.193-.243L19.25 4.5zM8.25 15a.75.75 0 01.75.75v1a.75.75 0 01-.75.75h-1a.75.75 0 01-.75-.75v-1a.75.75 0 01.75-.75h1zm8.5 1a.75.75 0 110 1.5h-4.5a.75.75 0 110-1.5h4.5zm0-3.167a.75.75 0 010 1.5h-4.5a.75.75 0 110-1.5h4.5zm0-3.166a.75.75 0 110 1.5h-4.5a.75.75 0 010-1.5h4.5zM8.25 6.5a.75.75 0 01.75.75v1a.75.75 0 01-.75.75h-1a.75.75 0 01-.75-.75v-1a.75.75 0 01.75-.75h1zm8.5 0a.75.75 0 110 1.5h-4.5a.75.75 0 110-1.5h4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconProjectCards);\n","import * as React from 'react';\nfunction IconProjects(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm0 3a1 1 0 00-.993.883L11 6v6.02l.01.118.022.113.023.077.03.075.047.093.062.096.07.085.072.071.096.075.099.06.075.036 3.5 1.5.11.04a1 1 0 00.782-1.826l-.104-.052L13 11.34V6l-.007-.117A1 1 0 0012 5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconProjects);\n","import * as React from 'react';\nfunction IconQuestionMarkBold(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.367 7.727a.476.476 0 00.484.48h3.147c.274 0 .492-.222.537-.493.184-1.108.965-1.9 2.266-1.9 1.161 0 2.252.623 2.252 2.053 0 1.246-.864 1.841-2.195 2.705-1.714 1.09-2.634 2.534-2.422 4.715l.008.173a.5.5 0 00.5.478h3a.5.5 0 00.5-.5v-.18c0-1.514.665-1.953 2.322-3.072 1.374-.934 2.86-2.025 2.86-4.545 0-3.569-3.002-5.325-6.556-5.325-3.361 0-6.618 1.557-6.703 5.411zm3.432 12.247c0 1.388 1.09 2.322 2.776 2.322 1.741 0 2.817-.934 2.817-2.322 0-1.416-1.09-2.35-2.817-2.35-1.7 0-2.776.934-2.776 2.35z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconQuestionMarkBold);\n","import * as React from 'react';\nfunction IconQuestionMark(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 14.489c.5 0 .838-.302.832-.764v-1.998c.052-.665.604-.8 1.548-1.413C15.415 9.649 16 8.885 16 7.78 16 6.011 14.077 5 12.139 5c-.822 0-1.831.145-2.639.466a3.39 3.39 0 00-.803.438 1.94 1.94 0 00-.317.3c-.076.09-.14.188-.189.29a1.904 1.904 0 00-.132.356c-.04.153-.059.304-.059.448a.65.65 0 00.022.173c.076.335.34.55.748.55a.806.806 0 00.792-.55c.278-.902 1.709-1.078 2.502-1.078.96 0 2.183.555 2.183 1.405 0 .764-.44 1.163-1.268 1.706-.856.573-1.848 1.137-1.848 2.074v2.147c0 .492.369.764.869.764zM12 19c.579 0 1.047-.457 1.047-1.018 0-.566-.468-1.012-1.047-1.012-.573 0-1.042.446-1.042 1.012 0 .561.47 1.018 1.042 1.018z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconQuestionMark);\n","import * as React from 'react';\nfunction IconQuicklinks(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M7.102 11.125c.753 0 1.472.295 2.007.817l.142.148 4.806 5.407c.183.206.434.337.705.37l.136.008h3.416L17.22 16.78l-.073-.084a.75.75 0 011.05-1.049l.083.073 2.5 2.5a.753.753 0 01.097.118l.053.094.028.07.023.08.013.075.006.102-.002.042-.009.075-.027.111-.043.102-.038.066-.027.04-.035.043-.039.042-2.5 2.5-.084.073a.75.75 0 01-1.049-1.05l.073-.083 1.095-1.096-3.417.001a2.875 2.875 0 01-2.007-.817l-.142-.148-4.806-5.407a1.125 1.125 0 00-.705-.37l-.136-.008H3.75a.875.875 0 01-.11-1.743l.11-.007h3.352zm11.094-8.978l.084.073 2.5 2.5a.63.63 0 01.101.125l.049.088.043.119.021.106.004.042.002.069-.006.073-.013.076-.023.08-.047.107-.058.091-.073.084-2.5 2.5a.75.75 0 01-1.133-.976l.073-.084 1.095-1.096-3.426.001-.136.008c-.223.027-.433.12-.603.268l-.096.095-2.905 3.215-.085.083a.875.875 0 01-1.287-1.162l.074-.094 2.904-3.215.141-.146a2.875 2.875 0 011.79-.795l.203-.007 3.424-.001L17.22 3.28a.75.75 0 01.976-1.133z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconQuicklinks);\n","import * as React from 'react';\nfunction IconRatingBankruptcy(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2zm.035 4.982c-.264 0-.533.13-.533.51v.41C9.92 8.05 8.9 8.998 8.9 10.352c0 1.135.646 1.88 1.926 2.202l1.309.288c.844.181 1.178.44 1.178.879 0 .562-.446.931-1.272.931-.592 0-1.166-.246-1.687-.72-.334-.282-.545-.364-.803-.364-.416 0-.75.258-.75.715 0 .352.187.692.515.99.487.452 1.272.727 2.163.803v.358c0 .375.275.51.539.51.263 0 .533-.135.533-.51v-.37c1.64-.193 2.666-1.154 2.666-2.543 0-1.143-.66-1.862-1.997-2.176l-1.314-.273c-.744-.146-1.084-.427-1.084-.867 0-.492.44-.885 1.131-.885.586 0 1.008.188 1.506.662.293.252.533.364.85.364.369 0 .673-.27.673-.657 0-.328-.175-.673-.503-.984-.434-.422-1.131-.691-1.91-.79v-.423c0-.375-.27-.51-.534-.51z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRatingBankruptcy);\n","import * as React from 'react';\nfunction IconRatingPaymentProblems(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M21.25 11.25A.75.75 0 0122 12c0 5.523-4.477 10-10 10a9.986 9.986 0 01-7.638-3.545l-.038 1.071a.75.75 0 01-1.496.05l-.003-.102.099-2.827a.75.75 0 01.775-.723l2.827.098a.75.75 0 01.05 1.496l-.102.004-.966-.034A8.5 8.5 0 0020.5 12a.75.75 0 01.75-.75zm-9.215-4.268c.237 0 .48.11.526.405l.007.105v.422c.78.1 1.477.37 1.91.791.329.31.504.656.504.984 0 .387-.304.657-.673.657-.317 0-.557-.112-.85-.364-.498-.474-.92-.662-1.506-.662-.691 0-1.13.393-1.13.885 0 .406.289.677.919.831l.164.036 1.108.229c1.476.287 2.203 1.02 2.203 2.22 0 1.331-.942 2.27-2.464 2.515l-.202.028v.37c0 .375-.27.51-.533.51-.238 0-.485-.11-.532-.405l-.007-.105v-.358c-.891-.076-1.676-.351-2.163-.803-.328-.298-.515-.638-.515-.99 0-.457.334-.715.75-.715.258 0 .469.082.803.364.521.474 1.095.72 1.687.72.826 0 1.271-.369 1.271-.931 0-.41-.29-.662-1.015-.842l-.162-.037-1.102-.24c-1.418-.293-2.133-1.055-2.133-2.25 0-1.298.937-2.223 2.407-2.427l.195-.023v-.41c0-.38.27-.51.533-.51zM12 2c3 0 5.77 1.332 7.639 3.545l.037-1.071a.75.75 0 011.496-.05l.003.102-.099 2.827a.75.75 0 01-.674.72l-.101.003-2.827-.098a.75.75 0 01-.05-1.496l.102-.004.966.034A8.5 8.5 0 003.5 12 .75.75 0 112 12C2 6.477 6.477 2 12 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRatingPaymentProblems);\n","import * as React from 'react';\nfunction IconReconciled(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M17 7a5 5 0 01.217 9.995L17 17h-2.5a.75.75 0 01-.102-1.493l.102-.007H17a3.5 3.5 0 00.192-6.995L17 8.5h-2.5a.75.75 0 01-.102-1.493L14.5 7H17zM9.5 7a.75.75 0 01.102 1.493L9.5 8.5H7a3.5 3.5 0 00-.192 6.995L7 15.5h2.5a.75.75 0 01.102 1.493L9.5 17H7a5 5 0 01-.217-9.995L7 7h2.5zm7.5 4.25a.75.75 0 110 1.5H7a.75.75 0 110-1.5h10z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconReconciled);\n","import * as React from 'react';\nfunction IconRefresh(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12.268 21.246L12 21.25l-.323-.006-.32-.016-.3-.025-.329-.04a9.166 9.166 0 01-2.067-.534l-.288-.117-.353-.16-.237-.117-.358-.193-.385-.233-.263-.173-.3-.215-.23-.177-.238-.196-.356-.319a9.308 9.308 0 01-.345-.343l-.151-.162a9.197 9.197 0 01-1.662-2.58l-.126-.311-.134-.372-.087-.268-.08-.285A9.229 9.229 0 012.75 12c0-.893.127-1.757.363-2.574l.137-.431.077-.218.169-.421a9.17 9.17 0 01.768-1.431l.171-.25c.213-.303.447-.595.701-.876l.168-.18c.174-.183.356-.36.545-.528l.197-.17.345-.278.328-.239.302-.202.117-.072a8.88 8.88 0 01.664-.375l.484-.23.37-.152.427-.153.353-.11.263-.071.145-.036A9.232 9.232 0 0112 2.75l.24.003.317.014.389.031.284.033.487.079.43.091.287.073.39.116.293.099.336.127.17.07.379.172.259.129.25.135.416.248.255.166a9.12 9.12 0 011.14.911V3.222a.75.75 0 01.638-.742l.111-.008a.75.75 0 01.742.639l.008.11v3.83a.75.75 0 01-.64.741l-.11.008h-3.828a.75.75 0 01-.111-1.492l.11-.008h2.009l-.197-.177-.22-.182-.131-.102-.2-.147-.225-.156-.235-.15-.236-.139-.149-.081-.222-.115-.268-.126-.121-.053a7.709 7.709 0 00-1.013-.352l-.263-.067-.258-.055-.262-.047-.278-.04-.349-.036-.353-.02L12 4.25l-.183.002-.376.018-.294.026-.248.032-.335.055-.344.073-.243.061-.202.058a7.72 7.72 0 00-.54.183l-.282.114-.204.09-.317.156-.24.13a7.755 7.755 0 00-.629.397l-.383.285-.21.174-.075.064a7.796 7.796 0 00-.195.178l-.18.174-.239.25-.175.198-.152.184a7.778 7.778 0 00-.59.84l-.174.305-.116.222-.112.232a7.079 7.079 0 00-.15.346l-.11.29-.122.368-.046.16c-.084.304-.15.612-.197.923l-.05.409.01-.098c-.05.453-.06.91-.03 1.364l.024.285c.031.307.081.611.15.913l.073.3.058.204c.072.245.157.486.255.724l.085.2c.05.112.102.223.156.332l.091.175.137.245.148.246.058.088a7.766 7.766 0 00.436.604l.141.173.093.107.174.191.174.18.18.175.246.22.324.264.349.255.123.083.24.151.2.118.259.14.257.128.33.146.24.095c.195.073.393.139.594.196l.359.094.136.03.124.026.297.053.329.045.246.024.097.008c.091.006.183.011.275.014l.275.005A7.75 7.75 0 0019.75 12a.75.75 0 111.5 0 9.25 9.25 0 01-8.982 9.246z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRefresh);\n","import * as React from 'react';\nfunction IconReportSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.5 12a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6a1 1 0 011-1h2.5zm6.75-5a1 1 0 011 1v11a1 1 0 01-1 1h-2.5a1 1 0 01-1-1V8a1 1 0 011-1h2.5zM20 4a1 1 0 011 1v14a1 1 0 01-1 1h-2.5a1 1 0 01-1-1V5a1 1 0 011-1H20z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconReportSolid);\n","import * as React from 'react';\nfunction IconReport(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M6.25 12c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 016.25 20h-1.5A1.75 1.75 0 013 18.25v-4.5c0-.966.784-1.75 1.75-1.75h1.5zm6.5-5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0112.75 20h-1.5a1.75 1.75 0 01-1.75-1.75v-9.5c0-.966.784-1.75 1.75-1.75h1.5zm6.5-3c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0119.25 20h-1.5A1.75 1.75 0 0116 18.25V5.75c0-.966.784-1.75 1.75-1.75h1.5zm-13 9.5h-1.5a.25.25 0 00-.243.193l-.007.057v4.5a.25.25 0 00.193.243l.057.007h1.5a.25.25 0 00.243-.193l.007-.057v-4.5a.25.25 0 00-.193-.243L6.25 13.5zm6.5-5h-1.5a.25.25 0 00-.243.193L11 8.75v9.5a.25.25 0 00.193.243l.057.007h1.5a.25.25 0 00.243-.193L13 18.25v-9.5a.25.25 0 00-.193-.243L12.75 8.5zm6.5-3h-1.5a.25.25 0 00-.243.193l-.007.057v12.5a.25.25 0 00.193.243l.057.007h1.5a.25.25 0 00.243-.193l.007-.057V5.75a.25.25 0 00-.193-.243L19.25 5.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconReport);\n","import * as React from 'react';\nfunction IconRestore(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18 9.25a.75.75 0 01.743.648l.007.102v8.25a3.75 3.75 0 01-3.55 3.745L15 22h-5a3.75 3.75 0 01-3.745-3.55l-.005-.2V10a.75.75 0 01.648-.743L7 9.25h11zm-.75 1.5h-9.5v7.5a2.25 2.25 0 001.938 2.229l.158.016.154.005h5a2.25 2.25 0 002.245-2.096l.005-.154v-7.5zm-6.75 1.5a.75.75 0 01.743.648l.007.102v5.25a.75.75 0 01-1.493.102l-.007-.102V13a.75.75 0 01.75-.75zm4 0a.75.75 0 01.743.648l.007.102v5.25a.75.75 0 01-1.493.102l-.007-.102V13a.75.75 0 01.75-.75zm2.372-9.849a3.847 3.847 0 012.03 4.45l2.668 1.302a.75.75 0 01-.563 1.386l-.094-.038L9.086 3.732a.75.75 0 01.563-1.386l.094.038 2.373 1.157a3.847 3.847 0 014.756-1.14zM3 4.25a.75.75 0 01.743.648L3.75 5v.63c2.434-1.684 5.714-1.245 7.542 1.11a.75.75 0 11-1.185.919C8.819 6 6.547 5.647 4.777 6.749l.723.001a.75.75 0 01.743.648l.007.102a.75.75 0 01-.648.743L5.5 8.25H3a.75.75 0 01-.743-.648L2.25 7.5V5A.75.75 0 013 4.25zm10.507-.031l4.005 1.953a2.347 2.347 0 00-4.005-1.953z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRestore);\n","import * as React from 'react';\nfunction IconRotateLeft(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2.75a9.25 9.25 0 016.54 15.79.75.75 0 11-1.06-1.06 7.75 7.75 0 10-13.224-5.797l.714-.713.084-.073a.75.75 0 011.049 1.05l-.073.083-2 2-.084.073a.75.75 0 01-.882.007l-.094-.08-2-2-.073-.084a.75.75 0 01-.007-.882l.08-.094.084-.073a.75.75 0 01.882-.007l.094.08.725.724A9.25 9.25 0 0112 2.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRotateLeft);\n","import * as React from 'react';\nfunction IconRotateRight(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 2.75a9.25 9.25 0 019.245 8.944l.725-.724a.75.75 0 01.976-.073l.084.073a.75.75 0 01.073.976l-.073.084-2 2a.75.75 0 01-.976.073l-.084-.073-2-2a.75.75 0 01.976-1.133l.084.073.714.712A7.75 7.75 0 106.52 17.48a.75.75 0 11-1.06 1.06A9.25 9.25 0 0112 2.75z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconRotateRight);\n","import * as React from 'react';\nfunction IconSales(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12.021 23.316c.594 0 1.121-.33 1.121-1.12V21.14c3.546-.382 5.761-2.465 5.761-5.498 0-2.61-1.569-4.192-4.825-4.904l-2.676-.606C9.727 9.763 8.91 8.999 8.91 7.878c0-1.344 1.16-2.32 2.98-2.32 1.476 0 2.504.5 3.651 1.78.58.606 1.029.83 1.635.83.738 0 1.305-.514 1.305-1.279 0-.738-.435-1.542-1.173-2.267-.976-.923-2.439-1.53-4.087-1.74V1.787c0-.777-.527-1.107-1.134-1.107-.593 0-1.12.316-1.12 1.107v1.055c-3.415.317-5.59 2.36-5.59 5.287 0 2.557 1.569 4.258 4.575 4.93l2.676.62c1.951.461 2.755 1.147 2.755 2.307 0 1.503-1.173 2.452-3.27 2.452-1.568 0-2.873-.593-4.06-1.872-.672-.672-1.041-.817-1.542-.817-.805 0-1.411.514-1.411 1.397 0 .778.448 1.582 1.252 2.281 1.055.962 2.703 1.556 4.536 1.727v1.042c0 .79.527 1.12 1.133 1.12z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSales);\n","import * as React from 'react';\nfunction IconSearchBold(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M9.75 2a7.75 7.75 0 016.292 12.275l5.592 5.591a1.25 1.25 0 01-1.666 1.859l-.102-.091-5.59-5.592A7.75 7.75 0 119.75 2zm0 2.5a5.25 5.25 0 100 10.5 5.25 5.25 0 000-10.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSearchBold);\n","import * as React from 'react';\nfunction IconSearch(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10 2.25a7.75 7.75 0 015.985 12.674l5.545 5.546a.75.75 0 01-.976 1.133l-.084-.073-5.546-5.545A7.75 7.75 0 1110 2.25zm0 1.5a6.25 6.25 0 100 12.5 6.25 6.25 0 000-12.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSearch);\n","import * as React from 'react';\nfunction IconSecureTick(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12.01 2.25a.75.75 0 01.665.402c.72 1.376 3.174 2.323 7.389 2.683a.75.75 0 01.686.748c0 7.747-1.54 11.378-5.945 14.213l-.502.312-.525.306a26.51 26.51 0 01-.834.452l-.29.148-.323.16a.75.75 0 01-.654.003c-6.293-3-8.427-6.542-8.427-15.594a.75.75 0 01.686-.748c4.215-.36 6.67-1.307 7.389-2.683a.75.75 0 01.56-.395l.126-.007zM12 4.245l-.064.067C10.702 5.54 8.479 6.317 5.277 6.705l-.523.058.01.54c.012.53.033 1.039.063 1.525l.052.713c.472 5.577 2.312 8.141 6.618 10.372l.272.139.228.113.262-.133c4.685-2.43 6.538-5.033 6.915-11.21l.038-.743.025-.778.007-.402.001-.136-.522-.058c-3.068-.372-5.238-1.1-6.5-2.242l-.159-.15L12 4.244zm4.903 4.104l.077.067a.75.75 0 01.067.984l-.067.077-5.52 5.52-3.382-3.38a.75.75 0 01.984-1.129l.076.067 2.32 2.322 4.461-4.46a.75.75 0 01.984-.068z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSecureTick);\n","import * as React from 'react';\nfunction IconSecure(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12.01 2.25a.75.75 0 01.665.402c.72 1.376 3.174 2.323 7.389 2.683a.75.75 0 01.686.748c0 7.747-1.54 11.378-5.945 14.213l-.502.312-.525.306a26.51 26.51 0 01-.834.452l-.29.148-.323.16a.75.75 0 01-.654.003c-6.293-3-8.427-6.542-8.427-15.594a.75.75 0 01.686-.748c4.215-.36 6.67-1.307 7.389-2.683a.75.75 0 01.56-.395l.126-.007zM12 4.245l-.064.067C10.702 5.54 8.479 6.317 5.277 6.705l-.523.058.01.54c.012.53.033 1.039.063 1.525l.052.713c.472 5.577 2.312 8.141 6.618 10.372l.272.139.228.113.262-.133c4.685-2.43 6.538-5.033 6.915-11.21l.038-.743.025-.778.007-.402.001-.136-.522-.058c-3.068-.372-5.238-1.1-6.5-2.242l-.159-.15L12 4.244zM12 8l.15.005a2 2 0 01.98 3.645L14 16h-4l.87-4.35a2 2 0 01.982-3.644L11.999 8z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSecure);\n","import * as React from 'react';\nfunction IconSettingsSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13 2a1 1 0 011 1v1.77a7.44 7.44 0 011.698.703l1.252-1.251a1 1 0 011.414 0l1.414 1.414a1 1 0 010 1.414l-1.251 1.252c.3.53.538 1.099.703 1.698H21a1 1 0 011 1v2a1 1 0 01-1 1h-1.77a7.454 7.454 0 01-.703 1.698l1.251 1.252a1 1 0 010 1.414l-1.414 1.414a1 1 0 01-1.414 0l-1.252-1.251a7.47 7.47 0 01-1.697.703L14 21a1 1 0 01-1 1h-2a1 1 0 01-1-1v-1.77a7.454 7.454 0 01-1.698-.703L7.05 19.778a1 1 0 01-1.414 0l-1.414-1.414a1 1 0 010-1.414l1.251-1.252A7.454 7.454 0 014.77 14H3a1 1 0 01-1-1v-2a1 1 0 011-1h1.77a7.44 7.44 0 01.703-1.698L4.222 7.05a1 1 0 010-1.414l1.414-1.414a1 1 0 011.414 0l1.252 1.251c.53-.3 1.099-.538 1.698-.703V3a1 1 0 011-1h2zm-1 6a4 4 0 100 8 4 4 0 000-8z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSettingsSolid);\n","import * as React from 'react';\nfunction IconSettings(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.056 2c.918 0 1.67.707 1.744 1.606l.006.144v.787l.243.093.154.063.093.042.554-.553a1.75 1.75 0 012.217-.212l.133.1.125.113 1.492 1.492a1.75 1.75 0 01.114 2.35l-.113.125-.524.523.046.1.068.156.064.157.039.108h.74a1.75 1.75 0 011.725 1.459l.018.148.006.143v2.112a1.75 1.75 0 01-1.606 1.744l-.144.006h-.739l-.04.108-.063.158-.068.156-.047.098.524.524c.553.551.663 1.389.29 2.08l-.08.136-.095.131-.115.128-1.492 1.492c-.59.59-1.502.676-2.216.21l-.131-.095-.128-.115-.554-.554-.093.043-.154.064-.243.092v.789a1.752 1.752 0 01-1.459 1.725l-.148.018-.143.006h-2.111A1.75 1.75 0 019.2 20.393l-.006-.143v-.848l-.08-.03-.148-.06-.214-.097-.602.603a1.75 1.75 0 01-2.217.212l-.133-.1-.125-.113-1.492-1.492a1.75 1.75 0 01-.114-2.35l.114-.125.632-.634-.09-.204-.079-.206h-.897a1.752 1.752 0 01-1.725-1.459l-.018-.148L2 13.056v-2.112A1.75 1.75 0 013.606 9.2l.144-.006h.896l.08-.206.089-.205-.632-.633a1.75 1.75 0 01-.213-2.217l.099-.133.114-.125 1.492-1.492c.59-.59 1.502-.676 2.216-.21l.131.095.128.115.602.601.214-.095.149-.062.079-.03V3.75c0-.791.528-1.469 1.294-1.684l.146-.035.151-.023.16-.008h2.111zm-2.069 1.499l-.073.003a.25.25 0 00-.212.186l-.007.062v1.377a.75.75 0 01-.528.717c-.417.129-.818.3-1.2.51a.75.75 0 01-.809-.054l-.083-.071-.952-.954-.058-.053a.25.25 0 00-.27-.023l-.059.044-1.493 1.493a.25.25 0 00-.04.3l.04.054 1.009 1.008a.75.75 0 01.132.883c-.2.375-.361.769-.483 1.177a.75.75 0 01-.61.528l-.108.008H3.75a.25.25 0 00-.243.193l-.007.057v2.11c0 .12.083.22.193.245l.057.007h1.433a.75.75 0 01.719.537c.121.408.283.802.482 1.176a.75.75 0 01-.061.8l-.071.083-1.009 1.008a.25.25 0 00-.04.3l.04.054 1.493 1.493a.25.25 0 00.3.04l.054-.04.985-.986a.75.75 0 01.893-.126c.38.21.782.382 1.199.511a.75.75 0 01.52.609l.008.108v1.377a.25.25 0 00.192.243l.057.007h2.111a.251.251 0 00.244-.193l.007-.057v-1.331a.75.75 0 01.545-.721 6.398 6.398 0 001.247-.503.75.75 0 01.8.06l.083.072.896.898.058.053a.25.25 0 00.27.023l.059-.044 1.462-1.46.052-.057a.25.25 0 00.023-.27l-.044-.06-.907-.905a.75.75 0 01-.126-.894 6.4 6.4 0 00.533-1.269.75.75 0 01.61-.528l.108-.008h1.275a.25.25 0 00.243-.193l.007-.057v-2.111a.25.25 0 00-.193-.244l-.057-.007h-1.275a.75.75 0 01-.718-.536 6.4 6.4 0 00-.533-1.269.75.75 0 01.055-.81l.071-.083.907-.906a.25.25 0 00.04-.3l-.04-.054-1.493-1.493a.25.25 0 00-.3-.04l-.054.04-.93.93a.75.75 0 01-.882.132 6.398 6.398 0 00-1.247-.503.75.75 0 01-.536-.611l-.008-.11-.001-1.33a.251.251 0 00-.194-.244l-.056-.007-2.069-.001zM12 7.533a4.467 4.467 0 110 8.934 4.467 4.467 0 010-8.934zm0 1.5a2.967 2.967 0 100 5.934 2.967 2.967 0 000-5.934z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSettings);\n","import * as React from 'react';\nfunction IconShortcuts(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0120.25 19H3.75A1.75 1.75 0 012 17.25V6.75C2 5.784 2.784 5 3.75 5h16.5zm0 1.5H3.75a.25.25 0 00-.243.193L3.5 6.75v10.5a.25.25 0 00.193.243l.057.007h16.5a.25.25 0 00.243-.193l.007-.057V6.75a.25.25 0 00-.193-.243L20.25 6.5zM6.5 14a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm9 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-7a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h7zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm-12-3a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm-12-3a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1zm3 0a.5.5 0 01.5.5v1a.5.5 0 01-.5.5h-1a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5h1z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconShortcuts);\n","import * as React from 'react';\nfunction IconShowAll(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 6a1.75 1.75 0 011.744 1.606L21 7.75V11h-1.5V7.75l-.007-.057a.25.25 0 00-.175-.184L19.25 7.5H7.75l-.057.007a.25.25 0 00-.184.175L7.5 7.75v11.5l.007.057a.25.25 0 00.175.184l.068.009H11V21H7.75a1.75 1.75 0 01-1.744-1.606L6 19.25V7.75a1.75 1.75 0 011.606-1.744L7.75 6h11.5zm-2-3l.102.007a.75.75 0 010 1.486l-.102.007H4.75l-.057.007a.25.25 0 00-.184.175L4.5 4.75v12.5l-.007.102a.75.75 0 01-1.486 0L3 17.25V4.75l.006-.144a1.75 1.75 0 011.593-1.6L4.75 3h12.5zm-2.5 8.75a3 3 0 100 6 3 3 0 000-6zm0 7.5a4.5 4.5 0 113.632-1.842l.036-.05 2.362 2.362a.75.75 0 01-.976 1.133l-.084-.073-2.363-2.362-.112.077a4.479 4.479 0 01-2.495.755z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconShowAll);\n","import * as React from 'react';\nfunction IconShowLess(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M3.75 4a.75.75 0 01.75.75v14.5a.75.75 0 11-1.5 0V4.75A.75.75 0 013.75 4zm3.5 0a.75.75 0 01.75.75v14.5a.75.75 0 11-1.5 0V4.75A.75.75 0 017.25 4zm7.78 3.97a.75.75 0 01.073.976l-.073.084-2.219 2.22h7.439a.75.75 0 01.102 1.493l-.102.007h-7.439l2.22 2.22a.75.75 0 01-.977 1.133l-.084-.073-3.5-3.5-.055-.06-.046-.065-.049-.088-.044-.12-.018-.089-.007-.143.019-.136.03-.098.047-.1.054-.082.069-.08 3.5-3.5a.75.75 0 011.06 0z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconShowLess);\n","import * as React from 'react';\nfunction IconShowMore(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M3.75 4a.75.75 0 01.75.75v14.5a.75.75 0 11-1.5 0V4.75A.75.75 0 013.75 4zm3.5 0a.75.75 0 01.75.75v14.5a.75.75 0 11-1.5 0V4.75A.75.75 0 017.25 4zm3.5 0a.75.75 0 01.75.75v6.5h6.939l-2.22-2.22a.75.75 0 01.977-1.133l.084.073 3.5 3.5c.025.024.048.05.069.078l-.069-.078.04.042.04.052.068.114.038.098.02.084.012.088v.104l-.003.02-.006.055-.015.07-.024.072-.047.1-.032.051-.027.038-.064.072-3.5 3.5a.75.75 0 01-1.133-.976l.073-.084 2.219-2.22h-6.94l.001 6.5a.75.75 0 11-1.5 0V4.75a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconShowMore);\n","import * as React from 'react';\nfunction IconShowTemplate(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.5 18v2.25a.25.25 0 00.193.243l.057.007H8V22H5.75A1.75 1.75 0 014 20.25V18h1.5zm8.25-5.25a3 3 0 100 6 3 3 0 000-6zm-8.25 0v3.75H4v-3.75h1.5zM20 7.5v3.75h-1.5V7.5H20zm-14.5 0v3.75H4V7.5h1.5zM18.25 2c.966 0 1.75.784 1.75 1.75V6h-1.5V3.75a.25.25 0 00-.193-.243L18.25 3.5 16 3.499V2h2.25zM8 2v1.5H5.75a.25.25 0 00-.243.193L5.5 3.75V6H4V3.75C4 2.784 4.784 2 5.75 2H8zm6.5 0v1.499l-5 .001V2h5zm-.75 18.25a4.5 4.5 0 113.632-1.842l.036-.05 2.362 2.362a.75.75 0 01-.976 1.133l-.084-.073-2.363-2.362-.112.077a4.479 4.479 0 01-2.495.755z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconShowTemplate);\n","import * as React from 'react';\nfunction IconSliders(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M2.5 12.75H7a.75.75 0 110 1.5H5.5v7a.75.75 0 11-1.5 0v-7H2.5a.75.75 0 110-1.5zm9.5-2a.75.75 0 01.75.75v9.75a.75.75 0 11-1.5 0V11.5a.75.75 0 01.75-.75zm9.5 4a.75.75 0 110 1.5H20v5a.75.75 0 11-1.5 0v-5H17a.75.75 0 110-1.5h4.5zM19.25 2a.75.75 0 01.75.75v9.75a.75.75 0 11-1.5 0V2.75a.75.75 0 01.75-.75zM4.75 2a.75.75 0 01.75.75v7.75a.75.75 0 11-1.5 0V2.75A.75.75 0 014.75 2zM12 2a.75.75 0 01.75.75v5h1.5a.75.75 0 110 1.5h-4.5a.75.75 0 010-1.5h1.5v-5A.75.75 0 0112 2z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSliders);\n","import * as React from 'react';\nfunction IconSmartpay(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75V7.5h-5a5 5 0 00-4.995 4.783L11 12.5a5 5 0 004.783 4.995L16 17.5h5v1.75A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm1.5 6c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25H16a3.5 3.5 0 010-7h4.75zM16 11a1.5 1.5 0 100 3 1.5 1.5 0 000-3z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSmartpay);\n","import * as React from 'react';\nfunction IconSortBy(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.25 18a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm12.5-13.5a.75.75 0 01.743.648l.007.102v11.689l2.22-2.22a.75.75 0 011.133.977l-.073.084-3.5 3.5a.753.753 0 01-.125.101l-.088.049-.119.043-.106.021-.041.004-.07.002-.073-.006-.076-.013-.08-.023-.1-.043a.75.75 0 01-.182-.135l-3.5-3.5a.75.75 0 01.976-1.133l.084.073L17 16.939V5.25a.75.75 0 01.75-.75zm-9.5 9a.75.75 0 110 1.5h-5.5a.75.75 0 110-1.5h5.5zm3-4.5a.75.75 0 110 1.5h-8.5a.75.75 0 110-1.5h8.5zm3-4.5a.75.75 0 110 1.5H2.75a.75.75 0 010-1.5h11.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSortBy);\n","import * as React from 'react';\nfunction IconStarSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M8.895 8.726l-6.683.358-.105.012c-.608.114-.833.91-.328 1.319l5.197 4.217-1.725 6.467-.02.098c-.085.616.605 1.08 1.152.725L12 18.28l5.617 3.64.087.05c.56.27 1.214-.242 1.045-.872l-1.726-6.467 5.198-4.217.077-.072c.425-.45.14-1.225-.51-1.26l-6.684-.357L12.7 2.481a.75.75 0 00-1.4 0L8.895 8.726z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconStarSolid);\n","import * as React from 'react';\nfunction IconStar(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M8.895 8.726l-6.683.358-.105.012c-.608.114-.833.91-.328 1.319l5.197 4.217-1.725 6.467-.02.098c-.085.616.605 1.08 1.152.725L12 18.28l5.617 3.64.087.05c.56.27 1.214-.242 1.045-.872l-1.726-6.467 5.198-4.217.077-.072c.425-.45.14-1.225-.51-1.26l-6.684-.357L12.7 2.481a.75.75 0 00-1.4 0L8.895 8.726zM12 4.836l1.88 4.883.046.1a.75.75 0 00.614.38l5.223.278-4.062 3.297-.08.075a.75.75 0 00-.172.7l1.349 5.055-4.39-2.845-.096-.053a.75.75 0 00-.72.053l-4.391 2.845 1.35-5.054.02-.108a.75.75 0 00-.272-.668l-4.063-3.297 5.224-.278a.75.75 0 00.66-.48L12 4.836z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconStar);\n","import * as React from 'react';\nfunction IconSubscriptions(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18.25 2c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0118.25 22H13l-.001-1.5h5.251a.25.25 0 00.243-.193l.007-.057V3.75a.25.25 0 00-.193-.243L18.25 3.5H5.75a.25.25 0 00-.243.193L5.5 3.75 5.499 13H4V3.75C4 2.784 4.784 2 5.75 2h12.5zM4.142 16.956a.5.5 0 01.55-.147l.082.038 2.143 1.237.074.052a.5.5 0 01.147.55l-.038.081-.052.074a.5.5 0 01-.55.147l-.081-.038-.878-.505a2.5 2.5 0 004 1.525.75.75 0 11.925 1.181 4.002 4.002 0 01-6.343-2.173l-.402.695-.052.074a.5.5 0 01-.852-.492l.038-.082 1.238-2.143.051-.074zM8 14a4.001 4.001 0 013.92 3.197l.358-.62a.5.5 0 01.6-.221l.083.038a.5.5 0 01.22.601l-.037.082-1.238 2.143a.5.5 0 01-.6.221l-.083-.038-2.143-1.237a.5.5 0 01.418-.904l.082.038.914.528a2.5 2.5 0 00-4.033-1.798.75.75 0 11-.925-1.181A3.985 3.985 0 018 14zm7.75-1a.75.75 0 110 1.5h-2.5a.75.75 0 110-1.5h2.5zm0-3.5a.75.75 0 110 1.5h-7.5a.75.75 0 110-1.5h7.5zm0-3.5a.75.75 0 110 1.5h-7.5a.75.75 0 010-1.5h7.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSubscriptions);\n","import * as React from 'react';\nfunction IconSystemEntries(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.25 3c.966 0 1.75.784 1.75 1.75v14.5A1.75 1.75 0 0119.25 21H4.75A1.75 1.75 0 013 19.25V4.75C3 3.784 3.784 3 4.75 3h14.5zm.25 3h-15v13.25a.25.25 0 00.193.243l.057.007h14.5a.25.25 0 00.243-.193l.007-.057V6zm-8.75 9.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm-6.5-3.5a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4zm-6.5-3.5a.75.75 0 110 1.5h-4a.75.75 0 010-1.5h4zm6.5 0a.75.75 0 110 1.5h-4a.75.75 0 110-1.5h4z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconSystemEntries);\n","import * as React from 'react';\nfunction IconTag(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10.356 2c.464 0 .909.184 1.237.513l9.92 9.919a1.75 1.75 0 010 2.475l-6.606 6.606a1.75 1.75 0 01-2.475 0l-9.92-9.92A1.75 1.75 0 012 10.356V3.75C2 2.784 2.784 2 3.75 2h6.606zm0 1.5H3.75a.25.25 0 00-.243.193L3.5 3.75v6.606a.25.25 0 00.033.125l.04.051 9.92 9.92a.25.25 0 00.3.04l.053-.04 6.606-6.606a.25.25 0 00.04-.3l-.04-.053-9.92-9.92a.25.25 0 00-.111-.064l-.065-.009zm1.57 5.394c.365-.007.652.086.852.287.256.255.225.645-.02.89-.215.215-.453.322-.78.366-.512.07-.826.211-1.13.515-.335.335-.335.742-.114.963.203.203.484.176.923-.106l.123-.084.715-.5c1.04-.729 1.934-.732 2.666 0 .809.809.81 1.956.044 3.041l-.12.163.155.155c.238.238.128.494-.02.642-.14.14-.364.246-.581.093l-.072-.062-.145-.145c-.615.532-1.285.857-1.858.87-.349.004-.642-.082-.85-.29-.306-.307-.244-.714.042-1 .145-.146.32-.24.605-.301l.151-.028c.529-.08.991-.293 1.271-.573.425-.425.46-.818.197-1.08-.193-.194-.473-.155-.963.148l-.139.09-.71.476c-1.05.711-1.938.694-2.677-.045-.789-.79-.783-1.929-.026-2.957l.12-.154-.204-.203c-.242-.242-.121-.494.03-.646.138-.137.353-.246.57-.09l.073.062.214.214c.546-.435 1.14-.704 1.657-.71zM6.042 6.043a1 1 0 111.414 1.414 1 1 0 01-1.414-1.414z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTag);\n","import * as React from 'react';\nfunction IconTemplateOverride(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.5 20.5V22h-5v-1.5h5zm-9-2.5v2.25a.25.25 0 00.193.243l.057.007H8V22H5.75A1.75 1.75 0 014 20.25V18h1.5zM20 18v2.25A1.75 1.75 0 0118.25 22H16v-1.5h2.25a.25.25 0 00.243-.193l.007-.057V18H20zm0-5.25v3.75h-1.5v-3.75H20zm-14.5 0v3.75H4v-3.75h1.5zM20 7.5v3.75h-1.5V7.5H20zM4 11.25V7.5h9.25a.75.75 0 01.75.75v2.25a.75.75 0 01-.75.75H4zM18.25 2c.966 0 1.75.784 1.75 1.75V6h-1.5V3.75a.25.25 0 00-.193-.243L18.25 3.5 16 3.499V2h2.25zM8 2v1.5H5.75a.25.25 0 00-.243.193L5.5 3.75V6H4V3.75C4 2.784 4.784 2 5.75 2H8zm6.5 0v1.499l-5 .001V2h5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTemplateOverride);\n","import * as React from 'react';\nfunction IconTemplates(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.5 20.5V22h-5v-1.5h5zm-9-2.5v2.25a.25.25 0 00.193.243l.057.007H8V22H5.75A1.75 1.75 0 014 20.25V18h1.5zM20 18v2.25A1.75 1.75 0 0118.25 22H16v-1.5h2.25a.25.25 0 00.243-.193l.007-.057V18H20zm0-5.25v3.75h-1.5v-3.75H20zm-14.5 0v3.75H4v-3.75h1.5zM12.25 14a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zm0-4a.75.75 0 110 1.5h-3.5a.75.75 0 110-1.5h3.5zM20 7.5v3.75h-1.5V7.5H20zm-14.5 0v3.75H4V7.5h1.5zM15.25 6a.75.75 0 110 1.5h-6.5a.75.75 0 010-1.5h6.5zm3-4c.966 0 1.75.784 1.75 1.75V6h-1.5V3.75a.25.25 0 00-.193-.243L18.25 3.5 16 3.499V2h2.25zM8 2v1.5H5.75a.25.25 0 00-.243.193L5.5 3.75V6H4V3.75C4 2.784 4.784 2 5.75 2H8zm6.5 0v1.499l-5 .001V2h5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTemplates);\n","import * as React from 'react';\nfunction IconThumbBoth(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M18 11.25a1.75 1.75 0 011.744 1.606l.006.144v4.586c0 .406-.141.797-.396 1.109l-.117.128-3.304 3.305a1.25 1.25 0 01-2.114-1.11l.032-.133.642-2.135H12.5a1.75 1.75 0 01-1.726-1.458l-.018-.148L10.75 17c0-.173.026-.345.076-.51l.059-.163 1.666-4a1.75 1.75 0 011.465-1.07l.15-.007H18zm0 1.5h-3.833a.25.25 0 00-.202.102l-.03.052-1.666 4a.25.25 0 00.174.34l.057.006h2.866a.85.85 0 01.838.99l-.024.104-.606 2.023 2.603-2.604a.25.25 0 00.064-.112l.009-.065V13a.25.25 0 00-.193-.243L18 12.75zm4-1.5c.513 0 .94.441.994 1.003l.006.122v4.5c0 .619-.45 1.125-1 1.125-.513 0-.94-.441-.994-1.003L21 16.875v-4.5c0-.619.45-1.125 1-1.125zM2 6c.513 0 .94.441.994 1.003L3 7.125v4.5c0 .619-.45 1.125-1 1.125-.513 0-.94-.441-.994-1.003L1 11.625v-4.5C1 6.506 1.45 6 2 6zm6.067-4.128a1.25 1.25 0 012.114 1.11l-.032.133-.642 2.135H11.5c.867 0 1.587.63 1.726 1.458l.018.148.006.144c0 .173-.026.345-.076.51l-.059.163-1.666 4a1.75 1.75 0 01-1.465 1.07l-.15.007H6a1.75 1.75 0 01-1.744-1.606L4.25 11V6.414c0-.406.141-.797.396-1.109l.117-.128 3.304-3.305zm.359 1.761L5.823 6.237a.25.25 0 00-.064.112l-.009.065V11a.25.25 0 00.193.243L6 11.25h3.833a.25.25 0 00.202-.102l.03-.052 1.666-4a.25.25 0 00-.174-.34L11.5 6.75H8.634c-.123-.006-.123-.006-.244-.036a.85.85 0 01-.594-.954l.024-.104.606-2.023z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconThumbBoth);\n","import * as React from 'react';\nfunction IconThumbDownSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.839 4c.935 0 1.709.754 1.784 1.705l.006.152v9.277c0 .438-.149.86-.414 1.19l-.105.12-4.96 5.144a1.298 1.298 0 01-1.888.01 1.427 1.427 0 01-.389-1.118l.022-.155.85-4.253H4.687c-1.868 0-3.145-1.925-2.531-3.719l.06-.163 2.919-7.066c.266-.63.84-1.06 1.495-1.117L6.782 4h8.057zm5.37 0c.936 0 1.71.754 1.785 1.705l.006.152v7.43c0 1.02-.806 1.856-1.79 1.856-.936 0-1.71-.754-1.785-1.705l-.006-.152V5.857c0-1.021.806-1.857 1.79-1.857z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconThumbDownSolid);\n","import * as React from 'react';\nfunction IconThumbDown(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.839 4c.935 0 1.709.754 1.784 1.705l.006.152v9.277c0 .438-.149.86-.414 1.19l-.105.12-4.96 5.144a1.298 1.298 0 01-1.888.01 1.427 1.427 0 01-.389-1.118l.022-.155.85-4.253H4.687c-1.868 0-3.145-1.925-2.531-3.719l.06-.163 2.919-7.066c.266-.63.84-1.06 1.495-1.117L6.782 4h8.057zm0 1.5H6.782a.284.284 0 00-.223.129l-.038.067-2.916 7.062c-.34.83.192 1.728.97 1.808l.112.006h6.888l-1.114 5.57 4.569-4.74a.373.373 0 00.092-.19l.007-.078V5.857c0-.18-.112-.318-.237-.35L14.84 5.5zm5.37-1.5c.936 0 1.71.754 1.785 1.705l.006.152v7.43c0 1.02-.806 1.856-1.79 1.856-.936 0-1.71-.754-1.785-1.705l-.006-.152V5.857c0-1.021.806-1.857 1.79-1.857z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconThumbDown);\n","import * as React from 'react';\nfunction IconThumbUpSolid(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12.85 2.412a1.298 1.298 0 011.888-.01c.287.298.425.705.389 1.118l-.022.155-.85 4.253h5.058c1.868 0 3.145 1.925 2.531 3.719l-.06.163-2.919 7.066a1.811 1.811 0 01-1.495 1.117l-.152.007H9.161c-.935 0-1.709-.754-1.784-1.705l-.006-.152V8.866c0-.438.149-.86.414-1.19l.105-.12 4.96-5.144zM3.79 8.857c.936 0 1.71.754 1.785 1.705l.006.152v7.429C5.58 19.164 4.775 20 3.79 20c-.936 0-1.71-.754-1.785-1.705L2 18.143v-7.43c0-1.02.806-1.856 1.79-1.856z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconThumbUpSolid);\n","import * as React from 'react';\nfunction IconThumbUp(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M14.738 2.403c.287.297.425.704.389 1.117l-.022.155-.85 4.253h5.058c1.868 0 3.145 1.925 2.531 3.719l-.06.163-2.919 7.066a1.811 1.811 0 01-1.495 1.117l-.152.007H9.161c-.935 0-1.709-.754-1.784-1.705l-.006-.152V8.866c0-.438.149-.86.414-1.19l.105-.12 4.96-5.144a1.298 1.298 0 011.888-.01zM3.79 8.857c.936 0 1.71.754 1.785 1.705l.006.152v7.429C5.58 19.164 4.775 20 3.79 20c-.936 0-1.71-.754-1.785-1.705L2 18.143v-7.43c0-1.02.806-1.856 1.79-1.856zm9.749-4.999L8.97 8.598a.373.373 0 00-.092.19l-.007.078v9.277c0 .18.112.318.237.35l.053.007h8.057c.08 0 .166-.047.223-.129l.038-.067 2.916-7.062c.34-.83-.192-1.728-.97-1.808l-.112-.006h-6.888l1.114-5.57z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconThumbUp);\n","import * as React from 'react';\nfunction IconTickBold(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M18.832 4.752a1.5 1.5 0 01.416 2.08l-8 12a1.5 1.5 0 01-2.496 0l-4-6a1.5 1.5 0 112.496-1.664L10 15.296l6.752-10.128a1.5 1.5 0 012.08-.416z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTickBold);\n","import * as React from 'react';\nfunction IconTick(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.867 6.097a.75.75 0 011.318.708l-.052.098-7 11a.75.75 0 01-1.145.145l-.074-.08-4-5A.75.75 0 017.01 11.95l.076.081 3.344 4.181 6.437-10.115z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTick);\n","import * as React from 'react';\nfunction IconTime(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M16.5 16c2.434 0 3.88 1.316 4.34 3.95A1.75 1.75 0 0119.116 22h-5.232a1.75 1.75 0 01-1.724-2.05c.46-2.634 1.906-3.95 4.34-3.95zM12 2c5.523 0 10 4.477 10 10a9.96 9.96 0 01-1.005 4.374 5.097 5.097 0 00-1.182-1.017A8.488 8.488 0 0020.5 12a8.5 8.5 0 10-9.996 8.369c.02.578.196 1.118.487 1.58C5.942 21.444 2 17.183 2 12 2 6.477 6.477 2 12 2zm4.5 8.5c1.105 0 2 1.12 2 2.5s-.895 2.5-2 2.5-2-1.12-2-2.5.895-2.5 2-2.5zM12 5.25a.75.75 0 01.743.648L12.75 6v6a.75.75 0 01-.648.743L12 12.75H7.5a.75.75 0 01-.102-1.493l.102-.007h3.75V6a.75.75 0 01.75-.75z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTime);\n","import * as React from 'react';\nfunction IconTransferCancel(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n d=\"M18.804 15.647a.75.75 0 011.049 1.05l-.073.083-1.969 1.97 1.97 1.97a.75.75 0 01-.977 1.133l-.084-.073-1.97-1.969-1.97 1.97-.084.072a.75.75 0 01-1.049-1.05l.073-.083 1.969-1.97-1.97-1.97a.75.75 0 01.977-1.133l.084.073 1.97 1.969 1.97-1.97.084-.072z\"\n fill=\"#CF3C16\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M5.5 16.5v3.75a.25.25 0 00.193.243l.057.007H12V22H5.75A1.75 1.75 0 014 20.25V16.5h1.5zm2.946-6.103l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.719-1.72H2.75a.75.75 0 01-.102-1.493l.102-.007h6.439l-1.72-1.72a.75.75 0 01-.072-.976l.073-.084a.75.75 0 01.976-.073zM13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V14h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v7.75H4V3.75C4 2.784 4.784 2 5.75 2h7.836zm.914 2.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n}\nexport default React.forwardRef(IconTransferCancel);\n","import * as React from 'react';\nfunction IconTransferLocked(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M5.5 16.5v3.75a.25.25 0 00.193.243l.057.007h4.75V22H5.75A1.75 1.75 0 014 20.25V16.5h1.5zM16 12a3 3 0 013 3v1a1 1 0 011 1v4a1 1 0 01-1 1h-6a1 1 0 01-1-1v-4a1 1 0 011-1v-1a3 3 0 013-3zm0 5.5a1 1 0 00-.5 1.866V20a.5.5 0 00.992.09L16.5 20l.001-.634A1 1 0 0016 17.5zm-7.554-7.103l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.719-1.72H2.75a.75.75 0 01-.102-1.493l.102-.007h6.439l-1.72-1.72a.75.75 0 01-.072-.976l.073-.084a.75.75 0 01.976-.073zM16 13.5a1.5 1.5 0 00-1.493 1.356L14.5 15v1h3v-1a1.5 1.5 0 00-1.356-1.493L16 13.5zM13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V11.5h-1.5V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v7.75H4V3.75C4 2.784 4.784 2 5.75 2h7.836zm.914 2.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTransferLocked);\n","import * as React from 'react';\nfunction IconTransfer(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13.586 2a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V20.25A1.75 1.75 0 0118.25 22H5.75A1.75 1.75 0 014 20.25V16.5h1.5v3.75a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V9h-3.75a1.75 1.75 0 01-1.744-1.606L13 7.25V3.5H5.75a.25.25 0 00-.243.193L5.5 3.75v7.75H4V3.75C4 2.784 4.784 2 5.75 2h7.836zm-5.14 8.397l.084.073 3 3a.75.75 0 01.073.976l-.073.084-3 3a.75.75 0 01-1.133-.976l.073-.084 1.719-1.72H2.75a.75.75 0 01-.102-1.493l.102-.007h6.439l-1.72-1.72a.75.75 0 01-.072-.976l.073-.084a.75.75 0 01.976-.073zM14.5 4.621V7.25a.25.25 0 00.193.243l.057.007h2.63L14.5 4.621z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconTransfer);\n","import * as React from 'react';\nfunction IconUndo(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path d=\"M6.75 4.75l-4 4 4 4\" stroke=\"currentColor\" strokeWidth={1.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n d=\"M3 8.75h13c2.9 0 5.25 2.35 5.25 5.25v0c0 2.9-2.35 5.25-5.25 5.25h-5.5\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconUndo);\n","import * as React from 'react';\nfunction IconUndock(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M12 5v1.5H4.75a.25.25 0 00-.243.193L4.5 6.75v12.5a.25.25 0 00.193.243l.057.007h12.5a.25.25 0 00.243-.193l.007-.057V12H19v7.25A1.75 1.75 0 0117.25 21H4.75A1.75 1.75 0 013 19.25V6.75C3 5.784 3.784 5 4.75 5H12zm8.25-2a.75.75 0 01.743.648L21 3.75v4.5a.75.75 0 01-1.493.102L19.5 8.25V5.56l-4.97 4.97a.75.75 0 01-1.133-.976l.073-.084 4.968-4.97H15.75a.75.75 0 01-.743-.648L15 3.75a.75.75 0 01.648-.743L15.75 3h4.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconUndock);\n","import * as React from 'react';\nfunction IconUnreconciled(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M3.368 4.346l.092.062 18 14a.75.75 0 01-.828 1.246l-.092-.062-3.34-2.597L17 17h-2.5a.75.75 0 01-.102-1.493l.102-.007h.778l-3.536-2.75H7a.75.75 0 110-1.5h2.814l-3.46-2.69a3.501 3.501 0 00.454 6.935L7 15.5h2.5a.75.75 0 01.102 1.493L9.5 17H7a5 5 0 01-2.074-9.55L2.54 5.591a.75.75 0 01.828-1.246zM17 7a5 5 0 013.39 8.676l-1.208-.94a3.5 3.5 0 00-1.99-6.231L17 8.5h-2.5a.75.75 0 01-.102-1.493L14.5 7H17zm0 4.25a.75.75 0 110 1.5h-.372l-1.929-1.5H17z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconUnreconciled);\n","import * as React from 'react';\nfunction IconWarning(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M13 18a1 1 0 11-2 0 1 1 0 012 0zM11.055 5.99A.97.97 0 0112.03 5a.97.97 0 01.971 1l-.23 7.76a.768.768 0 01-.77.74.768.768 0 01-.77-.748l-.175-7.763z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconWarning);\n","import * as React from 'react';\nfunction IconWebshop(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M11 15.5a2.25 2.25 0 110 4.5 2.25 2.25 0 010-4.5zm5.831 0a2.25 2.25 0 110 4.5 2.25 2.25 0 010-4.5zM11 17a.75.75 0 100 1.5.75.75 0 000-1.5zm5.831 0a.75.75 0 100 1.5.75.75 0 000-1.5zM5.287 4a1.75 1.75 0 011.56.955l.062.138 3.24 8a.25.25 0 00.173.15l.06.007h7.743a.25.25 0 00.204-.105l.028-.054 2.159-5.496a.25.25 0 00-.141-.324l-.045-.013-.047-.005-10.04-.003a.75.75 0 01-.102-1.493l.102-.007 10.04.003A1.75 1.75 0 0121.962 8l-.049.143-2.158 5.497a1.75 1.75 0 01-1.476 1.103l-.153.007h-7.743a1.75 1.75 0 01-1.56-.955l-.062-.138-3.24-8a.25.25 0 00-.173-.15l-.06-.007H2.75a.75.75 0 01-.102-1.493L2.75 4h2.537z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconWebshop);\n","import * as React from 'react';\nfunction IconWebsite(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M20.25 4c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0120.25 20H3.75A1.75 1.75 0 012 18.25V5.75C2 4.784 2.784 4 3.75 4h16.5zm.25 6h-17v8.25a.25.25 0 00.193.243l.057.007h16.5a.25.25 0 00.243-.193l.007-.057V10zm-.25-4.5H3.75a.25.25 0 00-.243.193L3.5 5.75V8.5h17V5.75a.25.25 0 00-.193-.243L20.25 5.5zM5.5 6.5v1h-1v-1h1zm2 0v1h-1v-1h1zm2 0v1h-1v-1h1z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconWebsite);\n","import * as React from 'react';\nfunction IconWorkflowTemplateBasic(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 1l5.762 3.12v6.161L23 13.117v6.763L17.238 23 12 20.164 6.762 23 1 19.88v-6.762l5.238-2.837V4.137L12 1zM6.761 11.183l-4.144 2.244 4.144 2.243 4.143-2.243-4.143-2.244zm4.714 3.12l-4.19 2.269v4.96l4.19-2.27v-4.96zm1.048 4.96l4.19 2.268v-4.96l-4.19-2.268v4.96zm.57-5.837l4.144 2.244 4.144-2.243-4.144-2.244-4.143 2.244zm8.858.877l-4.19 2.269v4.96l4.19-2.27v-4.96zm-9.428-1.753l4.19-2.269V5.305l-4.19 2.27v4.975zm-1.048-4.975l-4.19-2.256v4.962l4.19 2.27V7.574zm-3.62-3.133L12 6.672l4.144-2.243-4.142-2.243-4.145 2.256zm-1.618 17.09v-4.96l-4.19-2.27v4.96l4.19 2.27z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconWorkflowTemplateBasic);\n","import * as React from 'react';\nfunction IconWorkflow(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M19.144 16.292a2.853 2.853 0 00-2.754 2.144H7.722a2.857 2.857 0 01-2.856-2.858 2.857 2.857 0 012.856-2.859h1.53a2.842 2.842 0 005.508 0h1.529a4.286 4.286 0 004.283-4.287 4.286 4.286 0 00-4.283-4.288H7.62A2.856 2.856 0 002 4.859a2.856 2.856 0 005.62.715h8.669a2.857 2.857 0 012.855 2.858 2.857 2.857 0 01-2.855 2.858h-1.53a2.842 2.842 0 00-5.508 0h-1.53a4.286 4.286 0 00-4.283 4.288 4.286 4.286 0 004.284 4.287h8.668a2.85 2.85 0 005.6-.964 2.852 2.852 0 00-2.846-2.609zM4.866 6.288a1.429 1.429 0 11.002-2.857 1.429 1.429 0 01-.002 2.857zm7.14 4.287a1.429 1.429 0 11-.002 2.857 1.429 1.429 0 01.001-2.857zm7.138 10.005a1.429 1.429 0 11.002-2.857 1.429 1.429 0 01-.002 2.857z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconWorkflow);\n","import * as React from 'react';\nfunction IconZoom(props: React.SVGProps<SVGSVGElement>, svgRef?: React.Ref<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" ref={svgRef} {...props}>\n <path\n d=\"M10 2.25a7.75 7.75 0 015.985 12.674l5.545 5.546a.75.75 0 01-.976 1.133l-.084-.073-5.546-5.545A7.75 7.75 0 1110 2.25zm0 1.5a6.25 6.25 0 100 12.5 6.25 6.25 0 000-12.5zm0 2.75a.75.75 0 01.75.75v2h2a.75.75 0 110 1.5h-2v2a.75.75 0 11-1.5 0v-2h-2a.75.75 0 110-1.5h2v-2A.75.75 0 0110 6.5z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\nexport default React.forwardRef(IconZoom);\n","import AccountPreview from './AccountPreview';\nimport AccountingYearCancel from './AccountingYearCancel';\nimport AccountingYear from './AccountingYear';\nimport Accounting from './Accounting';\nimport AiChatSolid from './AiChatSolid';\nimport AiStars from './AiStars';\nimport ArrowBottom from './ArrowBottom';\nimport ArrowDown from './ArrowDown';\nimport ArrowEnd from './ArrowEnd';\nimport ArrowLeft from './ArrowLeft';\nimport ArrowRight from './ArrowRight';\nimport ArrowStart from './ArrowStart';\nimport ArrowTop from './ArrowTop';\nimport ArrowUp from './ArrowUp';\nimport AttachAuto from './AttachAuto';\nimport AttachCancel from './AttachCancel';\nimport AttachWarning from './AttachWarning';\nimport Attach from './Attach';\nimport AutotextInsert from './AutotextInsert';\nimport Autotext from './Autotext';\nimport BasicTabs from './BasicTabs';\nimport Basic from './Basic';\nimport BellSolid from './BellSolid';\nimport Book from './Book';\nimport Booking from './Booking';\nimport Budget from './Budget';\nimport Calendar from './Calendar';\nimport CashAccount from './CashAccount';\nimport CashReports from './CashReports';\nimport ChartArea from './ChartArea';\nimport ChartBar from './ChartBar';\nimport ChartLine from './ChartLine';\nimport ChartPie from './ChartPie';\nimport ChartTable from './ChartTable';\nimport ChatSolid from './ChatSolid';\nimport Chat from './Chat';\nimport ChevronDownDouble from './ChevronDownDouble';\nimport ChevronDownSolid from './ChevronDownSolid';\nimport ChevronDown from './ChevronDown';\nimport ChevronLeftDouble from './ChevronLeftDouble';\nimport ChevronLeftSolid from './ChevronLeftSolid';\nimport ChevronLeft from './ChevronLeft';\nimport ChevronRightDouble from './ChevronRightDouble';\nimport ChevronRightSolid from './ChevronRightSolid';\nimport ChevronRight from './ChevronRight';\nimport ChevronUpDouble from './ChevronUpDouble';\nimport ChevronUpSolid from './ChevronUpSolid';\nimport ChevronUp from './ChevronUp';\nimport CircleClose from './CircleClose';\nimport CircleInformation from './CircleInformation';\nimport CircleMinus from './CircleMinus';\nimport CirclePlus from './CirclePlus';\nimport CircleQuestionmark from './CircleQuestionmark';\nimport CircleTick from './CircleTick';\nimport CircleWarning from './CircleWarning';\nimport ClampOpen from './ClampOpen';\nimport Clamp from './Clamp';\nimport Close from './Close';\nimport ColumnFreeze from './ColumnFreeze';\nimport ColumnUnfreeze from './ColumnUnfreeze';\nimport Columns from './Columns';\nimport ConnectionEnable from './ConnectionEnable';\nimport ConnectionRevoke from './ConnectionRevoke';\nimport Contacts from './Contacts';\nimport Copy from './Copy';\nimport Courses from './Courses';\nimport Credit from './Credit';\nimport DeletePermanently from './DeletePermanently';\nimport Delete from './Delete';\nimport Depecriate from './Depecriate';\nimport Developer from './Developer';\nimport DistributionTemplate from './DistributionTemplate';\nimport DocumentApprove from './DocumentApprove';\nimport DocumentCreateEntry from './DocumentCreateEntry';\nimport DocumentCut from './DocumentCut';\nimport DocumentError from './DocumentError';\nimport DocumentIsolatePage from './DocumentIsolatePage';\nimport DocumentMerge from './DocumentMerge';\nimport DocumentMove from './DocumentMove';\nimport DocumentPreview from './DocumentPreview';\nimport DocumentReceived from './DocumentReceived';\nimport DocumentRejectedRequest from './DocumentRejectedRequest';\nimport DocumentSignedSolid from './DocumentSignedSolid';\nimport DocumentSigned from './DocumentSigned';\nimport DocumentSplit from './DocumentSplit';\nimport DocumentTime from './DocumentTime';\nimport Document from './Document';\nimport Download from './Download';\nimport Drag from './Drag';\nimport ECopedia from './ECopedia';\nimport EditSimple from './EditSimple';\nimport Edit from './Edit';\nimport EllipsisHorizontal from './EllipsisHorizontal';\nimport EllipsisVertical from './EllipsisVertical';\nimport EntriesOnAccount from './EntriesOnAccount';\nimport EntriesOpen from './EntriesOpen';\nimport EntriesWarning from './EntriesWarning';\nimport EntryTypeCustomerInvoice from './EntryTypeCustomerInvoice';\nimport EntryTypeCustomerPayment from './EntryTypeCustomerPayment';\nimport EntryTypeJournalEntry from './EntryTypeJournalEntry';\nimport EntryTypeManualCustomerInvoice from './EntryTypeManualCustomerInvoice';\nimport EntryTypeSupplierInvoice from './EntryTypeSupplierInvoice';\nimport EntryTypeSupplierPayment from './EntryTypeSupplierPayment';\nimport EnvelopeApproved from './EnvelopeApproved';\nimport EnvelopeSolid from './EnvelopeSolid';\nimport Envelope from './Envelope';\nimport ExpandView from './ExpandView';\nimport Expenses from './Expenses';\nimport ExportToExcel from './ExportToExcel';\nimport ExportToPdf from './ExportToPdf';\nimport Export from './Export';\nimport EyeOff from './EyeOff';\nimport EyeOn from './EyeOn';\nimport FilterSolid from './FilterSolid';\nimport Filter from './Filter';\nimport FontSize from './FontSize';\nimport GraphSolid from './GraphSolid';\nimport Hash from './Hash';\nimport HeightExtraTall from './HeightExtraTall';\nimport HeightMedium from './HeightMedium';\nimport HeightShort from './HeightShort';\nimport HeightTall from './HeightTall';\nimport HouseSolid from './HouseSolid';\nimport House from './House';\nimport Id from './Id';\nimport Images from './Images';\nimport Import from './Import';\nimport InboxEinvoicing from './InboxEinvoicing';\nimport InboxScanning from './InboxScanning';\nimport InboxSmart from './InboxSmart';\nimport Inbox from './Inbox';\nimport Info from './Info';\nimport InventoryMatrix from './InventoryMatrix';\nimport Inventory from './Inventory';\nimport JournalPro from './JournalPro';\nimport LayoutBoth from './LayoutBoth';\nimport LayoutFirst from './LayoutFirst';\nimport LayoutLast from './LayoutLast';\nimport LayoutNone from './LayoutNone';\nimport Layout from './Layout';\nimport LedgerCardCustomerReminder from './LedgerCardCustomerReminder';\nimport LedgerCardManualCustomerInvoice from './LedgerCardManualCustomerInvoice';\nimport LedgerCardObsoleteStock from './LedgerCardObsoleteStock';\nimport LedgerCardOpeningEntry from './LedgerCardOpeningEntry';\nimport LedgerCardReservedEntry from './LedgerCardReservedEntry';\nimport LedgerCardShrinkagePilferage from './LedgerCardShrinkagePilferage';\nimport LedgerCardStockAdjustment from './LedgerCardStockAdjustment';\nimport LedgerCardTransferredOpeningEntry from './LedgerCardTransferredOpeningEntry';\nimport LedgerCard from './LedgerCard';\nimport Lightbulb from './Lightbulb';\nimport Line from './Line';\nimport LinkExternal from './LinkExternal';\nimport ListBulleted from './ListBulleted';\nimport ListSearch from './ListSearch';\nimport List from './List';\nimport Location from './Location';\nimport LockOpen from './LockOpen';\nimport Lock from './Lock';\nimport LogOut from './LogOut';\nimport Log from './Log';\nimport Market from './Market';\nimport MastercardOs from './MastercardOs';\nimport MatchAmount from './MatchAmount';\nimport MatchEntries from './MatchEntries';\nimport Menu from './Menu';\nimport Mileage from './Mileage';\nimport ModalResize from './ModalResize';\nimport ModalShrink from './ModalShrink';\nimport MoreSolid from './MoreSolid';\nimport More from './More';\nimport Move from './Move';\nimport NavigationList from './NavigationList';\nimport NoteFollowUp from './NoteFollowUp';\nimport NoteRead from './NoteRead';\nimport Note from './Note';\nimport NovemberFirst from './NovemberFirst';\nimport Numbers from './Numbers';\nimport PartnerApi from './PartnerApi';\nimport PaymentPaid from './PaymentPaid';\nimport PaymentUnpaid from './PaymentUnpaid';\nimport Period from './Period';\nimport PersonChange from './PersonChange';\nimport PersonMinus from './PersonMinus';\nimport PersonPlus from './PersonPlus';\nimport PersonTick from './PersonTick';\nimport PhoneSolid from './PhoneSolid';\nimport Phone from './Phone';\nimport Play from './Play';\nimport PlusMinus from './PlusMinus';\nimport Print from './Print';\nimport ProcessPayment from './ProcessPayment';\nimport ProductLedgerCard from './ProductLedgerCard';\nimport Profile from './Profile';\nimport ProjectCards from './ProjectCards';\nimport Projects from './Projects';\nimport QuestionMarkBold from './QuestionMarkBold';\nimport QuestionMark from './QuestionMark';\nimport Quicklinks from './Quicklinks';\nimport RatingBankruptcy from './RatingBankruptcy';\nimport RatingPaymentProblems from './RatingPaymentProblems';\nimport Reconciled from './Reconciled';\nimport Refresh from './Refresh';\nimport ReportSolid from './ReportSolid';\nimport Report from './Report';\nimport Restore from './Restore';\nimport RotateLeft from './RotateLeft';\nimport RotateRight from './RotateRight';\nimport Sales from './Sales';\nimport SearchBold from './SearchBold';\nimport Search from './Search';\nimport SecureTick from './SecureTick';\nimport Secure from './Secure';\nimport SettingsSolid from './SettingsSolid';\nimport Settings from './Settings';\nimport Shortcuts from './Shortcuts';\nimport ShowAll from './ShowAll';\nimport ShowLess from './ShowLess';\nimport ShowMore from './ShowMore';\nimport ShowTemplate from './ShowTemplate';\nimport Sliders from './Sliders';\nimport Smartpay from './Smartpay';\nimport SortBy from './SortBy';\nimport StarSolid from './StarSolid';\nimport Star from './Star';\nimport Subscriptions from './Subscriptions';\nimport SystemEntries from './SystemEntries';\nimport Tag from './Tag';\nimport TemplateOverride from './TemplateOverride';\nimport Templates from './Templates';\nimport ThumbBoth from './ThumbBoth';\nimport ThumbDownSolid from './ThumbDownSolid';\nimport ThumbDown from './ThumbDown';\nimport ThumbUpSolid from './ThumbUpSolid';\nimport ThumbUp from './ThumbUp';\nimport TickBold from './TickBold';\nimport Tick from './Tick';\nimport Time from './Time';\nimport TransferCancel from './TransferCancel';\nimport TransferLocked from './TransferLocked';\nimport Transfer from './Transfer';\nimport Undo from './Undo';\nimport Undock from './Undock';\nimport Unreconciled from './Unreconciled';\nimport Warning from './Warning';\nimport Webshop from './Webshop';\nimport Website from './Website';\nimport WorkflowTemplateBasic from './WorkflowTemplateBasic';\nimport Workflow from './Workflow';\nimport Zoom from './Zoom';\n\nexport const icons: Record<\n IconName,\n React.ForwardRefExoticComponent<React.SVGAttributes<SVGSVGElement> & React.RefAttributes<SVGSVGElement>>\n> = {\n 'account-preview': AccountPreview,\n 'accounting-year-cancel': AccountingYearCancel,\n 'accounting-year': AccountingYear,\n accounting: Accounting,\n 'ai-chat-solid': AiChatSolid,\n 'ai-stars': AiStars,\n 'arrow-bottom': ArrowBottom,\n 'arrow-down': ArrowDown,\n 'arrow-end': ArrowEnd,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-start': ArrowStart,\n 'arrow-top': ArrowTop,\n 'arrow-up': ArrowUp,\n 'attach-auto': AttachAuto,\n 'attach-cancel': AttachCancel,\n 'attach-warning': AttachWarning,\n attach: Attach,\n 'autotext-insert': AutotextInsert,\n autotext: Autotext,\n 'basic-tabs': BasicTabs,\n basic: Basic,\n 'bell-solid': BellSolid,\n book: Book,\n booking: Booking,\n budget: Budget,\n calendar: Calendar,\n 'cash-account': CashAccount,\n 'cash-reports': CashReports,\n 'chart-area': ChartArea,\n 'chart-bar': ChartBar,\n 'chart-line': ChartLine,\n 'chart-pie': ChartPie,\n 'chart-table': ChartTable,\n 'chat-solid': ChatSolid,\n chat: Chat,\n 'chevron-down-double': ChevronDownDouble,\n 'chevron-down-solid': ChevronDownSolid,\n 'chevron-down': ChevronDown,\n 'chevron-left-double': ChevronLeftDouble,\n 'chevron-left-solid': ChevronLeftSolid,\n 'chevron-left': ChevronLeft,\n 'chevron-right-double': ChevronRightDouble,\n 'chevron-right-solid': ChevronRightSolid,\n 'chevron-right': ChevronRight,\n 'chevron-up-double': ChevronUpDouble,\n 'chevron-up-solid': ChevronUpSolid,\n 'chevron-up': ChevronUp,\n 'circle-close': CircleClose,\n 'circle-information': CircleInformation,\n 'circle-minus': CircleMinus,\n 'circle-plus': CirclePlus,\n 'circle-questionmark': CircleQuestionmark,\n 'circle-tick': CircleTick,\n 'circle-warning': CircleWarning,\n 'clamp-open': ClampOpen,\n clamp: Clamp,\n close: Close,\n 'column-freeze': ColumnFreeze,\n 'column-unfreeze': ColumnUnfreeze,\n columns: Columns,\n 'connection-enable': ConnectionEnable,\n 'connection-revoke': ConnectionRevoke,\n contacts: Contacts,\n copy: Copy,\n courses: Courses,\n credit: Credit,\n 'delete-permanently': DeletePermanently,\n delete: Delete,\n depecriate: Depecriate,\n developer: Developer,\n 'distribution-template': DistributionTemplate,\n 'document-approve': DocumentApprove,\n 'document-create-entry': DocumentCreateEntry,\n 'document-cut': DocumentCut,\n 'document-error': DocumentError,\n 'document-isolate-page': DocumentIsolatePage,\n 'document-merge': DocumentMerge,\n 'document-move': DocumentMove,\n 'document-preview': DocumentPreview,\n 'document-received': DocumentReceived,\n 'document-rejected-request': DocumentRejectedRequest,\n 'document-signed-solid': DocumentSignedSolid,\n 'document-signed': DocumentSigned,\n 'document-split': DocumentSplit,\n 'document-time': DocumentTime,\n document: Document,\n download: Download,\n drag: Drag,\n 'e-copedia': ECopedia,\n 'edit-simple': EditSimple,\n edit: Edit,\n 'ellipsis-horizontal': EllipsisHorizontal,\n 'ellipsis-vertical': EllipsisVertical,\n 'entries-on-account': EntriesOnAccount,\n 'entries-open': EntriesOpen,\n 'entries-warning': EntriesWarning,\n 'entry-type-customer-invoice': EntryTypeCustomerInvoice,\n 'entry-type-customer-payment': EntryTypeCustomerPayment,\n 'entry-type-journal-entry': EntryTypeJournalEntry,\n 'entry-type-manual-customer-invoice': EntryTypeManualCustomerInvoice,\n 'entry-type-supplier-invoice': EntryTypeSupplierInvoice,\n 'entry-type-supplier-payment': EntryTypeSupplierPayment,\n 'envelope-approved': EnvelopeApproved,\n 'envelope-solid': EnvelopeSolid,\n envelope: Envelope,\n 'expand-view': ExpandView,\n expenses: Expenses,\n 'export-to-excel': ExportToExcel,\n 'export-to-pdf': ExportToPdf,\n export: Export,\n 'eye-off': EyeOff,\n 'eye-on': EyeOn,\n 'filter-solid': FilterSolid,\n filter: Filter,\n 'font-size': FontSize,\n 'graph-solid': GraphSolid,\n hash: Hash,\n 'height-extra-tall': HeightExtraTall,\n 'height-medium': HeightMedium,\n 'height-short': HeightShort,\n 'height-tall': HeightTall,\n 'house-solid': HouseSolid,\n house: House,\n id: Id,\n images: Images,\n import: Import,\n 'inbox-einvoicing': InboxEinvoicing,\n 'inbox-scanning': InboxScanning,\n 'inbox-smart': InboxSmart,\n inbox: Inbox,\n info: Info,\n 'inventory-matrix': InventoryMatrix,\n inventory: Inventory,\n 'journal-pro': JournalPro,\n 'layout-both': LayoutBoth,\n 'layout-first': LayoutFirst,\n 'layout-last': LayoutLast,\n 'layout-none': LayoutNone,\n layout: Layout,\n 'ledger-card-customer-reminder': LedgerCardCustomerReminder,\n 'ledger-card-manual-customer-invoice': LedgerCardManualCustomerInvoice,\n 'ledger-card-obsolete-stock': LedgerCardObsoleteStock,\n 'ledger-card-opening-entry': LedgerCardOpeningEntry,\n 'ledger-card-reserved-entry': LedgerCardReservedEntry,\n 'ledger-card-shrinkage-pilferage': LedgerCardShrinkagePilferage,\n 'ledger-card-stock-adjustment': LedgerCardStockAdjustment,\n 'ledger-card-transferred-opening-entry': LedgerCardTransferredOpeningEntry,\n 'ledger-card': LedgerCard,\n lightbulb: Lightbulb,\n line: Line,\n 'link-external': LinkExternal,\n 'list-bulleted': ListBulleted,\n 'list-search': ListSearch,\n list: List,\n location: Location,\n 'lock-open': LockOpen,\n lock: Lock,\n 'log-out': LogOut,\n log: Log,\n market: Market,\n 'mastercard-os': MastercardOs,\n 'match-amount': MatchAmount,\n 'match-entries': MatchEntries,\n menu: Menu,\n mileage: Mileage,\n 'modal-resize': ModalResize,\n 'modal-shrink': ModalShrink,\n 'more-solid': MoreSolid,\n more: More,\n move: Move,\n 'navigation-list': NavigationList,\n 'note-follow-up': NoteFollowUp,\n 'note-read': NoteRead,\n note: Note,\n 'november-first': NovemberFirst,\n numbers: Numbers,\n 'partner-api': PartnerApi,\n 'payment-paid': PaymentPaid,\n 'payment-unpaid': PaymentUnpaid,\n period: Period,\n 'person-change': PersonChange,\n 'person-minus': PersonMinus,\n 'person-plus': PersonPlus,\n 'person-tick': PersonTick,\n 'phone-solid': PhoneSolid,\n phone: Phone,\n play: Play,\n 'plus-minus': PlusMinus,\n print: Print,\n 'process-payment': ProcessPayment,\n 'product-ledger-card': ProductLedgerCard,\n profile: Profile,\n 'project-cards': ProjectCards,\n projects: Projects,\n 'question-mark-bold': QuestionMarkBold,\n 'question-mark': QuestionMark,\n quicklinks: Quicklinks,\n 'rating-bankruptcy': RatingBankruptcy,\n 'rating-payment-problems': RatingPaymentProblems,\n reconciled: Reconciled,\n refresh: Refresh,\n 'report-solid': ReportSolid,\n report: Report,\n restore: Restore,\n 'rotate-left': RotateLeft,\n 'rotate-right': RotateRight,\n sales: Sales,\n 'search-bold': SearchBold,\n search: Search,\n 'secure-tick': SecureTick,\n secure: Secure,\n 'settings-solid': SettingsSolid,\n settings: Settings,\n shortcuts: Shortcuts,\n 'show-all': ShowAll,\n 'show-less': ShowLess,\n 'show-more': ShowMore,\n 'show-template': ShowTemplate,\n sliders: Sliders,\n smartpay: Smartpay,\n 'sort-by': SortBy,\n 'star-solid': StarSolid,\n star: Star,\n subscriptions: Subscriptions,\n 'system-entries': SystemEntries,\n tag: Tag,\n 'template-override': TemplateOverride,\n templates: Templates,\n 'thumb-both': ThumbBoth,\n 'thumb-down-solid': ThumbDownSolid,\n 'thumb-down': ThumbDown,\n 'thumb-up-solid': ThumbUpSolid,\n 'thumb-up': ThumbUp,\n 'tick-bold': TickBold,\n tick: Tick,\n time: Time,\n 'transfer-cancel': TransferCancel,\n 'transfer-locked': TransferLocked,\n transfer: Transfer,\n undo: Undo,\n undock: Undock,\n unreconciled: Unreconciled,\n warning: Warning,\n webshop: Webshop,\n website: Website,\n 'workflow-template-basic': WorkflowTemplateBasic,\n workflow: Workflow,\n zoom: Zoom,\n};\n\n// the prop extraction tool can't handle this\n//export type IconName = keyof typeof icons;\nexport type IconName =\n | 'account-preview'\n | 'accounting-year-cancel'\n | 'accounting-year'\n | 'accounting'\n | 'ai-chat-solid'\n | 'ai-stars'\n | 'arrow-bottom'\n | 'arrow-down'\n | 'arrow-end'\n | 'arrow-left'\n | 'arrow-right'\n | 'arrow-start'\n | 'arrow-top'\n | 'arrow-up'\n | 'attach-auto'\n | 'attach-cancel'\n | 'attach-warning'\n | 'attach'\n | 'autotext-insert'\n | 'autotext'\n | 'basic-tabs'\n | 'basic'\n | 'bell-solid'\n | 'book'\n | 'booking'\n | 'budget'\n | 'calendar'\n | 'cash-account'\n | 'cash-reports'\n | 'chart-area'\n | 'chart-bar'\n | 'chart-line'\n | 'chart-pie'\n | 'chart-table'\n | 'chat-solid'\n | 'chat'\n | 'chevron-down-double'\n | 'chevron-down-solid'\n | 'chevron-down'\n | 'chevron-left-double'\n | 'chevron-left-solid'\n | 'chevron-left'\n | 'chevron-right-double'\n | 'chevron-right-solid'\n | 'chevron-right'\n | 'chevron-up-double'\n | 'chevron-up-solid'\n | 'chevron-up'\n | 'circle-close'\n | 'circle-information'\n | 'circle-minus'\n | 'circle-plus'\n | 'circle-questionmark'\n | 'circle-tick'\n | 'circle-warning'\n | 'clamp-open'\n | 'clamp'\n | 'close'\n | 'column-freeze'\n | 'column-unfreeze'\n | 'columns'\n | 'connection-enable'\n | 'connection-revoke'\n | 'contacts'\n | 'copy'\n | 'courses'\n | 'credit'\n | 'delete-permanently'\n | 'delete'\n | 'depecriate'\n | 'developer'\n | 'distribution-template'\n | 'document-approve'\n | 'document-create-entry'\n | 'document-cut'\n | 'document-error'\n | 'document-isolate-page'\n | 'document-merge'\n | 'document-move'\n | 'document-preview'\n | 'document-received'\n | 'document-rejected-request'\n | 'document-signed-solid'\n | 'document-signed'\n | 'document-split'\n | 'document-time'\n | 'document'\n | 'download'\n | 'drag'\n | 'e-copedia'\n | 'edit-simple'\n | 'edit'\n | 'ellipsis-horizontal'\n | 'ellipsis-vertical'\n | 'entries-on-account'\n | 'entries-open'\n | 'entries-warning'\n | 'entry-type-customer-invoice'\n | 'entry-type-customer-payment'\n | 'entry-type-journal-entry'\n | 'entry-type-manual-customer-invoice'\n | 'entry-type-supplier-invoice'\n | 'entry-type-supplier-payment'\n | 'envelope-approved'\n | 'envelope-solid'\n | 'envelope'\n | 'expand-view'\n | 'expenses'\n | 'export-to-excel'\n | 'export-to-pdf'\n | 'export'\n | 'eye-off'\n | 'eye-on'\n | 'filter-solid'\n | 'filter'\n | 'font-size'\n | 'graph-solid'\n | 'hash'\n | 'height-extra-tall'\n | 'height-medium'\n | 'height-short'\n | 'height-tall'\n | 'house-solid'\n | 'house'\n | 'id'\n | 'images'\n | 'import'\n | 'inbox-einvoicing'\n | 'inbox-scanning'\n | 'inbox-smart'\n | 'inbox'\n | 'info'\n | 'inventory-matrix'\n | 'inventory'\n | 'journal-pro'\n | 'layout-both'\n | 'layout-first'\n | 'layout-last'\n | 'layout-none'\n | 'layout'\n | 'ledger-card-customer-reminder'\n | 'ledger-card-manual-customer-invoice'\n | 'ledger-card-obsolete-stock'\n | 'ledger-card-opening-entry'\n | 'ledger-card-reserved-entry'\n | 'ledger-card-shrinkage-pilferage'\n | 'ledger-card-stock-adjustment'\n | 'ledger-card-transferred-opening-entry'\n | 'ledger-card'\n | 'lightbulb'\n | 'line'\n | 'link-external'\n | 'list-bulleted'\n | 'list-search'\n | 'list'\n | 'location'\n | 'lock-open'\n | 'lock'\n | 'log-out'\n | 'log'\n | 'market'\n | 'mastercard-os'\n | 'match-amount'\n | 'match-entries'\n | 'menu'\n | 'mileage'\n | 'modal-resize'\n | 'modal-shrink'\n | 'more-solid'\n | 'more'\n | 'move'\n | 'navigation-list'\n | 'note-follow-up'\n | 'note-read'\n | 'note'\n | 'november-first'\n | 'numbers'\n | 'partner-api'\n | 'payment-paid'\n | 'payment-unpaid'\n | 'period'\n | 'person-change'\n | 'person-minus'\n | 'person-plus'\n | 'person-tick'\n | 'phone-solid'\n | 'phone'\n | 'play'\n | 'plus-minus'\n | 'print'\n | 'process-payment'\n | 'product-ledger-card'\n | 'profile'\n | 'project-cards'\n | 'projects'\n | 'question-mark-bold'\n | 'question-mark'\n | 'quicklinks'\n | 'rating-bankruptcy'\n | 'rating-payment-problems'\n | 'reconciled'\n | 'refresh'\n | 'report-solid'\n | 'report'\n | 'restore'\n | 'rotate-left'\n | 'rotate-right'\n | 'sales'\n | 'search-bold'\n | 'search'\n | 'secure-tick'\n | 'secure'\n | 'settings-solid'\n | 'settings'\n | 'shortcuts'\n | 'show-all'\n | 'show-less'\n | 'show-more'\n | 'show-template'\n | 'sliders'\n | 'smartpay'\n | 'sort-by'\n | 'star-solid'\n | 'star'\n | 'subscriptions'\n | 'system-entries'\n | 'tag'\n | 'template-override'\n | 'templates'\n | 'thumb-both'\n | 'thumb-down-solid'\n | 'thumb-down'\n | 'thumb-up-solid'\n | 'thumb-up'\n | 'tick-bold'\n | 'tick'\n | 'time'\n | 'transfer-cancel'\n | 'transfer-locked'\n | 'transfer'\n | 'undo'\n | 'undock'\n | 'unreconciled'\n | 'warning'\n | 'webshop'\n | 'website'\n | 'workflow-template-basic'\n | 'workflow'\n | 'zoom';\n","import React from 'react';\nimport cn from 'clsx';\nimport { IconName, icons } from './components/index';\n\nexport { icons } from './components/index';\nexport type { IconName } from './components/index';\n\nexport type IconProps = React.SVGAttributes<SVGSVGElement> & {\n /** Set what svg icon should be rendered */\n name: IconName; // this dynamic type causes the type extraction for props to fail\n};\n\nexport const Icon = React.forwardRef(function Icon(props: IconProps, ref: React.Ref<SVGSVGElement>) {\n const { name, ...otherProps } = props;\n const Component = icons[name];\n /* 24x24 _at the base body font_ - must be em so that they scale with font size - tailwind spacing uses rem */\n const className = cn('inline-flex h-[1.715em] w-[1.715em] flex-shrink-0', props.className, {\n 'p-[3px]': props.className?.includes('rounded-full'),\n });\n\n return Component ? (\n <Component\n {...otherProps}\n className={className}\n data-taco=\"icon\"\n data-icon-name={name}\n focusable=\"false\"\n ref={ref}\n role=\"img\"\n />\n ) : null;\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { getSubtleColorShadeClasses, getColorShadeClasses } from '../../utils/tailwind';\nimport { Icon, IconName } from '../Icon/Icon';\nimport { Color } from '../../types';\n\nexport type BadgeIconProps = React.HTMLAttributes<HTMLSpanElement> & {\n /** Icon type **/\n icon: IconName;\n /** Background color **/\n color?: Color;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show small version of badge icon **/\n small?: boolean;\n};\n\nexport const BadgeIcon = React.forwardRef(function Badge(props: BadgeIconProps, ref: React.Ref<HTMLSpanElement>) {\n const { color, icon, subtle, small, ...otherProps } = props;\n\n const className = cn(\n `rounded-full border overflow-hidden whitespace-nowrap inline-flex items-center justify-center border-transparent [&>*]:max-h-full`,\n { 'w-5 h-5': !small },\n { 'w-4 h-4 text-xs': small },\n { [getSubtleColorShadeClasses(color)]: subtle, [getColorShadeClasses(color)]: !subtle },\n props.className\n );\n\n const iconProps = {\n strokeWidth: 1,\n stroke: 'currentColor',\n };\n\n return (\n <span\n {...otherProps}\n aria-label=\"icon\"\n className={className}\n data-taco=\"badge-icon\"\n ref={ref}\n role=\"status\"\n title={props['aria-label']}>\n <Icon name={icon} {...iconProps} />\n </span>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\nimport { getColorByState, getSubtleColorShadeClasses } from '../../utils/tailwind';\nimport { Icon, IconName } from '../Icon/Icon';\nimport { State } from '../../types';\n\nexport type AlertProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: React.ReactNode;\n state?: State;\n onClose?: () => void;\n};\n\nconst getIconName = (state: State | undefined): IconName => {\n switch (state) {\n case 'information':\n return 'info';\n case 'warning':\n return 'warning';\n case 'error':\n return 'close';\n case 'success':\n return 'tick';\n default:\n return 'question-mark';\n }\n};\n\nexport const Alert = React.forwardRef(function Alert(props: AlertProps, ref: React.Ref<HTMLDivElement>) {\n const { children, title, state, onClose } = props;\n\n const className = cn(\n `flex w-full flex-row items-start gap-2 rounded-md border-transparent p-3 ${getSubtleColorShadeClasses(\n getColorByState(state)\n )}`,\n props.className\n );\n\n return (\n <div {...props} ref={ref} className={className} data-taco=\"alert\" role=\"alert\">\n <BadgeIcon className=\"flex-none\" icon={getIconName(state)} color={getColorByState(state)} />\n <div className=\"grow text-sm\">\n {title && <div className=\"font-bold\">{title}</div>}\n {children}\n </div>\n {onClose && <Icon className=\"flex-none cursor-pointer\" name=\"close\" onClick={onClose} />}\n </div>\n );\n});\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport React from 'react';\n\nexport type AlertDialogContext = {\n props: Record<string, any>;\n ref: React.Ref<HTMLElement>;\n};\n\nexport const AlertDialogContext = React.createContext<AlertDialogContext>({\n props: {},\n ref: null,\n});\n\nexport const useCurrentAlertDialog = () => {\n return React.useContext(AlertDialogContext);\n};\n","import React from 'react';\n\nexport function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T> {\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n };\n}\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport { useCurrentAlertDialog } from '../Context';\nimport { mergeRefs } from '../../../utils/mergeRefs';\n\nexport type AlertDialogTriggerProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Trigger = React.forwardRef(function AlertDialogTrigger(\n props: AlertDialogTriggerProps,\n externalRef: React.Ref<HTMLButtonElement>\n) {\n const { ref: parentRef, props: parentProps } = useCurrentAlertDialog();\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n return <AlertDialogPrimitive.Trigger {...parentProps} {...props} ref={refCallback} asChild />;\n});\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\n\nexport type AlertDialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport const Footer = React.forwardRef(function AlertDialogFooter(props: AlertDialogFooterProps, ref: React.Ref<HTMLDivElement>) {\n const className = 'flex justify-end gap-2';\n\n return (\n <div {...props} className={className} ref={ref}>\n {props.children}\n </div>\n );\n});\n\nexport type AlertDialogCancelProps = React.HTMLAttributes<HTMLButtonElement>;\nexport const Cancel = React.forwardRef(function AlertDialogCancel(\n props: AlertDialogCancelProps,\n ref: React.Ref<HTMLButtonElement>\n) {\n return <AlertDialogPrimitive.Cancel {...props} ref={ref} asChild />;\n});\n\nexport type AlertDialogActionProps = React.HTMLAttributes<HTMLButtonElement>;\nexport const Action = React.forwardRef(function AlertDialogAction(\n props: AlertDialogActionProps,\n ref: React.Ref<HTMLButtonElement>\n) {\n return <AlertDialogPrimitive.Action {...props} className={props.className} ref={ref} asChild />;\n});\n","import * as React from 'react';\nimport cn from 'clsx';\n\nexport type BackdropProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Backdrop = React.forwardRef<HTMLDivElement, BackdropProps>(function Backdrop(props, ref) {\n const className = cn(\n 'fixed inset-0 cursor-default overflow-y-auto bg-blue-900/[0.3] aria-hidden:invisible print:overflow-visible print:absolute',\n props.className\n );\n\n return <div {...props} className={className} data-taco=\"backdrop\" ref={ref} />;\n});\n","import { DialogSize } from './types';\n\nexport const getDialogSizeClassnames = (size: DialogSize) => {\n switch (size) {\n case 'dialog':\n return 'w-128';\n case 'xs':\n return 'w-xs';\n case 'sm':\n return 'w-sm';\n case 'md':\n return 'w-md';\n case 'lg':\n return 'w-lg';\n }\n};\n\nexport const getDialogPositionClassnames = () => 'mt-16 mx-auto';\n\nexport const getDialogStylingClassnames = () =>\n 'bg-white rounded animate-[fade-in_150ms] shadow-[0_6px_9px_0_rgba(89,85,98,0.3),0_0_1px_0_rgba(89,85,98,0.2)]';\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport cn from 'clsx';\nimport { Backdrop } from '../../Backdrop/Backdrop';\nimport { getDialogPositionClassnames, getDialogSizeClassnames, getDialogStylingClassnames } from '../../Dialog/util';\n\nexport type AlertDialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function AlertDialogTitle(\n props: AlertDialogTitleProps,\n ref: React.Ref<HTMLHeadingElement>\n) {\n const className = cn('text-center', props.className);\n return <AlertDialogPrimitive.Title {...props} className={className} ref={ref} />;\n});\n\nexport type AlertDialogContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n /** An accessible label to be announced when the dialog is opened */\n 'aria-label': string;\n children: React.ReactNode;\n};\nexport const Content = React.forwardRef(function AlertDialogContent(\n props: AlertDialogContentProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const className = cn('p-6', getDialogPositionClassnames(), getDialogStylingClassnames(), getDialogSizeClassnames('dialog'));\n\n return (\n <AlertDialogPrimitive.Portal>\n <AlertDialogPrimitive.Overlay asChild>\n <Backdrop>\n <AlertDialogPrimitive.Content\n {...props}\n ref={ref}\n className={className}\n onEscapeKeyDown={event => event.preventDefault()}>\n {props.children}\n </AlertDialogPrimitive.Content>\n </Backdrop>\n </AlertDialogPrimitive.Overlay>\n </AlertDialogPrimitive.Portal>\n );\n});\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport { AlertDialogContext } from './Context';\nimport { Trigger, AlertDialogTriggerProps } from './components/Trigger';\nimport {\n Cancel,\n Action,\n Footer,\n AlertDialogCancelProps,\n AlertDialogActionProps,\n AlertDialogFooterProps,\n} from './components/Footer';\nimport { Title, Content, AlertDialogContentProps, AlertDialogTitleProps } from './components/Content';\n\nexport type AlertDialogProps = {\n children: React.ReactNode | React.ReactNode[];\n /** Set whether the alert dialog is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Called when the alert dialog opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n /** Control the open state of the dialog from outside the component */\n open?: boolean;\n /** A trigger to be used for the alert dialog, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\n\nexport type ForwardedAlertDialogWithStatics = React.ForwardRefExoticComponent<\n AlertDialogProps & React.RefAttributes<HTMLElement>\n> & {\n Trigger: React.ForwardRefExoticComponent<AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n Content: React.ForwardRefExoticComponent<AlertDialogContentProps & React.RefAttributes<HTMLDivElement>>;\n Title: React.ForwardRefExoticComponent<AlertDialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n Footer: React.ForwardRefExoticComponent<AlertDialogFooterProps & React.RefAttributes<HTMLDivElement>>;\n Action: React.ForwardRefExoticComponent<AlertDialogActionProps & React.RefAttributes<HTMLButtonElement>>;\n Cancel: React.ForwardRefExoticComponent<AlertDialogCancelProps & React.RefAttributes<HTMLButtonElement>>;\n};\n\nexport const AlertDialog = React.forwardRef(function AlertDialog(props: AlertDialogProps, ref: React.Ref<HTMLElement>) {\n const { children: initialChildren, defaultOpen, onChange, open, trigger, ...otherProps } = props;\n\n const context = React.useMemo(\n () => ({\n props: otherProps,\n ref,\n }),\n [open, otherProps]\n );\n\n return (\n <AlertDialogContext.Provider value={context}>\n <AlertDialogPrimitive.Root {...props} defaultOpen={defaultOpen} open={open} onOpenChange={onChange}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {props.children}\n </AlertDialogPrimitive.Root>\n </AlertDialogContext.Provider>\n );\n}) as ForwardedAlertDialogWithStatics;\n\nAlertDialog.Trigger = Trigger;\nAlertDialog.Content = Content;\nAlertDialog.Title = Title;\nAlertDialog.Cancel = Cancel;\nAlertDialog.Action = Action;\nAlertDialog.Footer = Footer;\n","import React from 'react';\nimport cn from 'clsx';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { Icon } from '../Icon/Icon';\n\ntype AccordionContext = {\n as: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n};\nconst AccordionContext = React.createContext<AccordionContext>({\n as: 'h2',\n});\n\nexport type AccordionTriggerProps = React.HTMLAttributes<HTMLElement>;\n\nconst StyledTrigger = React.forwardRef(function AccordionStyledTrigger(\n props: AccordionPrimitive.AccordionTriggerProps,\n ref: React.Ref<HTMLButtonElement>\n) {\n const isExpanded = !!props['aria-expanded'];\n\n const className = cn(\n 'w-full inline-flex justify-between items-center align-middle',\n 'focus:rounded-sm focus:border-blue-500 focus:yt-focus',\n props.className\n );\n\n return (\n <button {...props} ref={ref} className={className}>\n {props.children}\n <Icon name={isExpanded ? 'chevron-up' : 'chevron-down'} />\n </button>\n );\n});\n\nconst Trigger = React.forwardRef(function AccordionTrigger(props: AccordionTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children } = props;\n const { as: Heading } = React.useContext(AccordionContext);\n\n return (\n <AccordionPrimitive.Header asChild>\n <Heading className=\"my-3\">\n <AccordionPrimitive.Trigger ref={ref} asChild>\n <StyledTrigger>{children}</StyledTrigger>\n </AccordionPrimitive.Trigger>\n </Heading>\n </AccordionPrimitive.Header>\n );\n});\n\nexport type AccordionContentProps = React.HTMLAttributes<HTMLElement>;\nconst Content = React.forwardRef(function AccordionContent(props: AccordionContentProps, ref: React.Ref<HTMLDivElement>) {\n return <AccordionPrimitive.Content {...props} ref={ref} />;\n});\n\nexport type AccordionItemProps = React.HTMLAttributes<HTMLDivElement> & {\n id: string;\n disabled?: boolean;\n};\nconst Item = (props: AccordionItemProps) => {\n const { id, ...otherProps } = props;\n return <AccordionPrimitive.Item {...otherProps} value={id} />;\n};\n\ntype AccordionBaseProps = {\n children: React.ReactNode[];\n\n /** Change what heading element accordion regions will render */\n as?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n /** Additional classes for Accordion root element */\n className?: string;\n};\n\nexport interface AccordionUncontrolledProps extends AccordionBaseProps {\n /** Default expanded accordion(s) */\n defaultId?: string | string[];\n\n id?: never;\n onChange?: never;\n}\n\nexport interface AccordionMultipleControlledProps extends AccordionBaseProps {\n /** Expanded accordions */\n id: string[];\n\n /** onChange function to receive ids of expanded accordions */\n onChange: (id: string[]) => void;\n\n defaultId?: never;\n}\nexport interface AccordionSingleControlledProps extends AccordionBaseProps {\n /** Expanded accordion */\n id: string;\n\n /** onChange function to receive id of expanded accordion */\n onChange: (id: string) => void;\n\n defaultId?: never;\n}\n\nexport type AccordionProps = AccordionUncontrolledProps | AccordionMultipleControlledProps | AccordionSingleControlledProps;\n\nexport const Accordion = (props: AccordionProps) => {\n const { id, defaultId, onChange, as = 'h2', ...otherProps } = props;\n const context = React.useMemo(() => ({ as }), [as]);\n\n let valueProps;\n\n if (defaultId) {\n valueProps = {\n defaultValue: defaultId || undefined,\n };\n } else {\n valueProps = {\n onValueChange: onChange,\n value: id || undefined,\n };\n }\n\n const type = typeof valueProps.defaultValue === 'string' || typeof valueProps.value === 'string' ? 'single' : 'multiple';\n const className = cn('divide-y divide-grey-200', props.className);\n\n return (\n <AccordionContext.Provider value={context}>\n <AccordionPrimitive.Root {...otherProps} {...valueProps} data-taco=\"accordion\" className={className} type={type} />\n </AccordionContext.Provider>\n );\n};\n\nAccordion.Item = Item;\nAccordion.Trigger = Trigger;\nAccordion.Content = Content;\n","import * as React from 'react';\n\ntype Props = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const VisuallyHidden = React.forwardRef(function VisuallyHidden(props: Props, ref: React.Ref<HTMLSpanElement>) {\n return <span {...props} className=\"sr-only\" ref={ref} />;\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { Color } from '../../types';\nimport { getSubtleColorShadeClasses, getColorShadeClasses, getOutlineColorShadeClasses } from '../../utils/tailwind';\nimport './Badge.css';\n\nexport type BadgeBaseProps = React.HTMLAttributes<HTMLSpanElement> & {\n /** Content should be a numerical value or tag/status like text **/\n children: React.ReactNode;\n /** Show small version of badge **/\n small?: boolean;\n /** Background color **/\n color?: Color;\n};\n\ninterface CompactBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: boolean;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface OutlineBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: boolean;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface SubtleBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface StatusBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: boolean;\n}\n\nexport type BadgeProps = CompactBadgeProps | OutlineBadgeProps | SubtleBadgeProps | StatusBadgeProps;\n\nexport const Badge = React.forwardRef(function Badge(props: BadgeProps, ref: React.Ref<HTMLSpanElement>) {\n const {\n children,\n compact = false,\n outline = false,\n status = false,\n subtle = false,\n small = false,\n color,\n ...otherProps\n } = props;\n const isTransparent = color === 'transparent';\n const className = cn(\n 'rounded-full border overflow-hidden whitespace-nowrap inline-flex items-center justify-center',\n {\n [`border ${getOutlineColorShadeClasses(color)}`]: outline,\n [`border-transparent font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,\n [`border-transparent ${getColorShadeClasses(color)}`]: !outline && !subtle,\n 'h-4 min-w-0 py-0 px-1 text-xs': small,\n 'h-2 w-2 min-w-0': compact,\n 'font-bold': outline || !subtle,\n 'text-sm': !small,\n 'h-5 py-0 px-1.5': !compact && !small, // custom padding keeps single digits in a perfect circle\n '!bg-grey-700': compact && isTransparent,\n },\n props.className\n );\n\n const content = () => {\n if (compact) {\n return <VisuallyHidden>{children}</VisuallyHidden>;\n }\n if (status) {\n return (\n <>\n <div className={cn('mr-1 h-2 w-2 rounded-full', getColorShadeClasses(color))} />\n {children}\n </>\n );\n }\n return children;\n };\n\n return (\n <span\n {...otherProps}\n aria-atomic=\"true\"\n aria-live=\"polite\"\n className={className}\n data-taco=\"badge\"\n ref={ref}\n role=\"status\"\n title={props['aria-label']}>\n {content()}\n </span>\n );\n});\n","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","// taken from react-aria\nconst FOCUSABLE_ELEMENTS = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"]):not([disabled])',\n 'details:not([disabled])',\n 'summary:not(:disabled)',\n];\n\nexport const hasFocusableElement = (element: HTMLElement | null) => {\n if (!element) {\n return null;\n }\n\n return !!element.querySelector(FOCUSABLE_ELEMENTS.join(','));\n};\n\nexport const isOverflowing = (element: HTMLElement | null) =>\n element !== null ? element.scrollWidth > element.offsetWidth : false;\n\nexport const getIndexOfFirstChildOverflowingParent = (element: HTMLElement, overscan = 0) => {\n let index = 0;\n let boundaryChildIndex: number | null = null;\n const clientRect = element.getBoundingClientRect();\n\n for (const child of Array.from(element.children)) {\n const right = child.getBoundingClientRect().right - clientRect.left;\n const width = clientRect.width - overscan;\n\n if (right > width) {\n boundaryChildIndex = index;\n break;\n }\n index++;\n }\n\n return boundaryChildIndex;\n};\n\nexport const getNextFocussableElement = (currentElement: HTMLElement | null) => {\n if (!currentElement) {\n return null;\n }\n\n const focussableElements = [...document.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENTS.join(','))];\n const currentElementIndex = focussableElements.indexOf(currentElement);\n\n // If the currentElement is not in the focussable elements list or it is the last element\n if (currentElementIndex !== -1 && currentElementIndex === focussableElements.length - 1) {\n return null;\n }\n\n return focussableElements[currentElementIndex + 1];\n};\n\nconst getOverlaySelector = (element: Element | null) => {\n switch (element?.getAttribute('role')) {\n case 'dialog':\n return `[aria-controls='${element.id}']`;\n\n case 'menu':\n return `#${element.getAttribute('aria-labelledby')}`;\n\n default:\n return undefined;\n }\n};\n\nexport function isElementInsideOrTriggeredFromContainer(element: Element | null, container: Element | null) {\n const selector = getOverlaySelector(element) ?? getOverlaySelector(element?.closest('[role=dialog],[role=menu]') ?? null);\n\n if (selector) {\n if (container?.querySelector(selector)) {\n return true;\n }\n\n const elementInDocument = document.querySelector(selector);\n\n // if the element does exist, see if it is itself connected to somethng that was triggered from the container\n if (elementInDocument) {\n return isElementInsideOrTriggeredFromContainer(elementInDocument, container);\n }\n\n return false;\n }\n\n return !!container?.contains(element);\n}\n\nexport function isElementInsideOverlay(element: Element | null) {\n return !!element?.closest('[role=dialog],[role=menu]');\n}\n\nexport function isSiblingElementInsideSameParentOverlay(element: Element | null, sibling: Element | null) {\n return !!element?.closest('[role=dialog],[role=menu]')?.contains(sibling);\n}\n\nexport function isElementInteractive(element: Element | null) {\n if (!element) {\n return false;\n }\n\n return (\n ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL', 'OPTION'].includes(element.tagName) &&\n !(element as HTMLElement).hidden &&\n !(element as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement).disabled &&\n !(element as HTMLInputElement | HTMLTextAreaElement).readOnly\n );\n}\n\nexport function isElementInsideTable3OrReport(element: Element | null) {\n return !!element?.closest('[data-taco^=table]');\n}\n\nexport function setDataFocusAttribute(target: Element) {\n target.setAttribute('data-focus', 'programmatic');\n\n const cleanup = () => {\n target.removeAttribute('data-focus');\n target.removeEventListener('blur', cleanup);\n };\n\n target.addEventListener('blur', cleanup);\n}\n","import React from 'react';\nimport { isElementInteractive } from './dom';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (\n event.target !== event.currentTarget &&\n isElementInteractive(event.target as HTMLElement) &&\n !isPressingMetaKey(event)\n ) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n","import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void\n) => {\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(\n shortcut,\n handler as (event: KeyboardEvent | React.KeyboardEvent) => void,\n false\n );\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut, handler]);\n};\n","import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n","import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport cn from 'clsx';\n\nexport type TooltipProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\n children: React.ReactElement | any;\n /** Use this value to hide tooltip conditionally */\n hide?: boolean;\n /** Text displayed in the tooltip */\n title: string | JSX.Element;\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, hide = false, ...otherProps } = props;\n const className = cn(otherProps.className);\n\n if (hide) {\n return children;\n }\n\n return (\n <TooltipPrimitive.Root delayDuration={250}>\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=\"xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm bg-blue-900 px-2 py-1 text-xs font-bold text-white print:hidden\"\n data-taco=\"tooltip\"\n style={{\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\n }}>\n <TooltipPrimitive.Arrow className=\"-mt-px fill-blue-900/90 stroke-blue-900/90\" />\n {title}\n </div>\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n});\n","import React from 'react';\nimport { Appearance } from '../../types';\nimport * as ButtonPrimitive from '../../primitives/Button';\nimport { Tooltip } from '../Tooltip/Tooltip';\n\nexport const getButtonClasses = () => {\n return 'flex-shrink-0 min-h-[theme(spacing.8)] min-w-[theme(spacing.8)] gap-1 h-max leading-5 inline-flex items-center justify-center focus-visible:yt-focus aria-disabled:cursor-not-allowed';\n};\n\nexport const getAppearanceClasses = (value: Appearance | undefined, icon = false): string => {\n switch (value) {\n case 'primary':\n return `wcag-blue-500 visited:wcag-blue-500 hover:wcag-blue-700 hover:active:wcag-blue-500 aria-disabled:bg-blue-500/50 aria-disabled:active:bg-blue-500/50`;\n\n case 'danger':\n return `wcag-red-500 visited:wcag-red-500 hover:wcag-red-700 hover:active:wcag-red-500 aria-disabled:bg-red-500/50 aria-disabled:active:bg-red-500/50`;\n\n case 'ghost':\n return `bg-white border border-blue-500 text-blue-500 visited:text-blue-500 hover:bg-blue-100 hover:text-blue-700 aria-disabled:border-blue-500/50 aria-disabled:text-blue-500/50 aria-disabled:bg-white`;\n\n case 'discrete': {\n if (icon) {\n return `bg-transparent text-black visited:text-black hover:bg-[#000]/[0.08] aria-disabled:text-black/30`;\n }\n\n return `bg-transparent text-blue-500 visited:text-blue-500 hover:text-blue-700 aria-disabled:text-blue-500/50`;\n }\n\n case 'transparent': {\n return `bg-transparent text-black visited:text-black hover:text-black hover:bg-[#000]/[0.08] aria-disabled:text-black/30 aria-disabled:bg-transparent`;\n }\n\n default:\n return `wcag-grey-200 visited:wcag-grey-200 hover:wcag-grey-300 aria-disabled:bg-grey-200/50 aria-disabled:text-black/30`;\n }\n};\n\nexport const createButtonWithTooltip = (\n props: any,\n className: string,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n): JSX.Element => {\n const { tooltip, ...buttonProps } = props;\n const button = <ButtonPrimitive.Button {...buttonProps} className={className} ref={ref} />;\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n};\n\nexport const createButtonWithOverlays = (props: any, buttonBase: JSX.Element) => {\n const { dialog, drawer, hanger, menu, popover } = props;\n let button = buttonBase;\n\n if (typeof dialog === 'function') {\n button = dialog({ trigger: button });\n } else if (typeof drawer === 'function') {\n button = drawer({ trigger: button });\n } else if (typeof menu === 'function') {\n button = menu({ trigger: button });\n } else if (typeof popover === 'function') {\n button = popover({ trigger: button });\n }\n\n if (typeof hanger === 'function') {\n button = hanger({ anchor: button });\n }\n\n return button;\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as ButtonPrimitive from '../../primitives/Button';\nimport { Icon, IconName } from '../Icon/Icon';\nimport { getAppearanceClasses, getButtonClasses, createButtonWithTooltip, createButtonWithOverlays } from '../Button/util';\nimport { Appearance } from '../../types';\nimport { DialogProps, HangerProps, MenuProps, PopoverProps } from '../..';\n\nexport type IconButtonProps = Omit<ButtonPrimitive.ButtonProps, 'children'> & {\n /** Appearance will change the style of the button */\n appearance?: Appearance;\n /**\n * Dialog component associated with the button, clicking the button will open the dialog.\n * *Note* that `onClick` event on button won't be handled, as in this case, the purpose of\n * the button should be only to open the associated dialog when clicked.\n */\n dialog?: (props: Partial<DialogProps>) => JSX.Element;\n /** Hanger component associated with the button. */\n hanger?: (props: Partial<HangerProps>) => JSX.Element;\n /** Set which icon should be rendered within button */\n icon: IconName; // this dynamic type causes the type extraction for props to fail\n /** Menu component associated with the button. */\n menu?: (props: Partial<MenuProps>) => JSX.Element;\n /**\n * Popover component associated with the button, clicking the button will open the popover.\n * *Note* that `onClick` event on button won't be handled, as in this case, the purpose of\n * the button should be only to open the associated popover when clicked.\n */\n popover?: (props: Partial<PopoverProps>) => JSX.Element;\n /**\n * Set whether the button is rounded.\n * Default value is `false`\n */\n rounded?: boolean;\n /** A tooltip to show when hovering over the button */\n tooltip?: string | JSX.Element;\n};\n\nexport const Base = React.forwardRef(function IconButtonBase(\n props: IconButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { icon, rounded = false, ...otherProps } = props;\n\n const className = cn(\n 'w-8',\n getButtonClasses(),\n getAppearanceClasses(otherProps.appearance, true),\n {\n 'rounded-full': rounded,\n rounded: !rounded,\n },\n props.className\n );\n\n if (!icon) {\n return null;\n }\n\n return createButtonWithTooltip(\n { ...otherProps, children: <Icon name={icon} className=\"m-0 p-0\" />, 'data-taco': 'icon-button' },\n className,\n ref\n );\n});\n\nexport const IconButton = React.forwardRef(function Button(\n props: IconButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { dialog, hanger, menu, popover, ...buttonProps } = props;\n const button = <Base {...buttonProps} ref={ref} />;\n\n return createButtonWithOverlays({ dialog, hanger, menu, popover }, button);\n});\n","import * as React from 'react';\nimport { Locale } from '../../types';\nimport { CalendarTexts } from '../Calendar/Calendar';\nimport { ComboboxTexts } from '../Combobox/Combobox';\nimport { DialogTexts } from '../Dialog/Dialog';\nimport { PaginationTexts } from '../Pagination/Pagination';\nimport { ListboxTexts } from '../Listbox/Listbox';\nimport { ToastsTexts } from '../Toast/Toast';\nimport { DatepickerTexts } from '../Datepicker/Datepicker';\nimport { HeaderTexts } from '../Header/Header';\nimport { HangerTexts } from '../Hanger/Hanger';\nimport { SelectTexts } from '../Select/Select';\nimport { TourTexts } from '../Tour/Tour';\nimport { LegacyTableTexts } from '../Table/Table';\nimport { Table3Texts } from '../Table3/types';\nimport { SearchInputTexts } from '../SearchInput/SearchInput';\nimport { Select2Texts } from '../Select2/Select2';\nimport { BannerTexts } from '../Banner/Banner';\nimport { DrawerTexts } from '../Drawer/Drawer';\nimport { TableTexts } from '../../primitives/Table/types';\n\nexport type LocalizationTexts = {\n /** Localized texts and aria-labels for [Banner](component:banner) component */\n banner: BannerTexts;\n /** Localized texts and aria-labels for [Calendar](component:calendar) component */\n calendar: CalendarTexts;\n /** Localized texts and aria-labels for [Combobox](component:combobox) component */\n combobox: ComboboxTexts;\n /** Localized texts and aria-labels for [DatePicker](component:datepicker) component */\n datepicker: DatepickerTexts;\n /** Localized texts and aria-labels for [Dialog](component:dialog) component */\n dialog: DialogTexts;\n /** Localized texts and aria-labels for [Hanger](component:hanger) component */\n hanger: HangerTexts;\n /** Localized texts and aria-labels for [Header](component:header) component */\n header: HeaderTexts;\n /** Localized texts and aria-labels for [Listbox](component:listbox) component */\n listbox: ListboxTexts;\n /** Localized texts and aria-labels for [Pagination](component:pagination) component */\n pagination: PaginationTexts;\n /** Localized texts and aria-labels for [Table](component:table) component */\n legacyTable: LegacyTableTexts;\n /** Localized texts and aria-labels for [Table](primitive:table) component */\n table: TableTexts;\n /** Localized texts and aria-labels for [Table3](component:table3) component */\n table3: Table3Texts;\n /** Localized texts and aria-labels for [SearchInput](component:searchinput) component */\n searchInput: SearchInputTexts;\n /** Localized texts and aria-labels for [Select](component:select) component */\n select: SelectTexts;\n /** Localized texts and aria-labels for [Select2](component:select2) component */\n select2: Select2Texts;\n /** Localized texts and aria-labels for [Toast](component:toast) component */\n toasts: ToastsTexts;\n /** Localized texts and aria-labels for [Tour](component:tour) component */\n tour: TourTexts;\n /** Localized texts and aria-labels for [Drawer](component:drawer) component */\n drawer: DrawerTexts;\n};\n\nexport type Localization = {\n /**\n * Provide the language code used in application.\n * Default value is `en-GB`\n */\n locale: Locale;\n /** Provide the texts and aria-labels for components used within the provider */\n texts: LocalizationTexts;\n /** Provide the formatting */\n formatting: {\n /** Default value is `dd.mm.yy` */\n date: string;\n };\n};\n\nexport const defaultLocalisationTexts = {\n banner: {\n close: 'Close',\n },\n calendar: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n weekdays: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],\n actions: {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n today: 'Today',\n },\n },\n combobox: {\n tooltip: 'Search in list',\n },\n datepicker: {\n calendar: 'Calendar',\n clear: 'Clear',\n expand: 'Show calendar',\n shortcuts: 'Shortcuts',\n },\n dialog: {\n close: 'Close',\n drag: 'Drag',\n },\n hanger: {\n close: 'Close',\n },\n header: {\n addAgreement: 'Add agreement',\n logout: 'Log off',\n more: 'More',\n new: 'New',\n search: 'Search for agreement...',\n },\n listbox: {\n loading: 'Loading results...',\n empty: 'No results found',\n allOption: 'All',\n },\n pagination: {\n label: 'Pagination',\n pageSize: 'Items per page',\n showingXofYofTotal: 'Showing [X] - [Y] of [total]',\n actions: {\n firstPage: 'Goto first page',\n firstPageWithShortcut: 'Goto first page (Home)',\n previousPage: 'Goto previous page',\n previousPageWithShortcut: 'Goto previous page (Page Up)',\n nextPage: 'Goto next page',\n nextPageWithShortcut: 'Goto next page (Page Down)',\n lastPage: 'Goto last page',\n lastPageWithShortcut: 'Goto last page (End)',\n pageX: 'Goto page [X]',\n },\n },\n legacyTable: {\n actions: 'Other actions',\n edit: 'Edit (e)',\n copy: 'Copy (c)',\n del: 'Delete (del)',\n newSubRow: 'New row (shift + n)',\n loading: 'Loading...',\n },\n table: {\n columns: {\n actions: {\n tooltip: 'Row actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n menu: {\n editFilter: 'Edit filter',\n filter: 'Filter',\n freezeFirstColumn: 'Freeze the first column',\n freezeUptoColumn: `Freeze first [TOTAL] columns`,\n gotoRow: 'Go to',\n hideColumn: 'Hide column',\n unfreezeColumns: 'Unfreeze all columns',\n sorting: 'Sorting',\n sortingOrder: {\n ascending: 'Ascending order',\n descending: 'Descending order',\n unsorted: 'No sorting',\n },\n },\n resize: {\n tooltip: 'Resize column',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Column settings',\n button: 'Column settings',\n noResults: 'No results',\n },\n filters: {\n button: 'Filters',\n buttons: {\n addFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n cancel: 'Cancel',\n clear: 'Clear',\n apply: 'Apply',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n isBefore: 'Is before',\n isAfter: 'Is after',\n isOnOrBefore: 'Is on or before',\n isOnOrAfter: 'Is on or after',\n isLessThanOrEqualTo: 'Is less than or equal to',\n isGreaterThanOrEqualTo: 'Is greater than or equal to',\n hasAnyOf: 'Has any of',\n hasAllOf: 'Has all of',\n hasNoneOf: 'Has none of',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n hiddenColumn: 'Hidden column',\n hiddenGroupedColumn: 'Hidden grouped column',\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n fontSize: {\n tooltip: 'Font size',\n sizes: {\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n },\n },\n footer: {\n summary: {\n count: 'of',\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n print: {\n error: 'An error occurred while creating a print preview',\n loading: 'Creating a print preview',\n tooltip: 'Print',\n warningDialog: {\n title: 'Extra loading time',\n description:\n 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',\n checkboxVisibilityLabel: \"Don't show again\",\n cancelButtonText: 'Cancel',\n printButtonText: 'Print',\n },\n settingsDialog: {\n title: 'Print settings',\n size: 'Paper size',\n sizeA5: 'A5',\n sizeA4: 'A4',\n sizeA3: 'A3',\n sizeLetter: 'Letter',\n sizeLegal: 'Legal',\n orientation: 'Paper orientation',\n orientationLandscape: 'Landscape',\n orientationPortrait: 'Portrait',\n rows: 'Print rows',\n rowsAll: 'All',\n rowsSelected: 'Selected',\n layout: 'Page layout',\n layoutSplitGroups: 'New page for each [COLUMN]',\n },\n },\n rowHeight: {\n tooltip: 'Row height',\n sizes: {\n short: 'Short',\n medium: 'Medium',\n tall: 'Tall',\n extraTall: 'Extra tall',\n },\n },\n search: {\n excludeUnmatchedResults: 'Show only search results',\n placeholder: 'Search...',\n },\n otherOptions: {\n tooltip: 'Table settings',\n },\n },\n table3: {\n editing: {\n actions: {\n tooltip: 'Row actions',\n save: 'Save',\n clear: 'Clear changes',\n exit: 'Exit edit mode',\n },\n buttons: {\n edit: {\n tooltip: 'Edit table',\n },\n create: {\n label: 'New',\n },\n },\n clearChangesConfirmationDialog: {\n title: 'Discard changes',\n description: 'Are you sure you want to discard changes? Your changes will be lost.',\n cancel: 'Continue editing',\n confirm: 'Discard',\n },\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n saving: {\n progress: 'Saving...',\n complete: 'Saved',\n },\n validation: {\n alert: {\n titleOne: '[COUNT] unsaved entry:',\n titlePlural: '[COUNT] unsaved entries:',\n messageOne: \"[COLUMN] [ROW] is incomplete and hasn't been saved.\",\n messagePlural: \"[COLUMN] [ROW] are incomplete and haven't been saved.\",\n messageRow: 'Row',\n messageAnd: 'and',\n },\n resetFiltersDialog: {\n title: 'Row is hidden',\n description: 'The row is hidden due to filtering.',\n cancel: 'Cancel',\n confirm: 'Remove filters',\n },\n },\n },\n },\n searchInput: {\n button: 'Search',\n findNext: 'Next',\n findPrevious: 'Previous',\n placeholder: 'Search...',\n clear: 'Clear',\n },\n select: {\n allOptionsSelected: 'All',\n },\n select2: {\n allSelect: 'Select all',\n allDeselect: 'Deselect all',\n cancel: 'Cancel',\n chooseColor: 'Pick a color',\n create: 'Create',\n delete: 'Delete',\n save: 'Save',\n search: 'Search...',\n searchOrCreate: 'Search or create...',\n selectAll: 'Select all',\n selectAllResults: 'Select all results',\n deselectAll: 'Deselect all',\n deselectAllResults: 'Deselect all results',\n },\n toasts: {\n dismiss: 'Dismiss',\n },\n tour: {\n back: 'Back',\n close: 'Close',\n skip: 'Close and complete',\n last: 'Done',\n next: 'Next',\n open: 'Open',\n },\n drawer: {\n close: 'Close',\n back: 'Back',\n },\n};\n\nexport const defaultLocalizationContext: Localization = {\n locale: 'en-GB',\n texts: defaultLocalisationTexts,\n formatting: {\n date: 'dd.mm.yy',\n },\n};\n\nexport const LocalizationContext = React.createContext<Localization>(defaultLocalizationContext);\nexport interface LocalizationProviderProps {\n children: React.ReactNode;\n localization?: Localization;\n}\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({ localization, children }) => {\n return (\n <LocalizationContext.Provider value={localization ?? defaultLocalizationContext}>{children}</LocalizationContext.Provider>\n );\n};\n\nexport const useLocalization = () => React.useContext(LocalizationContext);\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { State } from '../../types';\nimport { getBannerIcon } from './util';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type BannerProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Content can be any react element, for e.g. a `div` */\n children: React.ReactNode;\n /** State will change the icon displayed in banner */\n state: State;\n onClose?: () => void;\n};\n\nexport type BannerTexts = {\n /** Aria-label for the close icon button of banner */\n close: string;\n};\n\nexport const Banner = React.forwardRef(function Banner(props: BannerProps, ref: React.Ref<HTMLDivElement>) {\n const { children, state, onClose } = props;\n const { texts } = useLocalization();\n const className = cn('bg-white relative flex items-center gap-2 py-2 px-4 leading-6 shadow-md z-10', props.className);\n\n return (\n <div className={className} data-taco=\"banner\" ref={ref}>\n {getBannerIcon(state)}\n {children}\n {onClose ? (\n <IconButton\n aria-label={texts.banner.close}\n className=\"-mr-2 ml-auto self-start\"\n icon=\"close\"\n appearance=\"discrete\"\n onClick={onClose}\n />\n ) : null}\n </div>\n );\n});\n","import React from 'react';\nimport { State } from '../../types';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBannerIcon = (type: State): JSX.Element | null => {\n return (\n <div className=\"mt-[5px] self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { Appearance } from '../../types';\nimport * as ButtonPrimitive from '../../primitives/Button';\nimport { getAppearanceClasses, getButtonClasses, createButtonWithTooltip, createButtonWithOverlays } from './util';\nimport { HangerProps } from '../Hanger/Hanger';\nimport { MenuProps } from '../Menu/Menu';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { PopoverProps } from '../Popover/Popover';\nimport './Button.css';\nimport { Icon } from '../Icon/Icon';\nimport { DrawerProps } from '../Drawer/Drawer';\n\nexport type ButtonProps = ButtonPrimitive.ButtonProps & {\n /** Appearance will change the style of the button */\n appearance?: Appearance;\n /**\n * Dialog component associated with the button, clicking the button will open the dialog.\n * *Note* that `onClick` event on button won't be handled, as in this case, the purpose of\n * the button should be only to open the associated dialog when clicked.\n */\n dialog?: (props: Partial<DialogProps>) => JSX.Element;\n /**\n * Drawer component associated with the button, clicking the button will open the drawer.\n * *Note* that `onClick` event on button won't be handled, as in this case, the purpose of\n * the button should be only to open the associated drawer when clicked.\n */\n drawer?: (props: Partial<DrawerProps>) => JSX.Element;\n /** If fluid, button expands to the width of it's container */\n fluid?: boolean;\n /** Hanger component associated with the button. */\n hanger?: (props: Partial<HangerProps>) => JSX.Element;\n /** Menu component associated with the button. */\n menu?: (props: Partial<MenuProps>) => JSX.Element;\n /**\n * Popover component associated with the button, clicking the button will open the popover.\n * *Note* that `onClick` event on button won't be handled, as in this case, the purpose of\n * the button should be only to open the associated popover when clicked.\n */\n popover?: (props: Partial<PopoverProps>) => JSX.Element;\n /** A tooltip to show when hovering over the button */\n tooltip?: string | JSX.Element;\n};\n\nconst Base = React.forwardRef(function ButtonBase(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { appearance, fluid, ...otherProps } = props;\n const className = cn(\n getButtonClasses(),\n getAppearanceClasses(appearance),\n 'rounded px-3',\n {\n 'w-full': fluid,\n },\n props.className\n );\n\n return createButtonWithTooltip({ ...otherProps, 'data-taco': 'button' }, className, ref);\n});\n\nexport const Button = React.forwardRef(function Button(\n props: ButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { dialog, drawer, hanger, menu, popover, ...buttonProps } = props;\n\n let children = buttonProps.children;\n\n // add a chevron icon to menu buttons\n if (typeof menu === 'function') {\n children = Array.isArray(children)\n ? [...children, <Icon key=\"chevron-down\" name=\"chevron-down\" />]\n : [children, <Icon key=\"chevron-down\" name=\"chevron-down\" />];\n }\n\n const button = (\n <Base {...buttonProps} ref={ref}>\n {children}\n </Base>\n );\n\n return createButtonWithOverlays({ dialog, drawer, hanger, menu, popover }, button);\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { Button, CaptionProps, DayClickEventHandler, DayPicker, Matcher } from 'react-day-picker';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport './Calendar.css';\n\nexport type CalendarTextsActions = {\n /** Aria-label for previous month action button */\n previousMonth: string;\n /** Aria-label for next month action button */\n nextMonth: string;\n /** Aria-label for previous year action button */\n previousYear: string;\n /** Aria-label for next year action button */\n nextYear: string;\n /** Text displayed within today action button */\n today: string;\n};\n\nexport type CalendarTexts = {\n /** Text and aria-label for action buttons in Calendar */\n actions: CalendarTextsActions;\n /** Text abbreviation for months in Calendar's header, starting with January */\n months: string[];\n /** Text abbreviation for days in Calendar's header, starting with Sunday */\n weekdaysShort: string[];\n /** Text for days in Calendar's header, starting with Sunday */\n weekdays: string[];\n};\n\n/** @internal */\ntype CustomNavbarElementProps = {\n onMonthChange: (month: Date) => void;\n value?: Date;\n};\n\nconst thisYear = new Date().getFullYear();\nconst years: number[] = [];\n\nfor (let i = thisYear - 50; i <= thisYear + 10; i += 1) {\n years.push(i);\n}\n\nconst Navbar = React.memo(({ onMonthChange, value = new Date() }: CustomNavbarElementProps): JSX.Element => {\n const {\n texts: {\n calendar: { actions, months },\n },\n } = useLocalization();\n\n const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const { year, month } = event.target.form as HTMLFormElement;\n onMonthChange(new Date(year.value, month.value));\n };\n\n const onNextClick = () => {\n onMonthChange(new Date(value.getFullYear(), value.getMonth() + 1, value.getDay()));\n };\n\n const onPreviousClick = () => {\n onMonthChange(new Date(value.getFullYear(), value.getMonth() - 1, value.getDay()));\n };\n\n return (\n <div className=\"mb-3 flex items-center justify-between\">\n <form className=\"inline-flex space-x-1\">\n <select className=\"h-8 px-2\" name=\"month\" onChange={handleChange} value={value.getMonth()}>\n {months.map((month, i) => (\n <option key={month} value={i}>\n {month}\n </option>\n ))}\n </select>\n <select className=\"h-8 px-2\" name=\"year\" onChange={handleChange} value={value.getFullYear()}>\n {years.map(year => (\n <option key={year} value={year}>\n {String(year)}\n </option>\n ))}\n </select>\n </form>\n <div>\n <Tooltip title={actions.previousMonth}>\n <IconButton\n appearance=\"discrete\"\n icon=\"chevron-left\"\n aria-label={actions.previousMonth}\n onClick={onPreviousClick}\n rounded\n />\n </Tooltip>\n <Tooltip title={actions.nextMonth}>\n <IconButton\n appearance=\"discrete\"\n icon=\"chevron-right\"\n aria-label={actions.nextMonth}\n onClick={onNextClick}\n rounded\n />\n </Tooltip>\n </div>\n </div>\n );\n});\n\nexport type CalendarProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'value'> & {\n /** Handler called when a day is clicked in calendar */\n onChange: (date: Date, event?: React.MouseEvent<Element>) => void;\n value?: Date;\n disabledDays?: Matcher[];\n};\n\nconst TodayButton = ({ handleChange }: { handleChange: (month: Date) => void }) => {\n const { texts } = useLocalization();\n\n const handleCalendarClickToday = (): void => {\n const today = new Date();\n\n // set to midday to avoid UTC offset causing dates to be mismatched server side\n today.setHours(12);\n today.setMinutes(0);\n today.setSeconds(0);\n\n handleChange(today);\n };\n return (\n <Button\n className=\"cursor-pointer border-none bg-transparent text-xs text-blue-500 hover:text-blue-300\"\n onClick={handleCalendarClickToday}>\n {texts.calendar.actions.today}\n </Button>\n );\n};\n\nexport const Calendar = (props: CalendarProps) => {\n const { onChange: handleChange, value, disabledDays, ...otherProps } = props;\n const [visibleMonth, setVisibleMonth] = React.useState(value ?? new Date());\n const { texts } = useLocalization();\n\n React.useEffect(() => {\n if (visibleMonth !== value) {\n setVisibleMonth(value ?? new Date());\n }\n // visibleMonth in deps array breaking month switching logic. It should not be in deps array.\n }, [value]);\n\n const handleDayClick: DayClickEventHandler = (date, modifiers, event) => {\n if (modifiers.outside || modifiers.disabled) {\n return;\n }\n\n handleChange(date, event);\n };\n\n const className = cn('flex bg-white text-xs p-2', otherProps.className);\n\n return (\n <div data-taco=\"calendar\">\n <DayPicker\n className={className}\n captionLayout=\"dropdown-buttons\"\n weekStartsOn={1}\n month={visibleMonth}\n numberOfMonths={1}\n components={{\n Caption: (props: CaptionProps) => <Navbar {...props} onMonthChange={setVisibleMonth} value={visibleMonth} />,\n Footer: () => (\n <tfoot>\n <tr>\n <td colSpan={7} className=\"text-center\">\n <TodayButton handleChange={handleChange} />\n </td>\n </tr>\n </tfoot>\n ),\n HeadRow: () => (\n <tr>\n {texts.calendar.weekdaysShort.map((weekday, index) => {\n const label = texts.calendar.weekdays && texts.calendar.weekdays[index];\n return (\n <th key={weekday} aria-label={label} className=\"rdp-head_cell\" title={label}>\n {weekday}\n </th>\n );\n })}\n </tr>\n ),\n }}\n onDayClick={handleDayClick}\n selected={value}\n disabled={disabledDays}\n />\n </div>\n );\n};\n","import React from 'react';\n\nconst isElementTruncated = (targetElement: HTMLElement | null) => {\n if (targetElement !== null) {\n return targetElement.offsetWidth < targetElement.scrollWidth;\n }\n\n return false;\n};\n\nexport const useTruncated = (element: HTMLElement | null, deps: any[] = []) => {\n const [isTruncated, setIsTruncated] = React.useState<boolean>(isElementTruncated(element));\n\n React.useEffect(() => {\n setIsTruncated(isElementTruncated(element));\n }, [element, ...deps]);\n\n return { isTruncated };\n};\n","import React from 'react';\nimport cn from 'clsx';\n\nimport { useTruncated } from '../../utils/hooks/useTruncated';\nimport { Tooltip } from '../Tooltip/Tooltip';\n\nexport type TruncateProps = {\n children: React.ReactElement;\n tooltip: string;\n};\n\nexport const Truncate = ({ children, tooltip }: TruncateProps) => {\n const ref = React.useRef<HTMLElement>(null);\n const [mounted, setMounted] = React.useState(false);\n const { isTruncated } = useTruncated(ref.current, [mounted]);\n\n React.useEffect(() => {\n setMounted(true);\n\n return () => setMounted(false);\n }, []);\n\n const clonedChildrenWithRef = React.cloneElement(React.Children.only(children), {\n ref,\n className: cn(children.props.className, 'truncate', { 'hover:cursor-pointer': isTruncated }),\n });\n\n if (isTruncated) {\n return <Tooltip title={tooltip}>{clonedChildrenWithRef}</Tooltip>;\n }\n\n return clonedChildrenWithRef;\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { MenuProps } from '../Menu/Menu';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Truncate } from '../Truncate/Truncate';\nimport './style.css';\n\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement> & {\n noPadding?: boolean;\n};\n\nconst Content = React.forwardRef<HTMLDivElement, CardContentProps>(function CardContent(externalProps, ref) {\n const { noPadding, ...props } = externalProps;\n const className = cn(\n 'flex-grow overflow-auto',\n {\n 'mx-4 mb-4': !noPadding,\n },\n props.className\n );\n return <div {...props} className={className} data-taco=\"card-content\" ref={ref} />;\n});\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Title of the Card */\n title: string | React.ReactElement;\n /** Menu component associated with the Card */\n menu?: (props: Partial<MenuProps>) => JSX.Element;\n};\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(function Card(props, ref) {\n const { title, menu, children } = props;\n const className = cn(\n 'bg-white flex flex-col rounded-xl border border-solid border-radius-[12px] border-grey-300 hover:border-grey-500',\n props.className\n );\n\n return (\n <div className={className} data-taco=\"card\" ref={ref}>\n <div className=\"mx-4 mb-2 mt-4 flex justify-between\">\n {title && (\n <Truncate tooltip={title}>\n <h4 className=\"mb-0 flex-grow truncate text-left\">{title}</h4>\n </Truncate>\n )}\n {menu ? <IconButton icon=\"ellipsis-horizontal\" appearance=\"discrete\" menu={menu} className=\"-mt-[4px]\" /> : null}\n </div>\n {children}\n </div>\n );\n}) as React.ForwardRefExoticComponent<CardProps> & {\n Content: React.ForwardRefExoticComponent<CardContentProps>;\n};\nCard.Content = Content;\n","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","import React from 'react';\nimport cn from 'clsx';\nimport './Spinner.css';\n\nexport type SpinnerProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * Define a delay in milliseconds after which the spinner is shown.\n * Default value is `350`ms\n */\n delay?: number;\n /** Define a text that will be displayed below spinner */\n label?: string;\n};\n\nexport const Spinner = React.forwardRef(function Spinner(props: SpinnerProps, ref: React.Ref<HTMLDivElement>) {\n const { delay = 350, label, ...otherProps } = props;\n const [visible, setVisibility] = React.useState(!delay);\n\n React.useEffect(() => {\n let timeout: number;\n\n if (delay) {\n timeout = window.setTimeout(() => setVisibility(true), delay);\n }\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n }, [delay]);\n\n if (!visible) {\n return null;\n }\n\n const className = cn('inline-flex flex-col relative items-center', otherProps.className);\n\n return (\n <div {...otherProps} className={className} data-taco=\"spinner\" ref={ref}>\n <svg\n className=\"h-10 w-10 animate-[spinnerRotation_2s_linear_infinite]\"\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"50\" cy=\"50\" r=\"45\"></circle>\n </svg>\n {label && <span className=\"mt-4\">{label}</span>}\n </div>\n );\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Icon } from '../Icon/Icon';\nimport { useId } from '../../hooks/useId';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxBaseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> & {\n /**\n * Indeterminate state should only be used with sub-checkboxes. The indeterminate state is shown if not all\n * sub-checkboxes are selected. This only affects the style, changing the icon in the checkbox.\n */\n indeterminate?: boolean;\n /* Whether the checkbox is in an invalid state */\n invalid?: boolean;\n /** Label for the checkbox */\n label?: React.ReactNode;\n /** Displays loading state in checkbox */\n loading?: boolean;\n /* Whether user input is required */\n required?: boolean;\n};\n\nexport interface UncontrolledCheckboxProps extends CheckboxBaseProps {\n checked?: never;\n onChange?: never;\n /* The default checked state (uncontrolled) */\n defaultChecked?: boolean;\n}\n\nexport interface ControlledCheckboxProps extends CheckboxBaseProps {\n defaultChecked?: never;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean) => void;\n}\n\nexport type CheckboxProps = UncontrolledCheckboxProps | ControlledCheckboxProps;\n\nexport const Checkbox = React.forwardRef(function Checkbox(props: CheckboxProps, ref: React.Ref<HTMLButtonElement>) {\n const { checked, indeterminate, invalid, label, loading, onChange, ...otherProps } = props;\n const id = useId(props.id);\n\n const className = cn(\n 'bg-white h-5 w-5 border rounded text-sm flex-shrink-0 mt-[0.1rem] focus-visible:yt-focus disabled:cursor-not-allowed text-white',\n {\n 'self-start': !!label,\n },\n invalid\n ? {\n 'border-red-500 hover:border-red-700 aria-checked:border-red-500 aria-checked-mixed:border-red-500 aria-checked:bg-red-500 aria-checked-mixed:bg-red-500 aria-checked:hover:border-red-700 aria-checked-mixed:hover:border-red-700 aria-checked:hover:bg-red-700 aria-checked-mixed:hover:bg-red-700':\n !props.disabled,\n 'border-red-500/50 aria-checked:wcag-red-500/50 aria-checked-mixed:wcag-red-500/50': props.disabled,\n }\n : {\n 'border-grey-500 hover:border-grey-700 aria-checked:border-blue-500 aria-checked-mixed:border-blue-500 aria-checked:bg-blue-500 aria-checked-mixed:bg-blue-500 aria-checked:hover:border-blue-700 aria-checked-mixed:hover:border-blue-700 aria-checked:hover:bg-blue-700 aria-checked-mixed:hover:bg-blue-700':\n !props.disabled,\n 'border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked-mixed:bg-blue-500/50': props.disabled,\n },\n props.className\n );\n\n let handleChange: ((checked: CheckedState) => void) | undefined;\n\n if (onChange) {\n handleChange = (checked: CheckedState) => onChange(checked === 'indeterminate' ? false : checked);\n }\n\n let labelledByProps: Record<string, string> | null = null;\n\n if (label) {\n labelledByProps = {\n 'aria-labelledby': `${id}-label`,\n id,\n };\n }\n\n // the enter keyboard shortcut isn't supported by default, but we want it\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n event.currentTarget.click();\n }\n };\n\n const spinnerClassname = cn(\n //Spinner is slightly bigger then 'line' and 'tick' icons, so making it 2px smaller from each side\n \"m-0.5 !h-[calc(100%-theme('spacing.1'))] !w-[calc(100%-theme('spacing.1'))]\",\n { 'text-blue-500': !checked && !indeterminate }\n );\n\n const element = (\n <CheckboxPrimitive.Root\n {...otherProps}\n {...labelledByProps}\n aria-invalid={invalid ? 'true' : undefined}\n data-taco=\"checkbox\"\n checked={indeterminate ? 'indeterminate' : checked}\n className={className}\n onCheckedChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={ref}>\n {loading ? (\n <Spinner className={spinnerClassname} />\n ) : (\n <CheckboxPrimitive.Indicator className=\"flex h-full w-full\">\n <Icon name={indeterminate ? 'line' : 'tick'} className=\"!h-full !w-full\" />\n </CheckboxPrimitive.Indicator>\n )}\n </CheckboxPrimitive.Root>\n );\n\n if (label) {\n const labelContainerClassName = cn('flex items-center cursor-pointer gap-2', {\n 'cursor-not-allowed text-grey-300': props.disabled,\n });\n\n return (\n <span className={labelContainerClassName} data-taco=\"checkbox-container\">\n {element}\n <label htmlFor={id} id={`${id}-label`}>\n {label}\n </label>\n </span>\n );\n }\n\n return element;\n});\nCheckbox.displayName = 'Checkbox';\n","import cn from 'clsx';\n\nexport const getInputClasses = props => {\n const disabled = props.disabled || !!props['aria-disabled'];\n const readOnly = props.readOnly || !!props['aria-readonly'];\n const invalid = props.invalid || !!props['aria-invalid'];\n\n return cn(\n 'peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus-visible:yt-focus',\n // hide the arrow controls on input[type=number]\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n {\n 'bg-white': !props.highlighted && !readOnly,\n // default\n 'border-grey-300 enabled:hover:border-grey-500 disabled:border-grey-200': !invalid,\n // disabled\n 'text-opacity-25 cursor-not-allowed placeholder:text-grey-700': disabled,\n // highlighted\n 'bg-yellow-100/50': props.highlighted && disabled,\n 'bg-yellow-100': props.highlighted && !disabled,\n // invalid\n 'border-red-500 enabled:hover:border-red-700 disabled:border-red-500/50': invalid,\n // readOnly\n 'cursor-not-allowed text-black bg-grey-200': readOnly,\n }\n );\n};\n\nexport const getButtonStateClasses = (invalid: boolean | undefined, disabled = false): string => {\n if (invalid) {\n return cn('border border-red-500 group-peer-hover:enabled:border-red-700 transition-colors ease-in', {\n 'border-red-500/30': disabled,\n });\n }\n\n return 'border border-grey-300 group-peer-hover:enabled:border-grey-500 transition-colors transition-opacity ease-in';\n};\n","export const debounce = (fn: Function, delay: number) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), delay);\n };\n};\n","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","import * as React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../Icon/Icon';\nimport { getButtonStateClasses, getInputClasses } from './util';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { isPressingMetaKey } from '../../utils/keyboard';\n\nexport type InputWithoutDeprecatedFeaturesProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix'> & {\n /** Draws attention to the input by changing its style and making it visually prominent */\n highlighted?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n postfix?: string | JSX.Element;\n prefix?: string | JSX.Element;\n};\n\nconst validSetSelectionRangeTypes = ['text', 'search', 'url', 'tel', 'password'];\n\nconst InputWithoutDeprecatedFeatures = React.forwardRef(function InputWithoutDeprecatedFeatures(\n props: InputWithoutDeprecatedFeaturesProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const { highlighted, invalid, onKeyDown, postfix, prefix, type = 'text', ...attributes } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n\n // input[type=number] does not support setSelectionRange by default, this adds support\n React.useLayoutEffect(() => {\n if (internalRef.current && type === 'number') {\n (function (fn) {\n internalRef.current.setSelectionRange = function (...args) {\n if (this.type === 'number') {\n this.type = 'text';\n fn.apply(this, args);\n this.type = 'number';\n } else {\n fn.apply(this, args);\n }\n };\n })(internalRef.current.setSelectionRange);\n }\n }, []);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n // prevent any external keyboard shortcuts from executing while typing single characters in input\n if (event.key.length === 1 && !isPressingMetaKey(event)) {\n event.stopPropagation();\n }\n\n // home and end keys only navigate to the start/end of input value if the input container does not scroll\n // if it has scroll height then the browser reverts to native scrolling behaviour only\n // so we manually override it to ensure _our_ desired behaviour remains intact\n // only the 'text', 'search', 'url', 'tel', 'password' input types support setSelectionRange\n if (validSetSelectionRangeTypes.includes(type)) {\n if (!event.shiftKey && (event.key === 'Home' || event.key === 'End')) {\n event.preventDefault();\n const position = event.key === 'End' ? event.currentTarget.value.length : 0;\n event.currentTarget.setSelectionRange(position, position);\n\n // Necessary for ensuring the cursor is scrolled into view when using Home/End keys on Windows\n if (internalRef.current) {\n const scrollPosition = event.key === 'End' ? internalRef.current.scrollWidth : 0;\n internalRef.current.scrollLeft = scrollPosition;\n }\n }\n }\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n }\n };\n\n const prefixRef = React.useRef<HTMLDivElement>(null);\n const prefixRect = useBoundingClientRectListener(prefixRef);\n const postfixRef = React.useRef<HTMLDivElement>(null);\n const postfixRect = useBoundingClientRectListener(postfixRef, [postfix]);\n\n const className = cn(\n getInputClasses(props),\n {\n 'pl-8': !!prefix,\n 'pr-8': !!postfix,\n },\n attributes.className\n );\n\n const typeAttributes: Partial<React.InputHTMLAttributes<HTMLInputElement>> = {\n type,\n };\n\n if (type === 'number') {\n typeAttributes.onWheelCapture = (event: React.WheelEvent<HTMLInputElement>) => {\n // blur is the only way to prevent scroll, so restore focus if it had it\n if (document.activeElement === event.currentTarget) {\n requestAnimationFrame(() => {\n (event.target as HTMLInputElement).focus();\n });\n }\n // blur the field on scroll - only way to prevent scroll\n event.currentTarget.blur();\n };\n }\n\n return (\n <div className=\"relative inline-flex h-fit w-full\" data-taco=\"input-container\" style={{ opacity: 0.999 }}>\n <input\n {...attributes}\n {...typeAttributes}\n aria-invalid={invalid}\n className={className}\n data-highlighted={highlighted}\n data-taco=\"input\"\n onKeyDown={handleKeyDown}\n ref={internalRef}\n style={{\n paddingLeft: prefixRect ? `${prefixRect.width - 1}px` : undefined,\n paddingRight: postfixRect ? `${postfixRect.width - 1}px` : undefined,\n }}\n />\n {prefix ? <Affix type=\"prefix\" children={prefix} disabled={attributes.disabled} ref={prefixRef} /> : null}\n {postfix ? <Affix type=\"postfix\" children={postfix} disabled={attributes.disabled} ref={postfixRef} /> : null}\n </div>\n );\n});\n\ntype AffixProps = {\n children: string | JSX.Element;\n disabled?: boolean;\n type: 'prefix' | 'postfix';\n};\nconst Affix = React.memo(\n React.forwardRef(function Affix(props: AffixProps, ref: React.Ref<HTMLDivElement>) {\n const { children, disabled, type } = props;\n\n return (\n <div\n className={cn(\n 'group absolute top-0 flex h-full items-center justify-center px-2',\n // icon\n '[&_[data-taco=\"icon\"]]:!h-5 [&_[data-taco=\"icon\"]]:!w-5',\n {\n 'text-grey-300': disabled,\n 'text-grey-700': !disabled,\n 'left-0 [&>button]:!-ml-2': type === 'prefix',\n 'right-0 [&>button]:!-mr-2': type === 'postfix',\n }\n )}\n data-affix-type={type}\n ref={ref}>\n {children}\n </div>\n );\n })\n);\n\nexport type InputProps = InputWithoutDeprecatedFeaturesProps & {\n /** Shows a button within the input field */\n button?: React.ReactElement;\n /** Shows an icon within the input field */\n icon?: IconName | JSX.Element;\n};\n\nexport const Input = React.forwardRef(function LegacyInput(props: InputProps, ref: React.Ref<HTMLInputElement>) {\n const { button, icon, ...attributes } = props;\n\n let postfix;\n\n if (button) {\n const disabled = button.props.disabled || attributes.disabled;\n const buttonClassName = cn(\n 'items-center focus:z-10 flex justify-center rounded-l-none rounded-r h-full focus:rounded focus:outline-none',\n getButtonStateClasses(attributes.invalid, disabled),\n button.props.className\n );\n postfix = React.cloneElement(button, {\n className: buttonClassName,\n disabled,\n });\n } else if (icon) {\n postfix = typeof icon === 'string' ? <Icon name={icon} /> : icon;\n }\n\n return <InputWithoutDeprecatedFeatures {...attributes} postfix={attributes.postfix ?? postfix} ref={ref} />;\n});\n","import React from 'react';\nimport { Orientation } from '../../types';\n\nexport const getNextIndexFromKey = (\n key: string,\n length: number,\n index: number | undefined,\n direction: Orientation = 'vertical'\n): number | undefined => {\n const previousKey = direction === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n const nextKey = direction === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n\n switch (key) {\n case previousKey:\n return index !== undefined ? (index - 1 < 0 ? 0 : index - 1) : index;\n\n case nextKey:\n return index !== undefined ? (index + 1 >= length ? index : index + 1) : index;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport type useListKeyboardNavigationOptions = {\n direction?: Orientation;\n initialIndex?: number;\n};\n\nexport const useListKeyboardNavigation = (\n length = 0,\n options: useListKeyboardNavigationOptions = {\n direction: 'vertical',\n }\n): [number | undefined, (index: number | undefined) => void, (event: React.KeyboardEvent<HTMLElement>) => number | undefined] => {\n const [index, setIndex] = React.useState<number | undefined>(options.initialIndex);\n\n const getNextIndex = (event: React.KeyboardEvent<HTMLElement>): number | undefined => {\n const nextIndex = getNextIndexFromKey(event.key, length, index, options.direction);\n\n if (nextIndex !== undefined) {\n event.preventDefault();\n }\n\n return nextIndex;\n };\n\n return [index, setIndex, getNextIndex];\n};\n","const scrollToChildElement = (parent: HTMLElement, child: HTMLElement): void => {\n const clientHeight = parent.clientHeight;\n\n if (parent.scrollHeight > clientHeight) {\n const scrollTop = parent.scrollTop;\n const scrollBottom = clientHeight + scrollTop;\n const childBottom = child.offsetTop + child.offsetHeight;\n\n if (childBottom > scrollBottom) {\n parent.scrollTop = childBottom - clientHeight;\n } else if (child.offsetTop < scrollTop) {\n parent.scrollTop = child.offsetTop;\n }\n }\n};\n\nexport const useListScrollTo = (internalRef: any, itemRefs: any[]): any => {\n const scrollTo = (index: number | undefined): void => {\n if (internalRef && internalRef.current) {\n if (index !== undefined) {\n const activeRef = itemRefs[index];\n\n if (activeRef && activeRef.current) {\n scrollToChildElement(internalRef.current, activeRef.current);\n }\n } else {\n internalRef.current.scrollTop = 0;\n }\n }\n };\n\n return { scrollTo };\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { getNextIndexFromKey } from '../../utils/hooks/useListKeyboardNavigation';\nimport { useListScrollTo } from '../../utils/hooks/useListScrollTo';\nimport './ScrollableList.css';\nimport { Spinner } from '../Spinner/Spinner';\nimport { useLocalization } from '../Provider/Localization';\nimport { Checkbox } from '../Checkbox/Checkbox';\nimport { getInputClasses } from '../Input/util';\n\nexport type ScrollableListItemValue = string | number | boolean | null;\n\nexport type ScrollableListItem = {\n /**\n * Set whether the item is disabled.\n * This will both change the style and make the item unselectable\n */\n disabled?: boolean;\n /* Specifies whether the item has child items -- intended for internal use only */\n hasChildren?: boolean;\n /** Place an icon before the item's text */\n icon?: React.ReactElement;\n /* The index path to the item -- intended for internal use only */\n path?: string;\n /** Text describing the item */\n text: string | JSX.Element;\n /** Value of the item */\n value: ScrollableListItemValue;\n /** Child items to show hierarchical data */\n children?: ScrollableListItem[];\n};\n\n/** @internal */\nexport type ScrollableListProps = Omit<\n React.HTMLAttributes<HTMLUListElement>,\n 'defaultValue' | 'id' | 'onChange' | 'onClick' | 'onKeyDown'\n> & {\n /** Data indicating the options in scrollable list */\n data: ScrollableListItem[];\n /** Sets the list to be disabled */\n disabled?: boolean;\n /** Draws attention to the scrollable list by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Set an id for the scrollable list */\n id: string;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /**\n * Shows a loading indicator with a text next to it.\n * Read more about how to provide the text in `Provider` component.\n */\n loading?: boolean;\n /**\n * Handler called when current active/selected option changes in a scrollable list.\n * @param index indicates the index of the current active option\n */\n onChange: (index: number) => void;\n /** Handler called when option is clicked */\n onClick?: (event: React.MouseEvent<HTMLLIElement>, index: number) => void;\n /**\n * Set whether the selected item should be scrolled into view when listbox is focused.\n * Default value is `false`\n */\n scrollOnFocus?: boolean;\n /** Handler called when a key is pressed */\n onKeyDown?: (event: React.KeyboardEvent<HTMLUListElement>, index: number | undefined) => void;\n /* Sets the list to read only mode */\n readOnly?: boolean;\n /**\n * Value of the scrollable list representing the selected item.\n * It needs to be an existing value from the provided data.\n */\n value: number | undefined;\n /**\n * Allows to select multiple items from the list\n */\n multiselect?: boolean;\n /**\n * Contains the currently selected values when multiselect mode is ON.\n */\n selectedIndexes?: number[];\n /**\n * True when all available (not disabled) options are selected\n */\n allOptionsSelected?: boolean;\n};\n\n/** @internal */\nexport type ScrollableListPropsWithRef = ScrollableListProps & React.RefAttributes<HTMLUListElement>;\n\nexport const getId = (id: string, value: ScrollableListItemValue): string => `${id}_${value}`;\n\nconst getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n data: ScrollableListItem[],\n index: number | undefined\n): number | undefined => {\n const nextIndex = getNextIndexFromKey(event.key, data.length, index);\n\n if (nextIndex) {\n if (nextIndex === index) {\n return index;\n } else if (data[nextIndex] && data[nextIndex].disabled) {\n return getNextEnabledItem(event, data, nextIndex);\n }\n }\n\n return nextIndex;\n};\n\nexport const ScrollableList = React.forwardRef(function ScrollableList(\n props: ScrollableListProps,\n ref: React.Ref<HTMLUListElement>\n) {\n const {\n data,\n disabled,\n highlighted,\n id,\n invalid: _,\n loading,\n onChange: setCurrentIndex,\n onClick,\n onFocus,\n onKeyDown,\n readOnly,\n scrollOnFocus = false,\n value: currentIndex,\n multiselect,\n selectedIndexes = [],\n allOptionsSelected = false,\n ...otherProps\n } = props;\n const listRef = useMergedRef<HTMLUListElement>(ref);\n const itemRefs = React.useMemo(() => data.map(() => React.createRef<HTMLLIElement>()), [data]);\n const { texts } = useLocalization();\n const { scrollTo } = useListScrollTo(listRef, itemRefs);\n\n React.useEffect(() => {\n if (currentIndex && itemRefs[currentIndex]?.current) {\n itemRefs[currentIndex].current?.scrollIntoView({\n block: 'center',\n });\n }\n }, []);\n\n React.useEffect(() => {\n scrollTo(currentIndex);\n }, [currentIndex]);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLUListElement>): void => {\n const nextIndex = getNextEnabledItem(event, data, currentIndex);\n\n if (nextIndex !== undefined && nextIndex !== currentIndex) {\n event.preventDefault();\n scrollTo(nextIndex);\n setCurrentIndex(nextIndex);\n }\n\n if (onKeyDown) {\n event.persist();\n const index = nextIndex !== undefined ? nextIndex : currentIndex;\n onKeyDown(event, index);\n }\n\n // Stops the keyboard event from propagating so that keyboard event on other components outside the scrollable\n // list are not executed.\n event.stopPropagation();\n };\n\n const handleClick = (index: number) => (event: React.MouseEvent<HTMLLIElement>) => {\n setCurrentIndex(index);\n\n if (onClick) {\n event.persist();\n onClick(event, index);\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLUListElement>): void => {\n if (scrollOnFocus) {\n scrollTo(currentIndex);\n }\n\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const getOptionCheckedState = (optionValue: string, index: number): boolean => {\n if (optionValue === '#ALL-OPTIONS#') {\n return allOptionsSelected;\n } else if (!optionValue || !selectedIndexes) {\n return false;\n } else {\n return selectedIndexes.findIndex(i => i === index) !== -1;\n }\n };\n\n const options = data.map((option, index) => {\n const depth = option.path ? option.path.split('.').length - 1 : 0;\n\n return {\n 'aria-selected': multiselect ? getOptionCheckedState(String(option.value), index) : currentIndex === index,\n 'data-focused': currentIndex === index,\n children: option.text,\n className: cn(\n 'flex items-center px-3 w-full cursor-pointer bg-white flex-[0_0_2rem] focus:wcag-blue-500 focus:border-blue-500',\n {\n 'sticky top-0 font-bold': depth === 0 && !!option.hasChildren,\n }\n ),\n disabled: option.disabled,\n icon: option.icon,\n id: getId(id, option.value),\n key: getId(id, option.value),\n onClick: !disabled && !readOnly ? handleClick(index) : undefined,\n ref: itemRefs[index],\n role: 'option',\n style:\n depth > 0\n ? {\n paddingLeft: `${depth + 1}rem`,\n }\n : undefined,\n };\n });\n\n const list: React.HTMLAttributes<HTMLUListElement> &\n React.RefAttributes<HTMLUListElement> & { disabled?: boolean; readOnly?: boolean } = {\n ...otherProps,\n className: cn(\n 'inline-flex flex-col list-none !p-0 m-0 overflow-y-auto h-auto',\n getInputClasses(props),\n {\n 'yt-list--multiselect': multiselect,\n 'pointer-events-none': disabled,\n 'cursor-not-allowed': disabled || readOnly,\n },\n otherProps.className\n ),\n disabled,\n id,\n onFocus: !disabled && !readOnly ? handleFocus : undefined,\n onKeyDown: !disabled && !readOnly ? handleKeyDown : undefined,\n readOnly,\n ref: listRef,\n role: options.length <= 0 || loading ? 'presentation' : 'listbox',\n tabIndex: otherProps.tabIndex || 0,\n };\n\n return (\n <ul {...list} data-taco=\"scrollable-list\">\n {loading ? (\n <li className=\"yt-list__empty\">\n <span>\n <Spinner delay={0} />\n </span>\n <span>{texts.listbox.loading}</span>\n </li>\n ) : options.length ? (\n options.map(({ children, icon, ...optionProps }) => (\n <li {...optionProps}>\n {icon}\n <span className=\"flex-grow truncate text-left\">{children}</span>\n {multiselect && (\n <Checkbox\n // In multiselect variant, this checkbox only acts as visual representation of item being selected,\n // so need to be taken out of screen reader scope.\n aria-hidden\n tabIndex={-1}\n checked={optionProps['aria-selected']}\n onChange={() => null}\n className=\"pointer-events-none ml-2 self-center p-px\"\n />\n )}\n </li>\n ))\n ) : (\n <li className=\"yt-list__empty\">\n <span>{texts.listbox.empty}</span>\n </li>\n )}\n </ul>\n );\n});\n","// returns a custom event compatible with all browsers\nexport const createCustomEvent = (eventType: string) => {\n let customEvent;\n\n if (typeof Event === 'function') {\n customEvent = new Event(eventType, { bubbles: true });\n } else {\n customEvent = document.createEvent('Event');\n customEvent.initEvent(eventType, true, true);\n }\n return customEvent;\n};\n\n// returns a custom keyboard event compatible with all browsers\nexport const createCustomKeyboardEvent = (event: React.KeyboardEvent<HTMLInputElement>) => {\n let customKeyboardEvent;\n\n if (typeof KeyboardEvent === 'function') {\n customKeyboardEvent = new KeyboardEvent(event.type, event as any);\n } else {\n customKeyboardEvent = document.createEvent('Event') as any;\n customKeyboardEvent.initEvent(event.type, true, true);\n customKeyboardEvent.key = event.key;\n customKeyboardEvent.charCode = event.charCode;\n }\n\n return customKeyboardEvent;\n};\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: string | undefined, event = 'change'): void => {\n if (!input) {\n return;\n }\n\n const previousValue = input.value;\n input.value = value || '';\n\n const tracker = (input as any)._valueTracker;\n\n if (tracker) {\n tracker.setValue(previousValue);\n }\n\n // 'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324\n input.dispatchEvent(createCustomEvent(event));\n};\n\nexport const deselectInputValue = (input: HTMLInputElement) => {\n // input type=\"number\" doesn't support \"setSelectionRange\",\n // easiest way is to switch input type to text, deselect value, and switch it back to number.\n const isNumber = input.type === 'number';\n if (isNumber) {\n input.type = 'text';\n }\n input.setSelectionRange?.(input.value?.length, input.value?.length);\n if (isNumber) {\n input.type = 'number';\n }\n};\n","import React from 'react';\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\n\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\n setInputValueByRefBase(input, getValue(value), event);\n};\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.find((subChild: JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n } else {\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\n }\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n","import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport debounce from 'lodash/debounce';\nimport { ComboboxProps } from './Combobox';\nimport {\n setInputValueByRef,\n getIndexFromValue,\n findByValue,\n useFlattenedData,\n sanitizeItem,\n getOptionParents,\n filterData,\n} from '../Listbox/util';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { getId, ScrollableListItemValue, ScrollableListPropsWithRef } from '../Listbox/ScrollableList';\nimport { InputProps } from '../Input/Input';\nimport { isElementInsideTable3OrReport } from '../../utils/dom';\n\nconst debouncer = debounce(f => f(), 200);\n\nconst convertToInputValue = (value: ScrollableListItemValue | undefined) => String(value ?? '');\n\ntype useCombobox = React.HTMLAttributes<HTMLDivElement> & {\n combobox: React.HTMLAttributes<HTMLSpanElement>;\n input: Omit<InputProps, 'defaultValue'> & { ref: React.RefObject<HTMLInputElement> };\n list: ScrollableListPropsWithRef;\n button: { ref: any };\n popover: { open: boolean; onOpenChange: (open: boolean) => void };\n};\n\nexport const useCombobox = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data: unfilteredData = [],\n defaultValue,\n disabled,\n id: nativeId,\n inline,\n loading: __,\n onChange,\n onClick,\n onKeyDown,\n onSearch,\n readOnly,\n value,\n ...props\n }: Omit<ComboboxProps, 'dialog'>,\n ref: React.Ref<HTMLInputElement>\n): useCombobox => {\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const listRef = React.useRef<HTMLUListElement>(null);\n const [open, setOpen] = React.useState(false);\n const listId = React.useMemo(() => uuid(), []);\n const [inputValue, setInputValue] = React.useState<string>(convertToInputValue(value));\n const shouldFilterData = !onSearch && (!inline || (inline && inputValue !== convertToInputValue(value)));\n const flattenedData = useFlattenedData(unfilteredData);\n const data = React.useMemo(\n () => (shouldFilterData ? filterData(flattenedData, inputValue) : flattenedData),\n [shouldFilterData, inputValue, flattenedData]\n );\n // listbox/select change value _with_ the index, but combobox changes on select of an index (click/enter), so we need state\n const [currentIndex, setCurrentIndex] = React.useState<number | undefined>(\n inputValue !== undefined ? getIndexFromValue(data, inputValue) : undefined\n );\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n setInputValueByRef(inputRef.current, option.value, 'focusout');\n }\n }\n };\n\n const setCurrentValue = (index: number | undefined) => {\n if (index === undefined) {\n return;\n }\n\n const option = data[index];\n\n // if the selected option is not already selected, trigger blur event\n if (option.value !== value) {\n setInputValueByIndex(index);\n } else {\n // if the selected option is already selected, refill input with its value\n setInputValue(convertToInputValue(value));\n }\n };\n\n // ensure the external value is synced with the internal value when mounting, e.g. incase a default value was set\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByIndex(getIndexFromValue(data, defaultValue));\n }\n }, [data]);\n\n // update input value if it changed 'externally', e.g. clicking/entering an item in the listbox, from a modal etc\n React.useEffect(() => {\n if (value !== undefined && value !== inputValue) {\n setInputValue(convertToInputValue(value));\n }\n }, [value]);\n\n React.useEffect(() => {\n if (onSearch) {\n debouncer(() => {\n onSearch(inputValue);\n });\n }\n }, [inputValue]);\n\n // show listbox based on input value\n React.useEffect(() => {\n // don't show the popover if the internal (input) value already is the current value\n // this prevents the popover showing after selecting a value or pressing escape\n const isCurrentValue = value !== undefined && value !== null && inputValue === String(value);\n\n if (inputValue && data.length && !isCurrentValue) {\n setCurrentIndex(0);\n\n if (!open) {\n setOpen(true);\n }\n } else {\n setOpen(false);\n }\n }, [inputValue, data]);\n\n React.useEffect(() => {\n if (open) {\n setCurrentIndex(getIndexFromValue(data, inputValue) || 0);\n } else {\n setCurrentIndex(undefined);\n }\n }, [open]);\n\n // event handlers\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (listRef.current && event.relatedTarget === listRef.current) {\n event.preventDefault();\n return;\n }\n\n // event.target.value is always a string so it is important to cast value to a string before checking the equality\n if (onChange && event.target.value !== String(value)) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const parents = getOptionParents(flattenedData, item?.path);\n\n if (parents !== null && parents.length > 0) {\n (event as any).detail.parents = parents;\n }\n\n onChange(event);\n }\n\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>): void => {\n if (inline || (!open && inputValue && data.length)) {\n setOpen(true);\n }\n\n if (onClick) {\n event.persist();\n onClick(event);\n }\n };\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (!event.ctrlKey && !event.metaKey) {\n switch (event.key) {\n case 'Backspace': {\n return;\n }\n\n case 'Escape': {\n event.preventDefault();\n setInputValue(convertToInputValue(value));\n setOpen(false);\n return;\n }\n\n case 'Tab': {\n setCurrentValue(currentIndex);\n setOpen(false);\n return;\n }\n\n case 'Enter': {\n event.preventDefault();\n\n if (isElementInsideTable3OrReport(event.currentTarget)) {\n if (inline && !open) {\n setOpen(true);\n } else if (buttonRef.current && !open) {\n buttonRef.current.click();\n }\n }\n\n if (open) {\n setCurrentValue(currentIndex);\n setOpen(false);\n }\n\n return;\n }\n\n case 'ArrowDown':\n if (open) {\n event.preventDefault();\n } else {\n if (!inline && buttonRef.current && !isElementInsideTable3OrReport(event.currentTarget)) {\n buttonRef.current.click();\n }\n }\n break;\n\n case 'ArrowUp':\n case 'Home':\n case 'End': {\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n default:\n }\n\n // we aren't focused on the list, so manually forward the keydown event to it\n if (listRef.current) {\n listRef.current.dispatchEvent(createCustomKeyboardEvent(event));\n }\n\n if (inline && !open) {\n if (\n (event.key === 'ArrowUp' || event.key === 'ArrowDown') &&\n !isElementInsideTable3OrReport(event.currentTarget)\n ) {\n event.preventDefault();\n const initialIndex = event.key === 'ArrowUp' ? data.length - 1 : 0;\n setCurrentIndex(currentIndex !== undefined ? currentIndex : initialIndex);\n setOpen(true);\n }\n }\n }\n\n if (!event.isDefaultPrevented() && onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxChange = (index: number): void => {\n setCurrentIndex(index);\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n setCurrentValue(index);\n setOpen(false);\n };\n\n const combobox = {\n 'aria-expanded': open,\n 'aria-owns': listId,\n 'aria-haspopup': 'listbox' as const,\n role: 'combobox',\n };\n\n const input = {\n ...props,\n 'aria-controls': listId,\n // Indicates that the autocomplete behavior of the text input is to suggest a list of possible values in a popup and that the suggestions\n // are related to the string that is present in the textbox\n 'aria-autocomplete': 'list' as const,\n // Enables assistive technologies to know which element the application regards as focused while DOM focus remains on the input element\n 'aria-activedescendant':\n currentIndex !== undefined && data[currentIndex] ? getId(listId, String(data[currentIndex].value)) : undefined,\n 'aria-labelledby': ariaLabelledBy,\n disabled,\n onBlur: !disabled && !readOnly ? handleInputBlur : undefined,\n onChange: !disabled && !readOnly ? handleInputChange : undefined,\n onClick: !disabled && !readOnly ? handleInputClick : undefined,\n onKeyDown: !disabled && !readOnly ? handleInputKeyDown : undefined,\n readOnly,\n ref: inputRef,\n type: 'text',\n value: inputValue ?? '',\n };\n\n const list: ScrollableListPropsWithRef = {\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n id: listId,\n onChange: handleListboxChange,\n onClick: handleListboxClick,\n ref: listRef,\n scrollOnFocus: false,\n tabIndex: -1,\n value: currentIndex,\n };\n\n const button = {\n ref: buttonRef,\n };\n\n return {\n combobox,\n input,\n list,\n button,\n popover: {\n open,\n onOpenChange: setOpen,\n //visible: !data.length ? false : open,\n },\n };\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { Input, InputProps } from '../Input/Input';\nimport { useCombobox } from './useCombobox';\nimport { ScrollableList, ScrollableListItem, ScrollableListItemValue } from '../Listbox/ScrollableList';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { IconButton } from '../IconButton/IconButton';\nimport './Combobox.css';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type ComboboxTexts = {\n /* Tooltip shown for the dialog button */\n tooltip: string;\n};\n\nexport type ComboboxItem = ScrollableListItem;\nexport type ComboboxValue = ScrollableListItemValue;\n\ntype ComboboxBaseProps = Omit<InputProps, 'defaultValue' | 'button' | 'onChange' | 'value'> & {\n /** Array of options in combobox */\n data?: ComboboxItem[];\n /**\n * Initial value of the input in combobox.\n * This is used when combobox is mounted, if no value is provided.\n * *Note* that combobox is a controlled component, setting this will also trigger the `onChange` event\n */\n defaultValue?: ComboboxValue;\n /** Set what value should have an empty option in combobox */\n emptyValue?: ComboboxValue;\n /** Draws attention to the combobox by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Displays loading state in listbox */\n loading?: boolean;\n /**\n * Handler called when user chooses an option from the provided suggestions.\n * Suggestions will be calculated based on the input value.\n * There are two ways to choose an option: either click on it, or navigate using keyboard and press `enter`\n */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n /** Handler called when the user enters a query **/\n onSearch?: (query: string) => void | Promise<void>;\n /** Value of the input in combobox */\n value?: ComboboxValue;\n};\n\ninterface InlineComboboxProps extends ComboboxBaseProps {\n dialog?: never;\n /**\n * Combobox will display its data when input is clicked/focused, even if the input is empty.\n * *Note* that default combobox will display matching data only when user starts typing in input.\n */\n inline: boolean; // Example 3 on https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n}\n\ninterface DialogComboboxProps extends ComboboxBaseProps {\n dialog: (props: Partial<DialogProps>) => JSX.Element;\n inline?: never;\n}\n\nexport type ComboboxProps = InlineComboboxProps | DialogComboboxProps;\n\nexport const Combobox = React.forwardRef(function Combobox(props: ComboboxProps, ref: React.Ref<HTMLInputElement>) {\n const { className: externalClassName, dialog, style, ...otherProps } = props;\n const { combobox, button, input, popover, list } = useCombobox(otherProps, ref);\n const internalRef = React.useRef<HTMLDivElement>(null);\n const { texts } = useLocalization();\n const selectDimensions = useBoundingClientRectListener(internalRef);\n const className = cn(\n 'inline-flex relative',\n {\n 'yt-combobox--inline': props.inline,\n },\n externalClassName\n );\n\n return (\n <span className={className} data-taco=\"combobox\" style={style}>\n <PopoverPrimitive.Root {...popover}>\n <PopoverPrimitive.Anchor asChild ref={internalRef}>\n <div {...combobox} className=\"inline w-full\" ref={ref}>\n <Input\n {...input}\n autoComplete=\"off\"\n button={\n props.readOnly ? undefined : props.inline ? (\n <IconButton\n // In case of inline combobox, this icon button acts only as visual chevron representation,\n // so should be taken out of screen reader scope.\n aria-hidden\n appearance=\"discrete\"\n className=\"!border-l-0 focus:!border-none focus:!shadow-none active:!border-none\"\n icon={popover.open ? 'chevron-up' : 'chevron-down'}\n onClick={() => {\n popover.onOpenChange(true);\n input.ref.current?.focus();\n }}\n tabIndex={-1}\n />\n ) : dialog ? (\n <IconButton\n aria-label={texts.combobox.tooltip}\n icon=\"list-search\"\n disabled={props.readOnly || props.disabled}\n dialog={dialog}\n onFocus={(event: React.FocusEvent<HTMLButtonElement>) => {\n // Prevents the default focus behaviour of showing the tooltip, on parent tooltip element\n event.preventDefault();\n input.ref.current?.focus();\n }}\n ref={button.ref}\n tabIndex={-1}\n tooltip={texts.combobox.tooltip}\n />\n ) : undefined\n }\n />\n </div>\n </PopoverPrimitive.Anchor>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n onOpenAutoFocus={event => {\n event.preventDefault();\n }}\n sideOffset={4}>\n <ScrollableList\n {...list}\n className={cn('max-h-[calc(12rem+2px)] w-auto max-w-[theme(spacing.96)] !border-blue-500')}\n style={{ minWidth: selectDimensions?.width }}\n tabIndex={popover.open ? 0 : -1}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </span>\n );\n});\n","import { isDate, toDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDate() === rightDate.getDate()\n );\n};\n\nexport const format = (date: Date | undefined, mask = 'dd.mm.yy'): string | undefined => {\n if (!date) {\n return undefined;\n }\n\n const value = isDate(date) ? date : toDate(date);\n\n if (!isValid(value)) {\n return undefined;\n }\n\n const pad = (v: number): string => (String(v).length === 1 ? `0${v}` : v.toString());\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n};\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultMonth: number | undefined = undefined,\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day;\n let month;\n let year;\n\n const getFullYear = (y: string): string => {\n if (y && y.length === 2) {\n const z = Number.parseInt(y, 10);\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/);\n\n if (inputParts.length === 1) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replace(/[^dmy]/g, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3)); // account for full years\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n day = Number.parseInt(day, 10);\n month = Number.parseInt(month, 10);\n year = Number.parseInt(year, 10);\n\n const currentDate = new Date();\n\n return new Date(\n /* year */ Object.is(year, NaN) ? defaultYear ?? currentDate.getFullYear() : year,\n /* month */ Object.is(month, NaN) ? defaultMonth ?? currentDate.getMonth() : month - 1, // months are zero based in javascript, so subtract a day\n /* day */ Object.is(day, NaN) ? currentDate.getDate() : day,\n /* hours */ 12,\n /* minutes */ 0 // set to midday to avoid UTC offset causing dates to be mismatched server side\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(new Date(date))) : undefined;\n};\n","import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nexport const UnstyledArrow = React.forwardRef<SVGSVGElement, React.SVGAttributes<SVGElement>>(function PopoverArrow(props, ref) {\n return (\n <PopoverPrimitive.Arrow className=\"pointer-events-none -mt-px\" asChild offset={2} width={30} height={11}>\n <svg {...props} ref={ref} viewBox=\"0 19 30 11\" style={{ transform: 'rotateZ(180deg)' }}>\n <path\n className=\"text-grey-300 fill-current group-focus:text-blue-300\"\n d=\"M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z\"></path>\n <path\n className=\"fill-current\"\n d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"></path>\n </svg>\n </PopoverPrimitive.Arrow>\n );\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { Placement } from '../..';\nimport { UnstyledArrow } from './Primitives';\nimport { mergeRefs } from '../../utils/mergeRefs';\nimport { getPopoverStyleClassnames } from './util';\n\ntype PopoverContextValue = { props: any; ref: React.Ref<HTMLElement> };\n\nconst PopoverContext = React.createContext<PopoverContextValue>({\n props: {},\n ref: null,\n});\n\nexport type PopoverAnchorProps = React.HTMLAttributes<HTMLElement>;\nconst Anchor = React.forwardRef(function PopoverAnchor(props: PopoverAnchorProps, ref: React.Ref<HTMLDivElement>) {\n return <PopoverPrimitive.Anchor {...props} asChild ref={ref} />;\n});\n\nexport type PopoverTriggerProps = React.HTMLAttributes<HTMLElement>;\nconst Trigger = React.forwardRef(function PopoverTrigger(props: PopoverTriggerProps, externalRef: React.Ref<HTMLElement>) {\n const { ref: parentRef, props: parentProps } = React.useContext(PopoverContext);\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n let children = props.children;\n\n if (React.isValidElement(props.children) && typeof props.children?.type === 'function') {\n console.warn(\n `Popover.Trigger requires its child to forwardRef so that it can attach to the dom element. Did you mean to wrap '${props.children.type.name}' in React.forwardRef()? Taco has wrapped '${props.children.type.name}' in a 'span' to maintain functionality, but this may cause unintended behaviour`\n );\n children = <span>{props.children}</span>;\n }\n\n return (\n <PopoverPrimitive.Trigger {...parentProps} {...props} ref={refCallback} asChild>\n {children}\n </PopoverPrimitive.Trigger>\n );\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('hide'));\n };\n\n return children({ close, ref });\n});\n\nexport type PopoverContentRenderProps = { close: () => void };\nexport type PopoverContentProps = Omit<PopoverPrimitive.PopoverContentProps, 'side'> & {\n children: React.ReactNode | ((props: PopoverContentRenderProps) => React.ReactNode);\n /** Set the position of the Popover relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\nconst Content = React.forwardRef(function PopoverContent(props: PopoverContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement: side, ...popoverContentProps } = props;\n const className = cn(getPopoverStyleClassnames(), props.className);\n\n let output;\n\n if (typeof props.children === 'function') {\n output = (\n <PopoverPrimitive.Close asChild>\n <RenderPropWrapper>{props.children}</RenderPropWrapper>\n </PopoverPrimitive.Close>\n );\n } else {\n output = props.children;\n }\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n {...popoverContentProps}\n className={className}\n data-taco=\"popover\"\n side={side}\n sideOffset={1}\n ref={ref}>\n {output}\n <UnstyledArrow className=\"text-white\" />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n});\n\nexport type PopoverCloseProps = React.HTMLAttributes<HTMLButtonElement>;\nconst Close = React.forwardRef(\n (props: PopoverCloseProps, ref: React.Ref<HTMLButtonElement>): JSX.Element => (\n <PopoverPrimitive.Close {...props} ref={ref} asChild />\n )\n);\n\nexport type PopoverProps = React.PropsWithChildren<{\n anchor?: JSX.Element;\n modal?: boolean;\n /** A trigger to be used for the popover, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n /** Set whether the popover is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Control the open state of the popover from outside the component */\n open?: boolean;\n /** Called when the popover opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n}>;\nexport type ForwardedPopoverWithStatics = React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLElement>> & {\n Anchor: React.ForwardRefExoticComponent<PopoverAnchorProps>;\n Trigger: React.ForwardRefExoticComponent<PopoverTriggerProps>;\n Content: React.ForwardRefExoticComponent<PopoverContentProps>;\n Close: React.ForwardRefExoticComponent<PopoverCloseProps>;\n Portal: React.FunctionComponent<PopoverPrimitive.PortalProps>;\n};\n\nexport const Popover = React.forwardRef<HTMLElement, PopoverProps>(function Popover(props, ref) {\n const { anchor, children, defaultOpen, modal = false, open, onChange, trigger, ...otherProps } = props;\n const context = React.useMemo(() => ({ props: otherProps, ref }), [otherProps]);\n\n return (\n <PopoverContext.Provider value={context}>\n <PopoverPrimitive.Root defaultOpen={defaultOpen} modal={modal} open={open} onOpenChange={onChange}>\n {anchor ? <Anchor>{anchor}</Anchor> : null}\n {trigger && !anchor ? <Trigger>{trigger}</Trigger> : null}\n {children}\n </PopoverPrimitive.Root>\n </PopoverContext.Provider>\n );\n}) as ForwardedPopoverWithStatics;\nPopover.Anchor = Anchor;\nPopover.Trigger = Trigger;\nPopover.Content = Content;\nPopover.Close = Close;\nPopover.Portal = PopoverPrimitive.Portal;\n","export const getPopoverStyleClassnames = () =>\n 'bg-white focus:border-blue-300 border border-transparent rounded p-3 yt-shadow focus:yt-focus outline-none group';\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { Calendar, CalendarProps } from '../Calendar/Calendar';\nimport { Input, InputProps } from '../Input/Input';\nimport { useLocalization } from '../Provider/Localization';\nimport { useDatepicker } from './useDatepicker';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Popover } from '../Popover/Popover';\n\nexport type DatepickerTexts = {\n /** Aria-label for calendar */\n calendar: string;\n /** Clear button text */\n clear: string;\n /**\n * Aria-label for calendar icon button in the input.\n * Calendar will open when user clicks this icon button.\n */\n expand: string;\n /** Shortcut heading text */\n shortcuts: string;\n};\n\nexport type DatePickerShortcut = {\n onClick: (event: React.MouseEvent) => void;\n text: string;\n};\n\nexport type DatepickerProps = Omit<InputProps, 'value'> & {\n /** [Calendar](component:calendar) component associated with the DatePicker */\n calendar?: CalendarProps;\n /** List of shortcuts */\n shortcuts?: DatePickerShortcut[];\n /** Title for the shortcuts panel */\n shortcutsText?: string;\n /** Handler to be called when the clear button is clicked */\n onReset?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /**\n * Date value of the calendar.\n * This will be displayed in DatePicker's input in the format given to the [Provider](component:provider) component\n */\n value?: Date;\n};\n\nexport const Datepicker = React.forwardRef(function Datepicker(props: DatepickerProps, ref: React.Ref<HTMLInputElement>) {\n const { className: externalClassName, onReset: handleReset, style, shortcuts, shortcutsText, ...otherProps } = props;\n const { calendar, input } = useDatepicker(otherProps, ref);\n const { texts } = useLocalization();\n const className = cn('inline-flex w-full text-black font-normal', externalClassName);\n\n const popoverContentRef = React.useRef<HTMLDivElement>(null);\n const handleOpenAutofocus = React.useCallback(\n (e: Event) => {\n e.preventDefault();\n\n const currentDay: HTMLButtonElement | null =\n popoverContentRef?.current?.querySelector('table button[name=\"day\"][aria-selected=\"true\"]') ?? null;\n currentDay?.focus();\n },\n [popoverContentRef]\n );\n\n return (\n <span className={className} data-taco=\"datepicker\" style={style}>\n <Input\n {...input}\n button={\n input.readOnly ? undefined : (\n <IconButton\n aria-label={texts.datepicker.expand}\n disabled={input.disabled || input.readOnly}\n icon=\"calendar\"\n tabIndex={-1}\n popover={props => (\n <Popover {...props}>\n <Popover.Content onOpenAutoFocus={handleOpenAutofocus}>\n {({ close }) => (\n <div\n className='[&_button[name=\"day\"]:focus]:yt-focus -m-3 flex'\n ref={popoverContentRef}>\n <Calendar\n {...calendar}\n onChange={(date: Date, event?: React.MouseEvent<Element>) => {\n calendar.onChange(date, event);\n close();\n }}\n />\n {shortcuts && (\n <div className=\"border-grey-300 flex flex-col border-l\">\n <span className=\"m-4 mb-3 flex h-8 w-32 items-center text-xs font-semibold\">\n {shortcutsText ?? texts.datepicker.shortcuts}\n </span>\n <ul>\n {shortcuts.map(shortcut => (\n <li key={shortcut.text}>\n <button\n type=\"button\"\n className=\"hover:wcag-grey-200 flex w-full items-start px-4 py-1 text-xs\"\n onClick={event => {\n event.persist();\n shortcut.onClick(event);\n close();\n }}>\n {shortcut.text}\n </button>\n </li>\n ))}\n </ul>\n {handleReset && (\n <button\n type=\"button\"\n className=\"mx-auto my-4 mt-auto inline-flex cursor-pointer border-none bg-transparent text-xs text-blue-500 hover:text-blue-300\"\n onClick={event => {\n event.persist();\n handleReset(event);\n close();\n }}>\n {texts.datepicker.clear}\n </button>\n )}\n </div>\n )}\n </div>\n )}\n </Popover.Content>\n </Popover>\n )}\n tooltip={texts.datepicker.calendar}\n />\n )\n }\n />\n </span>\n );\n});\nDatepicker.displayName = 'Datepicker';\n","import * as React from 'react';\nimport { parseFromCustomString, format } from '../../utils/date';\nimport { useLocalization } from '../Provider/Localization';\nimport { setInputValueByRef } from '../../utils/input';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { DatepickerProps } from './Datepicker';\nimport { CalendarProps } from '../Calendar/Calendar';\nimport { InputProps as BaseInputProps } from '../Input/Input';\nimport { isValid } from 'date-fns';\n\ntype InputProps = BaseInputProps & { ref: React.RefObject<HTMLInputElement> };\ntype useDatepicker = React.HTMLAttributes<HTMLDivElement> & {\n calendar: CalendarProps;\n input: InputProps;\n};\n\nexport const useDatepicker = (\n { defaultValue: _, calendar, onBlur, onChange, value, ...props }: DatepickerProps,\n ref: React.Ref<HTMLInputElement>\n): useDatepicker => {\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const { formatting } = useLocalization();\n const [internalValue, setInternalValue] = React.useState(value && isValid(value) ? format(value, formatting.date) : '');\n\n // update internal value if it changed 'externally'\n React.useEffect(() => {\n if (value && isValid(value)) {\n const formattedValue = format(value, formatting.date);\n\n if (formattedValue !== internalValue) {\n setInternalValue(formattedValue);\n }\n } else {\n setInternalValue('');\n }\n }, [value]);\n\n // event handlers\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n event.persist();\n\n const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy', value?.getMonth(), value?.getFullYear());\n const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';\n\n event.target.value = formattedValue;\n\n if (onChange) {\n (event as any).detail = valueAsDate;\n onChange(event);\n } else {\n // update the internal value to use the formatted date\n setInternalValue(formattedValue);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setInternalValue(event.target.value);\n };\n\n const handleChange = date => {\n setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (!event.isPropagationStopped() && !event.isDefaultPrevented() && event.key === 'Enter') {\n event.target.dispatchEvent(new Event('focusout', { bubbles: true }));\n }\n };\n\n const inputProps: InputProps = {\n ...props,\n autoComplete: 'off',\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onKeyDown: handleKeyDown,\n ref: inputRef,\n type: 'text',\n value: internalValue,\n };\n\n const calendarProps: CalendarProps = {\n ...calendar,\n onChange: handleChange,\n value,\n };\n\n return {\n input: inputProps,\n calendar: calendarProps,\n };\n};\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport * as React from 'react';\nimport { DialogSize } from './types';\n\nexport type DialogContext = {\n closeOnEscape: boolean;\n draggable: boolean;\n drawer: {\n open: boolean;\n toggle: () => void;\n };\n elements: {\n drawer?: React.ReactNode;\n extra?: React.ReactNode;\n };\n onClose?: () => void;\n props: Record<string, any>;\n ref: React.Ref<HTMLElement>;\n showCloseButton: boolean;\n size: DialogSize;\n};\n\nexport const DialogContext = React.createContext<DialogContext>({\n closeOnEscape: true,\n draggable: false,\n drawer: {\n open: false,\n toggle: () => {},\n },\n elements: {\n drawer: undefined,\n extra: undefined,\n },\n onClose: () => {},\n props: {},\n ref: null,\n showCloseButton: true,\n size: 'sm',\n});\n\nexport const useCurrentDialog = () => {\n return React.useContext(DialogContext);\n};\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { useCurrentDialog } from '../Context';\nimport { mergeRefs } from '../../../utils/mergeRefs';\n\nexport type DialogTriggerProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Trigger = React.forwardRef(function DialogTrigger(\n props: DialogTriggerProps,\n externalRef: React.Ref<HTMLButtonElement>\n) {\n const { ref: parentRef, props: parentProps } = useCurrentDialog();\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n return <DialogPrimitive.Trigger {...parentProps} {...props} ref={refCallback} asChild />;\n});\n","import React from 'react';\nimport { useMove } from '@react-aria/interactions';\n\nexport const useDraggable = (ref: React.MutableRefObject<HTMLDivElement | null>): any => {\n const [position, setPosition] = React.useState({\n x: 0,\n y: 0,\n });\n\n const [dragging, setDragging] = React.useState(false);\n\n const { moveProps } = useMove({\n onMoveStart() {\n setDragging(true);\n },\n onMove(event) {\n const rect = ref.current?.getBoundingClientRect();\n\n // Prevent dragging out of bounds\n if (\n rect &&\n (rect.left + event.deltaX < 0 ||\n rect.right + event.deltaX > window.innerWidth ||\n rect.top + event.deltaY < 0 ||\n rect.bottom + event.deltaY > window.innerHeight)\n ) {\n return;\n }\n\n setPosition(({ x, y }) => {\n x += event.deltaX;\n y += event.deltaY;\n return { x, y };\n });\n },\n onMoveEnd() {\n setDragging(false);\n },\n });\n\n const resetPosition = () => {\n setPosition({\n x: 0,\n y: 0,\n });\n };\n\n return {\n position,\n dragging,\n handleProps: moveProps,\n resetPosition,\n };\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useDraggable } from '../../../utils/hooks/useDraggable';\nimport { DialogContext, useCurrentDialog } from '../Context';\nimport { useLocalization } from '../../Provider/Localization';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Backdrop } from '../../Backdrop/Backdrop';\nimport { getDialogPositionClassnames, getDialogSizeClassnames } from '../util';\n\nexport type DialogContentDrawerRenderProps = DialogContext['drawer'];\n\nexport type DialogContentRenderProps = {\n close: () => void;\n drawer?: DialogContentDrawerRenderProps;\n};\n\nexport type DialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function DialogTitle(props: DialogTitleProps, ref: React.Ref<HTMLHeadingElement>) {\n const className = cn('text-center', props.className);\n return <DialogPrimitive.Title {...props} className={className} ref={ref} />;\n});\n\nexport type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport const Footer = React.forwardRef(function DialogFooter(props: DialogFooterProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn('mt-8 flex justify-end', props.className);\n return (\n <div {...props} className={className} ref={ref}>\n {props.children}\n </div>\n );\n});\n\nexport type DialogCloseProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Close = React.forwardRef(function DialogClose(props: DialogCloseProps, ref: React.Ref<HTMLButtonElement>) {\n const dialog = useCurrentDialog();\n\n return <DialogPrimitive.Close onClick={dialog.onClose} {...props} ref={ref} asChild />;\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick, renderProps }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('close'));\n };\n\n return children({ close, ref, ...renderProps });\n});\n\nexport type DialogContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n /** An accessible label to be announced when the dialog is opened */\n 'aria-label': string;\n children: Omit<React.ReactNode, 'Function'> | ((props: DialogContentRenderProps) => JSX.Element);\n onOpenAutoFocus?: DialogPrimitive.DialogContentProps['onOpenAutoFocus'];\n onCloseAutoFocus?: DialogPrimitive.DialogContentProps['onCloseAutoFocus'];\n};\nexport const Content = React.forwardRef(function DialogContent(props: DialogContentProps, ref: React.Ref<HTMLDivElement>) {\n const dialog = useCurrentDialog();\n const internalRef = useMergedRef<HTMLDivElement>(ref);\n const { position, dragging, handleProps: dragHandleProps } = useDraggable(internalRef);\n const { texts } = useLocalization();\n\n const className = cn(\n 'relative bg-white animate-[fade-in_150ms] rounded',\n getDialogPositionClassnames(),\n getDialogSizeClassnames(dialog.size),\n 'print:w-full print:h-full print:m-0 print:overflow-visible'\n );\n\n const containerClassName = cn(\n 'bg-white p-6 rounded relative z-10 shadow print:p-0 print:overflow-visible print:h-full',\n {\n 'rounded-b-none': !!dialog.elements.extra,\n },\n props.className\n );\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (!dialog.closeOnEscape) {\n event.preventDefault();\n } else if (dialog.onClose) {\n dialog.onClose();\n }\n };\n\n // the chosen behaviour in taco is that outside clicks do not close the dialog\n const handleInteractOutside = event => event.preventDefault();\n\n let output;\n\n if (typeof props.children === 'function') {\n output = (\n <Close>\n <RenderPropWrapper renderProps={{ drawer: dialog.drawer }}>{props.children}</RenderPropWrapper>\n </Close>\n );\n } else {\n output = props.children;\n }\n\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <Backdrop>\n <DialogPrimitive.Content\n {...props}\n className={className}\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={handleInteractOutside}\n ref={internalRef}\n style={{\n ...props.style,\n left: dialog.draggable ? `${position.x}px` : undefined,\n top: dialog.draggable ? `${position.y}px` : undefined,\n }}>\n <div className={containerClassName} data-taco=\"dialog\">\n {output}\n {dialog.draggable && (\n <div\n {...dragHandleProps}\n role=\"button\"\n draggable\n aria-grabbed={dragging}\n aria-label={texts.dialog.drag}\n className=\"yt-dialog__drag absolute-center-x bg-grey-100 top-1.5 h-3 w-24 cursor-move rounded text-center print:hidden\"\n />\n )}\n {dialog.showCloseButton ? (\n <DialogPrimitive.Close onClick={dialog.onClose} asChild>\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.dialog.close}\n className=\"absolute right-0 top-0 mr-2 mt-2 print:hidden\"\n icon=\"close\"\n />\n </DialogPrimitive.Close>\n ) : null}\n </div>\n {dialog.elements.drawer}\n {dialog.elements.extra}\n </DialogPrimitive.Content>\n </Backdrop>\n </DialogPrimitive.Overlay>\n </DialogPrimitive.Portal>\n );\n});\n","import * as React from 'react';\nimport { motion } from 'framer-motion';\nimport cn from 'clsx';\nimport { DialogContext, useCurrentDialog } from '../Context';\n\nexport type DialogDrawerRenderProps = DialogContext['drawer'];\n\nexport type DialogDrawerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'\n> & {\n children: Omit<React.ReactNode, 'Function'> | ((props: DialogDrawerRenderProps) => React.ReactNode);\n};\n\nconst DialogDrawer = React.forwardRef(function DialogDrawer(props: DialogDrawerProps, ref: React.Ref<HTMLDivElement>) {\n const dialog = useCurrentDialog();\n const className = cn(\n 'absolute top-0 -ml-[4px] hidden h-full w-full overflow-y-auto rounded-r bg-white p-6 text-left',\n props.className\n );\n\n return (\n <motion.div\n {...props}\n className={className}\n data-taco=\"dialog-drawer\"\n aria-hidden={!dialog.drawer?.open}\n variants={{\n visible: {\n left: '100%',\n display: 'block',\n transition: { ease: 'easeOut', duration: 0.2 },\n },\n hidden: {\n left: '0%',\n transition: { ease: 'easeOut', duration: 0.2 },\n transitionEnd: {\n display: 'none',\n },\n },\n }}\n animate={dialog.drawer?.open ? 'visible' : 'hidden'}\n ref={ref}>\n {typeof props.children === 'function' ? props.children(dialog.drawer) : props.children}\n </motion.div>\n );\n});\nDialogDrawer.displayName = 'DialogDrawer';\n\nexport { DialogDrawer };\n","import * as React from 'react';\nimport cn from 'clsx';\n\nexport type DialogExtraProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst Extra = React.forwardRef(function DialogExtra(props: DialogExtraProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn(\n 'wcag-grey-100 absolute top-full left-0 -mt-px w-full rounded-t-none rounded-b p-6 text-left',\n props.className\n );\n\n return <div {...props} className={className} data-taco=\"dialog-extra\" ref={ref} />;\n});\nExtra.displayName = 'DialogExtra';\n\nexport { Extra };\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport './Dialog.css';\nimport { DialogTriggerProps, Trigger } from './components/Trigger';\nimport {\n Content,\n Title,\n Footer,\n Close,\n DialogContentProps,\n DialogContentRenderProps,\n DialogContentDrawerRenderProps,\n DialogTitleProps,\n DialogFooterProps,\n DialogCloseProps,\n} from './components/Content';\nimport { DialogDrawerProps, DialogDrawerRenderProps, DialogDrawer } from './components/DialogDrawer';\nimport { DialogExtraProps, Extra } from './components/Extra';\nimport { DialogContext } from './Context';\nimport { DialogSize } from './types';\n\nexport type {\n DialogCloseProps,\n DialogContentDrawerRenderProps,\n DialogContentProps,\n DialogContentRenderProps,\n DialogDrawerProps,\n DialogDrawerRenderProps,\n DialogFooterProps,\n DialogSize,\n DialogTitleProps,\n};\n\nexport type DialogTexts = {\n /**\n * Aria-label for close icon button in dialog.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n close: string;\n drag: string;\n};\n\nexport type DialogProps = {\n children: React.ReactNode | React.ReactNode[];\n /** When `true`, pressing escape will close the dialog */\n closeOnEscape?: boolean;\n /** Set whether the dialog is open by default or not */\n defaultOpen?: boolean;\n /** Allows dragging the dialog around the screen (window constrained) */\n draggable?: boolean;\n /** Handler called when dialog closes by user interaction */\n onClose?: () => void;\n /** Called when the dialog opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n /** Control the open state of the dialog from outside the component */\n open?: boolean;\n /** Shows the close icon button of the dialog */\n showCloseButton?: boolean;\n /** Size of the dialog. This is the recommended way to set a size for dialog component. */\n size?: DialogSize;\n /** A trigger to be used for the dialog, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\n\nconst useSeparatedChildren = initialChildren => {\n return React.useMemo(() => {\n const children: any[] = [];\n let drawer;\n let extra;\n\n React.Children.toArray(initialChildren).forEach((child: any) => {\n if (child.type?.displayName === DialogDrawer.displayName) {\n drawer = child;\n } else if (child.type?.displayName === Extra.displayName) {\n extra = child;\n } else {\n children.push(child);\n }\n });\n\n return [children, drawer, extra];\n }, [initialChildren]);\n};\n\nexport type ForwardedDialogWithStatics = React.ForwardRefExoticComponent<DialogProps & React.RefAttributes<HTMLElement>> & {\n Trigger: React.ForwardRefExoticComponent<DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n Content: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<HTMLDivElement>>;\n Title: React.ForwardRefExoticComponent<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n Footer: React.ForwardRefExoticComponent<DialogFooterProps & React.RefAttributes<HTMLDivElement>>;\n Extra: React.ForwardRefExoticComponent<DialogExtraProps & React.RefAttributes<HTMLDivElement>>;\n Drawer: React.ForwardRefExoticComponent<DialogDrawerProps & React.RefAttributes<HTMLDivElement>>;\n Close: React.ForwardRefExoticComponent<DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;\n};\n\nexport const Dialog = React.forwardRef(function Dialog(props: DialogProps, ref: React.Ref<HTMLElement>) {\n const {\n children: initialChildren,\n closeOnEscape = true,\n defaultOpen,\n draggable = false,\n onChange,\n onClose,\n open,\n showCloseButton = true,\n size = 'sm',\n trigger,\n ...otherProps\n } = props;\n const [children, drawer, extra] = useSeparatedChildren(initialChildren);\n const [drawerOpen, setDrawerOpen] = React.useState(false);\n\n const context = React.useMemo(\n () => ({\n closeOnEscape,\n draggable,\n drawer: {\n open: drawerOpen,\n toggle: () => setDrawerOpen(isDrawerOpen => !isDrawerOpen),\n },\n elements: {\n drawer,\n extra,\n },\n onClose,\n props: otherProps,\n showCloseButton,\n size,\n ref,\n }),\n [closeOnEscape, drawerOpen, draggable, drawer, extra, open, otherProps, showCloseButton]\n );\n\n return (\n <DialogContext.Provider value={context}>\n <DialogPrimitive.Root defaultOpen={defaultOpen} open={open} onOpenChange={onChange}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {children}\n </DialogPrimitive.Root>\n </DialogContext.Provider>\n );\n}) as ForwardedDialogWithStatics;\n\nDialog.Trigger = Trigger;\nDialog.Content = Content;\nDialog.Title = Title;\nDialog.Footer = Footer;\nDialog.Extra = Extra;\nDialog.Drawer = DialogDrawer;\nDialog.Close = Close;\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { Orientation } from '../../types';\n\nexport type GroupProps = React.HTMLAttributes<HTMLElement> & {\n /**\n * Change what html tag element will render.\n * Default value is `span`\n */\n as?: 'div' | 'span' | 'nav';\n /** Content should be composed of other Taco elements */\n children: React.ReactNode;\n /**\n * Define orientation of grouping.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n};\n\nexport const Group = React.forwardRef(function Group(props: GroupProps, ref: React.Ref<HTMLDivElement>) {\n const { as: Tag = 'span', orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n 'flex gap-2 [&:has([data-taco=\"tag\"])]:!gap-1',\n { 'flex-col ': orientation === 'vertical' },\n props.className\n );\n return <Tag {...otherProps} className={className} data-taco=\"group\" ref={ref} />;\n});\n","import * as React from 'react';\n\nexport const MenuContext = React.createContext<\n | {\n indented: boolean;\n registerIndentation: () => void;\n minWidth?: number;\n setMinWidth: (width: number) => void;\n open: () => void;\n close: () => void;\n }\n | undefined\n>(undefined);\n\nexport const useCurrentMenu = () => {\n return React.useContext(MenuContext);\n};\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport * as React from 'react';\nimport { DrawerSize, DrawerVariant } from './types';\n\nexport type DrawerContext = {\n closeOnEscape: boolean;\n showCloseButton: boolean;\n onClickBack?: () => void;\n onClose?: () => void;\n onResize?: (delta: number) => void;\n props: {};\n ref: React.Ref<HTMLElement>;\n size: DrawerSize;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n variant: DrawerVariant;\n focusTrap?: boolean;\n outlet?: HTMLElement;\n};\n\nexport const DrawerContext = React.createContext<DrawerContext>({\n closeOnEscape: true,\n showCloseButton: true,\n onClickBack: () => {},\n onClose: () => {},\n onResize: () => {},\n props: {},\n ref: null,\n size: 'md',\n variant: 'embedded',\n});\n\nexport const useCurrentDrawer = () => {\n return React.useContext(DrawerContext);\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nconst Bar = props => {\n const className = cn(`flex select-none touch-none transition-colors hover:bg-grey`, {\n 'w-[7px] hover:w-[14px] mr-[2px] hover:px-[2px] hover:mr-0': props.orientation === 'vertical',\n 'flex-col h-[7px] hover:h-[14px] mb-[2px] hover:py-[2px] hover:mb-0': props.orientation === 'horizontal',\n });\n return <ScrollAreaPrimitive.Scrollbar {...props} className={className} />;\n};\n\nconst Thumb = props => <ScrollAreaPrimitive.Thumb {...props} className=\"flex-[1] rounded bg-black opacity-50\" />;\n\nconst Corner = props => <ScrollAreaPrimitive.Corner {...props} className=\"bg-grey-500\" />;\n\nexport type ScrollbarProps = Omit<ScrollAreaPrimitive.ScrollAreaProps, 'scrollHideDelay'>;\n\nexport const ScrollArea = (props: ScrollbarProps) => {\n const { children, ...otherProps } = props;\n\n return (\n <ScrollAreaPrimitive.Root {...otherProps} className={cn('overflow-hidden', props.className)} data-taco=\"scrollarea\">\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full\">{children}</ScrollAreaPrimitive.Viewport>\n <Bar orientation=\"vertical\">\n <Thumb />\n </Bar>\n <Bar orientation=\"horizontal\">\n <Thumb />\n </Bar>\n <Corner />\n </ScrollAreaPrimitive.Root>\n );\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { Group, GroupProps } from '../../Group/Group';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Backdrop } from '../../Backdrop/Backdrop';\nimport { useCurrentMenu } from '../../Menu/Context';\nimport { useCurrentDrawer } from '../Context';\nimport {\n getBackdropClassNames,\n getDrawerContainerClassNames,\n getDrawerContentClassNames,\n getDrawerDragHandlerClassNames,\n} from '../util';\nimport { useDraggable } from '../../../utils/hooks/useDraggable';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { FocusScope } from '@react-aria/focus';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useGlobalKeyDown } from '../../../hooks/useGlobalKeyDown';\n\nconst RESIZE_MIN = 360;\nconst RESIZE_MAX = 1000;\n\nexport type DrawerContentRenderProps = {\n close: () => void;\n};\n\nexport enum DrawerAnimationDefinition {\n Visible = 'visible',\n Hidden = 'hidden',\n}\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick, renderProps }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('close'));\n };\n\n return children({ close, ref, ...renderProps });\n});\n\nexport type DrawerTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function DrawerTitle(props: DrawerTitleProps, externalRef: React.Ref<HTMLHeadingElement>) {\n const { className, children, ...otherProps } = props;\n const ref = useMergedRef<HTMLHeadingElement>(externalRef);\n const [style, setStyle] = React.useState({});\n const { texts } = useLocalization();\n const { onClickBack } = useCurrentDrawer();\n\n /**\n * By design in default drawer version Title has grey separator, but we might have exceptions like Drawer + Tabs scenario,\n * where we might want to hide the grey separator. For this reason separator was rendered with using of classNames,\n * so it can be easily overriden in exceptional scenarios.\n * */\n const cName = cn('grow-0 py-4 px-4 justify-self-start mb-0 border-b-[1px] border-grey-300 flex items-start', className);\n\n React.useEffect(() => {\n const drawer = ref?.current?.closest('[data-taco=\"drawer\"]');\n\n // This is the margin amount that we need to deduct from the margins to align with the design\n const marginAdjust = 4;\n\n const closeButton: HTMLButtonElement | null = drawer?.querySelector(`[aria-label=\"${texts.drawer.close}\"]`) ?? null;\n const closeButtonWidth = closeButton?.offsetWidth ?? 0;\n const closeButtonRightMargin = 8;\n\n const actionsWrapper: HTMLSpanElement | null = drawer?.querySelector(`#taco-drawer-actions[data-taco=\"group\"]`) ?? null;\n const actionsWrapperWidth = actionsWrapper?.offsetWidth ?? 0;\n const actionsWrapperRightMargin = 8;\n\n const marginRight =\n closeButtonWidth + actionsWrapperWidth + closeButtonRightMargin + actionsWrapperRightMargin - marginAdjust;\n\n setStyle({ marginRight });\n }, [ref, texts.drawer.close]);\n\n return (\n <DialogPrimitive.Title className={cName} {...otherProps} ref={ref}>\n {onClickBack ? (\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.drawer.back}\n className=\"mr-3 text-base\"\n icon=\"chevron-left\"\n onClick={onClickBack}\n />\n ) : null}\n {\n // We need to apply the right margin as an inline style instead of using Tailwind CSS.\n // This is necessary because we are creating styles dynamically at runtime,\n // and Tailwind doesn't support generating runtime styles.\n }\n <span className=\"line-clamp-2 inline-block overflow-y-hidden\" style={style}>\n {children}\n </span>\n </DialogPrimitive.Title>\n );\n});\n\nexport type DrawerFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport const Footer = React.forwardRef(function DrawerFooter(props: DrawerFooterProps, ref: React.Ref<HTMLDivElement>) {\n const { className, ...otherProps } = props;\n /**\n * The same scenario as Title, grey separator rendered using classNames to have posibility to override it.\n */\n const cName = cn('mt-auto flex justify-end grow-0 p-4 border-t-[1px] border-grey-300', props.className);\n return <div {...otherProps} className={cName} ref={ref} />;\n});\n\nexport const Actions = React.forwardRef(function Actions(props: GroupProps, ref: React.Ref<HTMLDivElement>) {\n const { className, ...otherProps } = props;\n const cName = cn('absolute top-0 right-10 mr-[8px] mt-4', className);\n // Id is added to identify the actions wrapper inside a useEffect in Dialog.Title\n return <Group {...otherProps} className={cName} id=\"taco-drawer-actions\" ref={ref} />;\n});\n\nexport type DrawerCloseProps = React.HTMLAttributes<HTMLButtonElement>;\nexport const Close = React.forwardRef(function DrawerClose(props: DrawerCloseProps, ref: React.Ref<HTMLButtonElement>) {\n const { onClose } = useCurrentDrawer();\n\n return <DialogPrimitive.Close {...props} onClick={onClose} ref={ref} asChild />;\n});\n\n/**\n * It is container component, needed to provide default scrolling behaviour and padding, to simplyfy usage, requested by feature devs.\n * It is optional to use InnerContent component, if consumer need to implement custom behaviour or paddings for inner content,\n * then it's simply enough to render children and wrap them in custom implementation.\n */\nexport type DrawerInnerContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * Consumer might want to use innerContent component to apply default paddings, but want to implement custom scrolling behaviour,\n * default value - true\n */\n isScrollable?: boolean;\n};\nexport const InnerContent = React.forwardRef(function InnerContent(\n props: DrawerInnerContentProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const { className, isScrollable = true, children, ...otherProps } = props;\n const cName = cn(\n 'grow flex flex-col',\n {\n 'overflow-y-hidden': isScrollable,\n 'p-4': !isScrollable,\n },\n className\n );\n return (\n <div {...otherProps} className={cName} ref={ref}>\n {isScrollable ? <ScrollArea className=\"w-full gap-y-0.5 p-4\">{children}</ScrollArea> : children}\n </div>\n );\n});\n\nconst Portal = (props: DialogPrimitive.DialogPortalProps) => {\n const { children, ...otherProps } = props;\n const { open = false, variant, outlet } = useCurrentDrawer();\n\n const backdropClassNames = React.useMemo(() => {\n return getBackdropClassNames(open);\n }, [open]);\n\n if (!outlet) {\n return null;\n }\n\n return (\n <DialogPrimitive.Portal {...otherProps} container={outlet ?? undefined}>\n {variant === 'overlay' ? (\n <DialogPrimitive.Overlay forceMount>\n {/* Animate backdrop appearance for overlay version of Drawer */}\n <Backdrop className={backdropClassNames} />\n </DialogPrimitive.Overlay>\n ) : null}\n {children}\n </DialogPrimitive.Portal>\n );\n};\n\ntype UntrappedFocusDrawerContentProps = React.HTMLAttributes<HTMLDivElement> & {\n onEscape: (event: KeyboardEvent) => void;\n};\nconst UntrappedFocusDrawerContent = React.forwardRef(function EmbeddedDrawerContent(\n props: UntrappedFocusDrawerContentProps,\n ref: React.Ref<HTMLDivElement>\n) {\n const { onEscape, children, ...otherProps } = props;\n\n useGlobalKeyDown('Escape', onEscape);\n\n return (\n <div {...otherProps} ref={ref}>\n <FocusScope autoFocus={true} restoreFocus={true}>\n {children}\n </FocusScope>\n </div>\n );\n});\n\nexport type DrawerContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n /** An accessible label to be announced when the side drawer is opened */\n 'aria-label': string;\n children: Omit<React.ReactNode, 'Function'> | ((props: DrawerContentRenderProps) => JSX.Element);\n};\nexport const DrawerContent = React.forwardRef(function Content(\n props: DrawerContentProps,\n externalRef: React.Ref<HTMLDivElement>\n) {\n const {\n size,\n onClose,\n onResize,\n open = false,\n closeOnEscape,\n variant,\n focusTrap,\n showCloseButton,\n setOpen,\n } = useCurrentDrawer();\n const { className, style, children, ...otherProps } = props;\n const { texts } = useLocalization();\n const ref = useMergedRef<HTMLDivElement>(externalRef);\n\n // if the drawer was opened by a menu, we need to close the menu when the drawer closes\n // the menu is still open (and mounted) because it is the trigger for the drawer\n const menu = useCurrentMenu();\n let handleCloseAutoFocus: DialogPrimitive.DialogContentProps['onCloseAutoFocus'];\n\n if (menu) {\n handleCloseAutoFocus = () => {\n menu.close();\n };\n }\n\n const containerClassName: string = React.useMemo(() => cn(getDrawerContainerClassNames(variant), className), [className]);\n\n const { contentClassName, dragHandlerClassName } = React.useMemo(() => {\n const contentClassName = getDrawerContentClassNames(size, variant, open);\n const dragHandlerClassName: string = getDrawerDragHandlerClassNames();\n return { contentClassName, dragHandlerClassName };\n }, [size, variant, open]);\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n const isTargetInsideDrawerContent = ref.current?.contains(event.target as HTMLElement);\n if (isTargetInsideDrawerContent) {\n if (!closeOnEscape) {\n event.preventDefault();\n } else {\n setOpen && setOpen(false);\n if (onClose) {\n onClose();\n }\n }\n }\n };\n\n const [containerWidth, setContainerWidth] = React.useState<number>();\n\n const dragHandlerRef = React.useRef<HTMLDivElement>(null);\n const {\n position,\n dragging,\n handleProps: dragHandleProps,\n resetPosition,\n } = useDraggable(useMergedRef<HTMLDivElement>(dragHandlerRef));\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (onResize) {\n onResize(position.x);\n }\n }, [position]);\n\n React.useEffect(() => {\n setContainerWidth(contentRef.current?.offsetWidth);\n }, [contentRef, open]);\n\n const resizedWidth = React.useMemo((): number | undefined => {\n if (containerWidth) {\n return Math.min(RESIZE_MAX, Math.max(RESIZE_MIN, containerWidth - position.x || 0));\n }\n return;\n }, [containerWidth, position]);\n\n React.useEffect(() => {\n if (!dragging && resizedWidth) {\n setContainerWidth(resizedWidth);\n resetPosition();\n }\n }, [dragging]);\n\n let output;\n\n if (typeof children === 'function') {\n output = (\n <Close>\n <RenderPropWrapper>{children}</RenderPropWrapper>\n </Close>\n );\n } else {\n output = children;\n }\n\n const content = (\n <div ref={contentRef} data-taco=\"drawer\" className={containerClassName}>\n {output}\n <div className={dragHandlerClassName} {...dragHandleProps} data-testid=\"resize-handler\" ref={dragHandlerRef}>\n {dragging ? <div data-testid=\"resize-hit-area\" className=\"fixed bottom-0 left-0 right-0 top-0\" /> : null}\n </div>\n {showCloseButton ? (\n <Close>\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.drawer.close}\n className=\"absolute right-0 top-0 mr-2 mt-4\"\n icon=\"close\"\n />\n </Close>\n ) : null}\n </div>\n );\n\n const styleProp = {\n ...style,\n ...{ width: resizedWidth },\n };\n\n return focusTrap ? (\n <DialogPrimitive.Content\n forceMount\n {...otherProps}\n className={contentClassName}\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={variant === 'overlay' ? undefined : event => event.preventDefault()}\n onCloseAutoFocus={handleCloseAutoFocus}\n ref={ref}\n style={styleProp}>\n {content}\n </DialogPrimitive.Content>\n ) : (\n <UntrappedFocusDrawerContent onEscape={handleEscapeKeyDown} className={contentClassName} style={styleProp} ref={ref}>\n {content}\n </UntrappedFocusDrawerContent>\n );\n});\n\nexport const Content = React.forwardRef(function Content(props: DrawerContentProps, externalRef: React.Ref<HTMLDivElement>) {\n const { children } = props;\n\n return (\n <Portal>\n <DrawerContent {...props} ref={externalRef}>\n {children}\n </DrawerContent>\n </Portal>\n );\n});\n","import { DrawerSize, DrawerVariant } from './types';\nimport cn from 'clsx';\n\nexport const getDrawerSizeClassnames = (size: DrawerSize): string => {\n switch (size) {\n case 'lg':\n return 'w-[600px]';\n case 'md':\n default:\n return 'w-[420px]';\n }\n};\n\nexport const getDrawerPrimitiveContentClassNames = (): string => {\n return 'fixed bottom-0 top-0 right-0';\n};\n\nexport const getDrawerContentClassNames = (size: DrawerSize, variant: DrawerVariant, open: boolean): string => {\n return cn(\n 'bg-white h-full bottom-0 top-0 right-0 transition-none',\n {\n block: open,\n hidden: !open,\n fixed: variant === 'overlay',\n 'relative h-full overflow-hidden': variant === 'embedded',\n },\n getDrawerSizeClassnames(size)\n );\n};\n\nexport const getDrawerContainerClassNames = (variant: DrawerVariant): string => {\n return cn('bg-white mx-auto absolute h-full w-full flex flex-col ', {\n 'shadow-[0_6px_9px_0_rgba(89,85,98,0.3),0_0_1px_0_rgba(89,85,98,0.2)]': variant === 'overlay',\n 'border-l border-grey-300 h-full': variant === 'embedded',\n });\n};\n\nexport const getDrawerDragHandlerClassNames = (): string => {\n return cn('border-[2px] absolute border-transparent top-0 w-2 h-full cursor-ew-resize left-0 hover:border-l-blue-500');\n};\n\nexport const getBackdropClassNames = (open: boolean): string => {\n return cn({\n block: open,\n hidden: !open,\n });\n};\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nexport type DrawerTriggerProps = React.HTMLAttributes<HTMLButtonElement>;\n\nexport const Trigger = React.forwardRef(function DrawerTrigger(props: DrawerTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n return <DialogPrimitive.Trigger {...props} ref={ref} asChild />;\n});\n","import * as React from 'react';\nimport {\n Actions,\n Footer,\n InnerContent,\n DrawerInnerContentProps,\n DrawerFooterProps,\n DrawerTitleProps,\n Title,\n Close,\n Content,\n DrawerContentProps,\n DrawerCloseProps,\n} from './components/Content';\nimport { GroupProps } from '../Group/Group';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport cn from 'clsx';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { DrawerTriggerProps, Trigger } from './components/Trigger';\nimport { DrawerContext } from './Context';\nimport { DrawerSize, DrawerVariant } from './types';\n\nexport type DrawerTexts = {\n /**\n * Aria-label for back icon button in drawer.\n */\n back: string;\n /**\n * Aria-label for close icon button in drawer.\n */\n close: string;\n};\n\nexport type DrawerProps = Omit<DialogProps, 'draggable' | 'size'> & {\n children: React.ReactNode | React.ReactNode[];\n /** Size of the drawer. This is the recommended way to set a size for drawer component. */\n size?: DrawerSize;\n /** When `true`, pressing escape will close the drawer */\n closeOnEscape?: boolean;\n /** Set whether the drawer is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Handles the back button click and determines its visibility */\n onClickBack?: () => void;\n /** Handler called when drawer closes by user interaction */\n onClose?: () => void;\n /** Called when the drawer opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean | undefined) => void;\n /** Control the open state of the drawer from outside the component */\n open?: boolean;\n /** A trigger to be used for the drawer, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n /** Triggers when resizing, can be throttled or debounced for better performances */\n onResize?: (delta: number) => void;\n /** Rendering variant of the drawer */\n variant?: DrawerVariant;\n /** className for children container, needed for embedded version, in cases where we might need to control children height */\n className?: string;\n /** When 'true' preventing focus from leaving drawer content */\n focusTrap?: boolean;\n /** When 'true' renders close button in topr right cornenr of drawer content */\n showCloseButton?: boolean;\n /** Target specific named outlet allowing you to render a drawer to a specific outlet */\n outletName?: string;\n};\n\nexport type OutletProps = React.HTMLAttributes<HTMLDivElement> & {\n name?: string;\n};\n\nconst DEFAULT_OUTLET_NAME = 'default';\n\nconst Outlet = React.forwardRef(function Outlet(props: OutletProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn('h-full ml-auto overflow-hidden flex-shrink-0', props.className);\n return (\n <div\n {...props}\n className={className}\n data-taco=\"drawer-outlet\"\n data-taco-outlet-name={props.name ?? DEFAULT_OUTLET_NAME}\n ref={ref}\n />\n );\n});\n\n// drawerStack getting set by previous drawer instance, to be able to close previous instance, when new instance getting opened.\nlet drawerStack: undefined | (() => void);\n\nexport type ForwardedDrawerWithStatics = React.ForwardRefExoticComponent<DrawerProps & React.RefAttributes<HTMLElement>> & {\n Trigger: React.ForwardRefExoticComponent<DrawerTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n Content: React.ForwardRefExoticComponent<DrawerContentProps & React.RefAttributes<HTMLDivElement>>;\n InnerContent: React.ForwardRefExoticComponent<DrawerInnerContentProps & React.RefAttributes<HTMLDivElement>>;\n Title: React.ForwardRefExoticComponent<DrawerTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n Footer: React.ForwardRefExoticComponent<DrawerFooterProps & React.RefAttributes<HTMLDivElement>>;\n Close: React.ForwardRefExoticComponent<DrawerCloseProps & React.RefAttributes<HTMLButtonElement>>;\n Actions: React.ForwardRefExoticComponent<GroupProps & React.RefAttributes<HTMLDivElement>>;\n Outlet: React.ForwardRefExoticComponent<OutletProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Drawer = React.forwardRef(function Drawer(props: DrawerProps, ref: React.Ref<HTMLElement>) {\n const {\n open: openProp,\n defaultOpen: defaultOpenProp,\n // if onChange is not provided, then replace it with empty function, needed for useControllableState\n onChange = () => {\n // do nothing.\n },\n variant = 'embedded',\n className,\n closeOnEscape = true,\n onResize,\n onClose,\n onClickBack,\n size = 'md',\n trigger,\n children,\n focusTrap = props.focusTrap === undefined && props.variant === 'overlay' ? true : props.focusTrap,\n showCloseButton = true,\n outletName,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useControllableState<boolean | undefined>({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange,\n });\n\n const [outlet, setOutlet] = React.useState<HTMLElement>();\n\n const context = React.useMemo(\n () => ({\n closeOnEscape,\n onClickBack,\n onClose,\n onResize,\n props: otherProps,\n size,\n ref,\n open,\n setOpen,\n variant,\n focusTrap,\n showCloseButton,\n outlet,\n }),\n [\n closeOnEscape,\n open,\n setOpen,\n otherProps,\n variant,\n onResize,\n onClose,\n size,\n focusTrap,\n showCloseButton,\n outlet,\n onClickBack,\n ]\n );\n\n // this prevents two drawers being open at once and used when one drawer getting opened before another one got closed.\n const close = React.useCallback(() => {\n setOpen(false);\n onClose && onClose();\n }, []);\n\n React.useEffect(() => {\n const outletSelector = `[data-taco=\"drawer-outlet\"][data-taco-outlet-name=\"${outletName ?? DEFAULT_OUTLET_NAME}\"]`;\n const outletElement = document.querySelector<HTMLElement>(outletSelector) ?? document.body;\n setOutlet(outletElement);\n }, [outletName]);\n\n React.useEffect(() => {\n if (open) {\n // if drawerStack is defined, this means that another drawer was opened before\n if (drawerStack) {\n drawerStack();\n }\n drawerStack = close;\n } else {\n // if drawerStack is equal to current close callback,\n // this means that drawer getting closed completely instead of getting closed on re-open\n if (drawerStack === close) {\n drawerStack = undefined;\n }\n }\n }, [open]);\n\n return (\n <DrawerContext.Provider value={context}>\n <DialogPrimitive.Root modal={variant === 'overlay' ? true : false} open={open} onOpenChange={setOpen}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {children}\n </DialogPrimitive.Root>\n </DrawerContext.Provider>\n );\n}) as ForwardedDrawerWithStatics;\n\nDrawer.Trigger = Trigger;\nDrawer.Content = Content;\nDrawer.InnerContent = InnerContent;\nDrawer.Title = Title;\nDrawer.Footer = Footer;\nDrawer.Close = Close;\nDrawer.Actions = Actions;\nDrawer.Outlet = Outlet;\n","import * as React from 'react';\nimport cn from 'clsx';\n\nimport './Field.css';\nimport { Truncate } from '../Truncate/Truncate';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const messageRef = React.useRef<HTMLSpanElement>(null);\n\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-grey-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-grey-700': !invalid && !warning,\n 'text-red-500': invalid,\n 'text-yellow-700': warning && !invalid,\n 'opacity-50': disabled,\n });\n\n return (\n <label {...otherProps} className={className} data-taco=\"label\" ref={ref}>\n {children}\n {message && (\n <Truncate tooltip={message}>\n <span\n className={messageClassName}\n data-taco=\"label-message\"\n ref={messageRef}\n role={invalid ? 'alert' : undefined}>\n {message}\n </span>\n </Truncate>\n )}\n </label>\n );\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport './Form.css';\n\nexport type FormProps = React.FormHTMLAttributes<HTMLFormElement> & {\n /** Content should be composed of other Taco form elements */\n children: React.ReactNode;\n /** Display the form fields in a horizontal layout */\n horizontal?: boolean;\n};\n\nexport const Form = React.forwardRef(function Form(props: FormProps, ref: React.Ref<HTMLFormElement>) {\n const { horizontal = false, ...otherProps } = props;\n const className = cn(\n 'yt-form',\n {\n 'yt-form--horizontal flex flex-wrap': horizontal,\n },\n props.className\n );\n\n return <form {...otherProps} className={className} data-taco=\"form\" ref={ref} />;\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Placement } from '../..';\nimport { UnstyledArrow } from '../Popover/Primitives';\nimport { useLocalization } from '../Provider/Localization';\nimport './Hanger.css';\nimport { mergeRefs } from '../../utils/mergeRefs';\n\ntype HangerContextValue = {\n /** Handler called when hanger closes by user interaction */\n onClose?: () => void;\n props: Record<string, any>;\n ref: React.Ref<HTMLElement>;\n};\nconst HangerContext = React.createContext<HangerContextValue>({\n onClose: undefined,\n props: {},\n ref: null,\n});\n\nexport type HangerTexts = {\n /** Aria-label for the close icon button of hanger */\n close: string;\n};\n\nexport type HangerAnchorProps = React.HTMLAttributes<HTMLDivElement>;\nconst Anchor = React.forwardRef(function HangerAnchor(props: HangerAnchorProps, externalRef: React.Ref<HTMLDivElement>) {\n const { ref: parentRef, props: parentProps } = React.useContext(HangerContext);\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n let children = props.children;\n\n if (React.isValidElement(props.children) && typeof props.children?.type === 'function') {\n console.warn(\n `Hanger.Anchor requires its child to forwardRef so that it can attach to the dom element. Did you mean to wrap '${props.children.type.name}' in React.forwardRef()? Taco has wrapped '${props.children.type.name}' in a 'span' to maintain functionality, but this may cause unintended behaviour`\n );\n children = <span>{props.children}</span>;\n }\n\n return (\n <PopoverPrimitive.Anchor {...parentProps} {...props} ref={refCallback} asChild>\n {children}\n </PopoverPrimitive.Anchor>\n );\n});\n\nexport type HangerTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport const Title = React.forwardRef(function DialogTitle(props: HangerTitleProps, ref: React.Ref<HTMLHeadingElement>) {\n const className = cn('mb-1 text-base font-bold flex w-full', props.className);\n return <span {...props} className={className} ref={ref} />;\n});\n\nexport type HangerContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Set the position of the Hanger relative to its achor. Default value is `bottom` */\n placement?: Placement;\n};\n\nconst Content = React.forwardRef(function HangerContent(props: HangerContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement: side } = props;\n const context = React.useContext(HangerContext);\n const { texts } = useLocalization();\n const className = cn(\n 'wcag-blue-500 border border-transparent rounded p-3 pr-12 yt-shadow focus:border-transparent max-w-sm',\n props.className\n );\n const handleInteractOutside = (event: CustomEvent): void => {\n event.preventDefault();\n };\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n className={className}\n data-taco=\"hanger\"\n onInteractOutside={handleInteractOutside}\n side={side}\n sideOffset={1}\n ref={ref}>\n {props.children}\n <UnstyledArrow className=\"text-blue-500\" />\n <PopoverPrimitive.Close asChild>\n <IconButton\n appearance=\"primary\"\n aria-label={texts.hanger.close}\n className=\"absolute right-0 top-0 ml-2 mr-2 mt-2 text-white\"\n icon=\"close\"\n onClick={context.onClose}\n />\n </PopoverPrimitive.Close>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n});\n\nexport type HangerProps = React.PropsWithChildren<{\n /** An anchor to be used for the hanger, should not be set if `children` already contains an anchor */\n anchor?: JSX.Element;\n /**\n * Shows or hides hanger depending on the value\n * @defaultValue true\n */\n defaultOpen?: boolean;\n /** Handler called when user closes the hanger */\n onClose?: () => void;\n}>;\n\nexport type ForwardedHangerWithStatics = React.ForwardRefExoticComponent<HangerProps & React.RefAttributes<HTMLElement>> & {\n Anchor: React.ForwardRefExoticComponent<HangerAnchorProps>;\n Content: React.ForwardRefExoticComponent<HangerContentProps>;\n Title: React.ForwardRefExoticComponent<HangerTitleProps>;\n};\n\nexport const Hanger = React.forwardRef<HTMLElement, HangerProps>(function Hanger(props, ref) {\n const { anchor, children, defaultOpen = true, onClose, ...otherProps } = props;\n const context = React.useMemo(() => ({ onClose, props: otherProps, ref }), [onClose, otherProps]);\n\n // we do this to ensure hangers are mounted after their containers, e.g. if the container is another portal\n const [open, setOpen] = React.useState(false);\n React.useEffect(() => {\n if (defaultOpen) {\n setOpen(defaultOpen);\n }\n }, []);\n\n return (\n <HangerContext.Provider value={context}>\n <PopoverPrimitive.Root key={String(open)} defaultOpen={open}>\n {anchor && <Anchor>{anchor}</Anchor>}\n {children}\n </PopoverPrimitive.Root>\n </HangerContext.Provider>\n );\n}) as ForwardedHangerWithStatics;\nHanger.Anchor = Anchor;\nHanger.Content = Content;\nHanger.Title = Title;\n","import * as React from 'react';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\n\nexport const UnstyledArrow = React.forwardRef(function HoverCardArrow(\n props: React.SVGAttributes<SVGElement>,\n ref: React.Ref<SVGSVGElement>\n) {\n return (\n <HoverCardPrimitive.Arrow className=\"pointer-events-none -mt-px\" asChild offset={2} width={30} height={11}>\n <svg {...props} ref={ref} viewBox=\"0 19 30 11\" style={{ transform: 'rotateZ(180deg)' }}>\n <path\n className=\"text-grey-300 fill-current group-focus:text-blue-300\"\n d=\"M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z\"></path>\n <path\n className=\"fill-current\"\n d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"></path>\n </svg>\n </HoverCardPrimitive.Arrow>\n );\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\nimport { Placement } from '../..';\nimport { UnstyledArrow } from './Primitives';\nimport { getPopoverStyleClassnames } from '../Popover/util';\n\nexport type HoverCardTriggerProps = React.HTMLAttributes<HTMLAnchorElement>;\nconst Trigger = React.forwardRef(function HoverCardTrigger(props: HoverCardTriggerProps, ref: React.Ref<HTMLAnchorElement>) {\n return <HoverCardPrimitive.Trigger {...props} asChild ref={ref} />;\n});\n\nexport type HoverCardContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Set the position of the HoverCard relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\nconst Content = React.forwardRef(function HoverCardContent(props: HoverCardContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement: side } = props;\n const className = cn(getPopoverStyleClassnames(), 'min-w-[theme(spacing.40)] max-w-[theme(spacing.96)]', props.className);\n\n return (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content className={className} data-taco=\"hover-card\" side={side} sideOffset={1} ref={ref}>\n {props.children}\n <UnstyledArrow className=\"text-white\" />\n </HoverCardPrimitive.Content>\n </HoverCardPrimitive.Portal>\n );\n});\n\nexport type HoverCardProps = React.PropsWithChildren<{}>;\n\nexport const HoverCard = (props: HoverCardProps) => {\n return <HoverCardPrimitive.Root {...props} openDelay={300} />;\n};\nHoverCard.Trigger = Trigger;\nHoverCard.Content = Content;\n","import React from 'react';\n\nexport type ListGroupProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: JSX.Element | JSX.Element[];\n};\n\nexport const Group = React.forwardRef<HTMLDivElement, ListGroupProps>(function Group(props, ref) {\n return <div {...props} data-taco=\"list-group\" ref={ref} />;\n});\n","import React from 'react';\nimport clsx from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Color } from '../../../types';\nimport { getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type ListItemProps<ElementType extends React.ElementType> = Omit<React.ComponentPropsWithoutRef<ElementType>, 'title'> & {\n as?: ElementType;\n color?: Color;\n control?: JSX.Element;\n description?: string | JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n title: string | JSX.Element;\n};\n\nexport type ComposableListItemProps<ElementType extends React.ElementType> = Omit<\n ListItemProps<ElementType>,\n 'as' | 'control' | 'onChange'\n>;\n\nexport const Item = React.forwardRef<HTMLElement, ListItemProps<React.ElementType>>(function Item(props, ref) {\n const { as: Tag = 'div', control, description, disabled, icon, color, tabIndex = 0, title, ...attributes } = props;\n const iconClassName = clsx(\n 'flex shrink-0 h-10 w-10 items-center justify-center rounded-md border border-black/10',\n getSubtleColorShadeClasses(color ?? 'transparent')\n );\n\n return (\n <Tag\n {...attributes}\n aria-disabled={disabled ? true : undefined}\n data-taco=\"list-item\"\n ref={ref as any}\n tabIndex={disabled ? -1 : tabIndex}>\n {icon ? (\n <span className={iconClassName}>\n <Icon name={icon} />\n </span>\n ) : null}\n <div className=\"flex grow flex-col justify-center\">\n <span className=\"font-bold text-black\">{title}</span>\n {description ? <span className=\"text-grey-700\">{description}</span> : null}\n </div>\n <div className=\"text-grey-700 flex shrink-0 items-center\">{control}</div>\n </Tag>\n );\n});\n","import React from 'react';\nimport { Item, ComposableListItemProps } from './Item';\nimport { Icon } from '../../Icon/Icon';\n\nexport type ListLinkProps = ComposableListItemProps<'a'> & {\n href: string;\n};\n\nexport const Link = React.forwardRef<HTMLAnchorElement, ListLinkProps>(function Link(props, ref) {\n const isExternal = props.href.startsWith('http');\n const control = <Icon name={isExternal ? 'link-external' : 'chevron-right'} />;\n\n if (isExternal) {\n return <Item {...props} as=\"a\" target=\"_blank\" rel=\"noopener noreferrer\" control={control} ref={ref} />;\n }\n\n return <Item {...props} as=\"a\" control={control} ref={ref} />;\n});\n","import React from 'react';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport { Item, ComposableListItemProps } from './Item';\nimport { Icon } from '../../Icon/Icon';\n\nexport type ListCollapsibleProps = Omit<ComposableListItemProps<typeof CollapsiblePrimitive.Root>, 'children'> & {\n children: JSX.Element | JSX.Element[];\n defaultOpen?: boolean;\n};\n\nexport const Collapsible = React.forwardRef<HTMLDivElement, ListCollapsibleProps>(function Accordion(props, ref) {\n const { defaultOpen = false, ...attributes } = props;\n const [open, setOpen] = React.useState(defaultOpen);\n const control = <Icon name={open ? 'chevron-up' : 'chevron-down'} />;\n\n return (\n <CollapsiblePrimitive.Root data-taco=\"list-item-collapsible\" disabled={props.disabled} open={open} onOpenChange={setOpen}>\n <CollapsiblePrimitive.Trigger asChild>\n <Item {...attributes} as=\"button\" control={control} ref={ref} />\n </CollapsiblePrimitive.Trigger>\n <CollapsiblePrimitive.Content>{props.children}</CollapsiblePrimitive.Content>\n </CollapsiblePrimitive.Root>\n );\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PrimitiveSwitch from '@radix-ui/react-switch';\nimport { useId } from '../../hooks/useId';\n\ntype SwitchBaseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> & {\n /** Label for the switch */\n label?: React.ReactNode;\n /* Whether user input is required */\n required?: boolean;\n};\n\nexport interface UncontrolledSwitchProps extends SwitchBaseProps {\n checked?: never;\n onChange?: never;\n /* The default checked state (uncontrolled) */\n defaultChecked?: boolean;\n}\n\nexport interface ControlledSwitchProps extends SwitchBaseProps {\n defaultChecked?: never;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean) => void;\n}\n\nexport type SwitchProps = UncontrolledSwitchProps | ControlledSwitchProps;\n\nexport const Switch = React.forwardRef(function Switch(props: SwitchProps, ref: React.Ref<HTMLButtonElement>) {\n const { label, onChange, ...otherProps } = props;\n const id = useId(props.id);\n\n const className = cn(\n 'group h-5 w-9 flex flex-shrink-0 rounded-full inline-flex focus-visible:yt-focus',\n {\n 'mr-2': !!label,\n 'bg-grey-500 hover:bg-grey-700 aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700': !props.disabled,\n 'bg-grey-500/50 aria-checked:bg-blue-500/50 cursor-not-allowed': props.disabled,\n },\n props.className\n );\n\n let labelledByProps: Record<string, string> | null = null;\n\n if (label) {\n labelledByProps = {\n 'aria-labelledby': `${id}-label`,\n id,\n };\n }\n\n const element = (\n <PrimitiveSwitch.Root\n {...otherProps}\n {...labelledByProps}\n className={className}\n data-taco=\"switch\"\n onCheckedChange={onChange}\n ref={ref}>\n <PrimitiveSwitch.Thumb className=\"'will-change-transform mt-0.5 h-4 w-4 translate-x-[0.15rem] rounded-full bg-white transition-transform group-disabled:opacity-50 group-aria-checked:translate-x-[1.1rem]\" />\n </PrimitiveSwitch.Root>\n );\n\n if (label) {\n const labelContainerClassName = cn('flex self-start cursor-pointer', {\n 'cursor-not-allowed text-grey-300': props.disabled,\n });\n\n return (\n <span className={labelContainerClassName} data-taco=\"switch-container\">\n {element}\n <label htmlFor={id} id={`${id}-label`}>\n {label}\n </label>\n </span>\n );\n }\n\n return element;\n});\nSwitch.displayName = 'Switch';\n","import React from 'react';\nimport cn from 'clsx';\nimport { ControlledSwitchProps, Switch as TacoSwitch } from '../../Switch/Switch';\nimport { ControlledCheckboxProps, Checkbox as TacoCheckbox } from '../../Checkbox/Checkbox';\nimport { Item, ComposableListItemProps } from './Item';\n\ntype ToggleProps = ComposableListItemProps<'div'> & {\n control: JSX.Element;\n controlRef: React.RefObject<HTMLButtonElement>;\n onToggle: () => void;\n};\n\nconst ToggleItem = React.forwardRef<HTMLDivElement, ToggleProps>(function Toggle(props, ref) {\n const { controlRef, onToggle, ...attributes } = props;\n\n function handleClick(event: React.MouseEvent<HTMLDivElement>) {\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n // If event target is not a control and not an element inside the control, then trigger click of the control\n if (event.target !== controlRef.current && !controlRef.current?.contains(event.target as HTMLElement)) {\n onToggle();\n return;\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n // If event target is not a control and not an element inside the control, then send appropriate \"activate\" keyboard shortcuts to the control as a click\n if (\n (event.key === 'Enter' || event.key === ' ') &&\n event.target !== controlRef.current &&\n !controlRef.current?.contains(event.target as HTMLElement)\n ) {\n onToggle();\n return;\n }\n }\n\n const className = cn('group/toggle', props.className);\n return <Item {...attributes} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref} />;\n});\n\nexport type ListSwitchProps = ComposableListItemProps<'div'> & Omit<ControlledSwitchProps, 'title'>;\n\nexport const Switch = React.forwardRef<HTMLDivElement, ListSwitchProps>(function Switch(props, ref) {\n const { checked: externalChecked, onChange, ...attributes } = props;\n const [checked, setChecked] = React.useState<boolean>(externalChecked);\n const switchRef = React.useRef<HTMLButtonElement>(null);\n\n const toggle = React.useCallback(() => {\n setChecked(!checked);\n onChange(!checked);\n }, [checked, onChange]);\n\n const control = (\n <TacoSwitch\n checked={checked}\n className=\"group-hover/toggle:[&[aria-checked=false]]:bg-grey-700 group-hover/toggle:[&[aria-checked=true]]:bg-blue-700\"\n disabled={props.disabled}\n onChange={toggle}\n ref={switchRef}\n tabIndex={-1}\n />\n );\n\n return <ToggleItem {...attributes} control={control} controlRef={switchRef} ref={ref} onToggle={toggle} />;\n});\n\nexport type ListCheckboxProps = ComposableListItemProps<'div'> & ControlledCheckboxProps;\n\nexport const Checkbox = React.forwardRef<HTMLDivElement, ListSwitchProps>(function Switch(props, ref) {\n const { checked: externalChecked, onChange, ...attributes } = props;\n const [checked, setChecked] = React.useState<boolean>(externalChecked);\n const checkboxRef = React.useRef<HTMLButtonElement>(null);\n\n const toggle = React.useCallback(() => {\n setChecked(!checked);\n onChange(!checked);\n }, [checked, onChange]);\n\n const control = (\n <TacoCheckbox\n checked={checked}\n className=\"group-hover/toggle:[&[aria-checked=false]]:border-grey-700 group-hover/toggle:[&[aria-checked=true]]:border-blue-700 group-hover/checkbox:[&[aria-checked=true]]:bg-blue-700\"\n disabled={props.disabled}\n onChange={toggle}\n ref={checkboxRef}\n tabIndex={-1}\n />\n );\n\n return <ToggleItem {...attributes} control={control} controlRef={checkboxRef} ref={ref} onToggle={toggle} />;\n});\n","import React from 'react';\nimport { Group } from './components/Group';\nimport { Link } from './components/Link';\nimport { Collapsible } from './components/Collapsible';\nimport { Checkbox, Switch } from './components/Toggle';\nimport { Button } from './components/Button';\nimport './List.css';\n\nexport type ListProps = React.HTMLAttributes<HTMLDivElement> & {\n /* One or more of List.Button, List.Link, List.Collapsible, List.Checkbox, List.Switch or List.Group */\n children: JSX.Element | (JSX.Element | boolean | null | undefined)[];\n};\n\nexport function List(props: ListProps) {\n return <div {...props} data-taco=\"list\" />;\n}\n\nList.Button = Button;\nList.Link = Link;\nList.Collapsible = Collapsible;\nList.Switch = Switch;\nList.Checkbox = Checkbox;\nList.Group = Group;\n\nexport type { ListButtonProps } from './components/Button';\nexport type { ListLinkProps } from './components/Link';\nexport type { ListCollapsibleProps } from './components/Collapsible';\nexport type { ListGroupProps } from './components/Group';\nexport type { ListSwitchProps, ListCheckboxProps } from './components/Toggle';\n","import * as React from 'react';\n\nexport interface Timer {\n running: boolean;\n start: () => void;\n pause: () => void;\n resume: () => void;\n}\n\ntype Tracker = {\n remaining: number;\n started: number | null;\n};\n\nexport default function useTimer(duration = 0, callback: () => void): Timer {\n const timer = React.useRef<number>();\n const [tracker, setTracker] = React.useState<Tracker>({\n remaining: duration,\n started: null,\n });\n\n React.useEffect(() => {\n if (duration) {\n if (tracker.started) {\n timer.current = window.setTimeout(callback, tracker.remaining);\n } else {\n clearTimeout(timer.current);\n }\n }\n\n return () => {\n clearTimeout(timer.current);\n };\n }, [tracker.started]);\n\n return {\n running: !!tracker.started,\n start: () => {\n setTracker({\n remaining: duration,\n started: Date.now(),\n });\n },\n pause: () => {\n if (tracker.started) {\n setTracker({\n remaining: tracker.remaining - (Date.now() - tracker.started),\n started: null,\n });\n }\n },\n resume: () => {\n if (tracker.remaining && !tracker.started) {\n setTracker({\n remaining: tracker.remaining,\n started: Date.now(),\n });\n }\n },\n };\n}\n","import React from 'react';\nimport { Item, ComposableListItemProps } from './Item';\n\nexport type ListButtonProps = Omit<ComposableListItemProps<'button'>, 'onClick'> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n};\n\nexport const Button = React.forwardRef<HTMLButtonElement, ListButtonProps>(function Link(props, ref) {\n return <Item {...props} as=\"button\" ref={ref} />;\n});\n","import * as React from 'react';\nimport useTimer from '../../utils/hooks/useTimer';\nimport { findNextIndexByValue } from './util';\nimport { ScrollableListItem } from './ScrollableList';\n\ntype useTypeahead = {\n getNextIndex: (key: string) => number;\n};\n\ntype useTypeaheadProps = {\n data: ScrollableListItem[];\n currentIndex: number | undefined;\n};\n\nexport const useTypeahead = ({ data, currentIndex }: useTypeaheadProps): useTypeahead => {\n const typeaheadQuery = React.useRef<string | undefined>();\n const typeaheadQueryTimer = useTimer(1000, () => {\n typeaheadQuery.current = undefined;\n });\n\n const getNextIndex = (charKey: string): number => {\n const query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();\n const nextIndex = findNextIndexByValue(data, query, currentIndex);\n\n typeaheadQueryTimer.start();\n typeaheadQuery.current = query;\n\n return nextIndex;\n };\n\n return { getNextIndex };\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { useListbox } from './useListbox';\nimport { useMultiListbox } from './useMultiListbox';\nimport { ScrollableList, ScrollableListItemValue, ScrollableListItem } from './ScrollableList';\n\nexport type ListboxItem = ScrollableListItem;\nexport type ListboxValue = ScrollableListItemValue;\n\nexport type ListboxTexts = {\n /**\n * Text displayed in the listbox if no data provided.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n empty: string;\n /**\n * Text displayed in the listbox to indicate the data is loading.\n * Read more about how to provide the text in [Provider](component:provider) component\n */\n loading: string;\n /**\n * The first option displayed in a multiselect listbox that selects all available options.\n * Read more about how to provide the text in [Provider](component:provider) component\n */\n allOption: string;\n};\n\nexport type ListboxProps = Pick<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onFocus'> &\n Omit<React.InputHTMLAttributes<HTMLElement>, 'defaultValue' | 'onChange' | 'value'> & {\n /** Data indicating the options in listbox */\n data?: ListboxItem[];\n /**\n * Initial value of the listbox.\n * This is used when listbox is mounted, if no value is provided.\n * *Note* that listbox is a controlled component, setting this will also trigger the `onChange` event\n */\n defaultValue?: ListboxValue;\n /** Set what value should have an empty option in listbox */\n emptyValue?: ListboxValue;\n /** Draws attention to the listbox by changing its style and making it visually prominent */\n highlighted?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /**\n * Shows a loading indicator with a text next to it.\n * Read more about how to provide the text in [Provider](component:provider) component\n */\n loading?: boolean;\n /**\n * Value of the listbox representing the selected item.\n * It needs to be an existing value from the provided data\n */\n value?: ListboxValue;\n };\n\nexport const Listbox = React.forwardRef(function Listbox(props: ListboxProps, ref: React.Ref<HTMLInputElement>) {\n const { className: externalClassName, ...otherProps } = props;\n const { list, input } = useListbox(otherProps, ref);\n const className = cn('bg-white inline-flex relative w-full', externalClassName);\n\n return (\n <span data-taco=\"listbox\" className={className}>\n <ScrollableList\n {...list}\n style={{ ...list.style, maxHeight: 'calc(12rem + 2px)' /* (6 * option height) + listbox border */ }}\n />\n <input {...input} className=\"hidden\" type=\"text\" />\n </span>\n );\n});\n\nexport const MultiListbox = React.forwardRef(function Listbox(props: ListboxProps, ref: React.Ref<HTMLInputElement>) {\n const { className: externalClassName, ...otherProps } = props;\n const { list, input } = useMultiListbox(otherProps, ref);\n const className = cn('bg-white inline-flex relative w-full', externalClassName);\n\n return (\n <span data-taco=\"listbox\" className={className}>\n <ScrollableList\n {...list}\n style={{\n ...list.style,\n maxHeight: 'calc(12rem + 2px + 2px)' /* (6 * option height) + listbox border + ALL_OPTIONS bottom border */,\n }}\n />\n <input {...input} className=\"hidden\" type=\"text\" />\n </span>\n );\n});\n","import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { ListboxProps } from './Listbox';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { setInputValueByRef, getIndexFromValue, findByValue, getActiveDescendant, useFlattenedData, sanitizeItem } from './util';\nimport { ScrollableListProps } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n invalid,\n name,\n onChange,\n onFocus,\n onKeyDown,\n value = emptyValue,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const data = useFlattenedData(emptyValue !== undefined ? [{ text: '', value: emptyValue }, ...externalData] : externalData);\n const id = React.useMemo(() => nativeId || uuid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const currentIndex = value !== undefined ? getIndexFromValue(data, value) : undefined;\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n setInputValueByRef(inputRef.current, option.value);\n }\n }\n };\n\n const handleListboxChange = (index: number): void => {\n setInputValueByIndex(index);\n };\n\n React.useEffect(() => {\n if (data.length && currentIndex === undefined) {\n if (defaultValue !== undefined) {\n const defaultValueIndex = getIndexFromValue(data, defaultValue);\n\n if (defaultValueIndex !== undefined) {\n setInputValueByIndex(defaultValueIndex);\n }\n } else {\n setInputValueByIndex(0);\n }\n }\n }, [data]);\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/g.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setInputValueByIndex(nextIndex);\n }\n return;\n }\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (currentIndex === undefined && data.length) {\n setInputValueByIndex(0);\n }\n\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(data, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const list: ScrollableListProps = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n data,\n disabled,\n id,\n invalid,\n onChange: handleListboxChange,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: true,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n","import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { useLocalization } from '../Provider/Localization';\nimport { ListboxProps } from './Listbox';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\nimport { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useMultiListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue: _,\n id: nativeId,\n name,\n onClick,\n onChange,\n onFocus,\n onKeyDown,\n value,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const { texts } = useLocalization();\n const id = React.useMemo(() => nativeId || uuid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const data = React.useMemo(() => {\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\n }, [externalData]);\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\n\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByRef(inputRef.current, defaultValue.toString());\n }\n }, []);\n\n React.useEffect(() => {\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\n\n if (selectableItemsCount === selectedIndexes.length) {\n setAllOptionsSelected(true);\n } else {\n setAllOptionsSelected(false);\n }\n }, [selectedIndexes, data]);\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n let newInputValue: ScrollableListItemValue = '';\n const currentInputValue = inputRef.current?.value;\n const currentValuesArray = currentInputValue?.split(',') || [];\n const optionAlreadySelected = currentValuesArray.findIndex(val => val === String(option.value)) !== -1;\n\n // Handling the select_all option\n if (option.value === '#ALL-OPTIONS#') {\n if (!allOptionsSelected) {\n newInputValue = data\n .filter((option, index) => index !== 0 && !option.disabled)\n .map(option => option.value)\n .join(',');\n } else {\n newInputValue = '';\n }\n } else {\n // Handling rest options\n if (optionAlreadySelected) {\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\n } else {\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\n }\n }\n\n setInputValueByRef(inputRef.current, newInputValue);\n }\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n\n if (!data[index].disabled) {\n setCurrentIndex(index);\n setInputValueByIndex(index);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index?: number): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/g.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.key) {\n case ' ': {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case 'Enter': {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index !== undefined ? index : 0);\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\n\n if (onChange) {\n const detail: ScrollableListItem[] = [];\n const valuesArray = event.target.value.split(',');\n\n valuesArray.forEach(val => {\n const item = findByValue(data, val);\n if (item) {\n detail.push(item);\n }\n });\n (event as any).detail = detail;\n\n onChange(event);\n }\n };\n\n const list = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n 'aria-multiselectable': true,\n data,\n disabled,\n id,\n onChange: () => null,\n onClick: handleListboxClick,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: false,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n selectedIndexes,\n multiselect: true,\n allOptionsSelected,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'clsx';\nimport { Align, Placement } from '../../../types';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useCurrentMenu } from '../Context';\nimport { createShortcutKeyDownHandler } from '../../../utils/keyboard';\nimport { MenuItemProps } from './Item';\n\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\n align?: Align;\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const menu = useCurrentMenu();\n const { align = 'start', children, placement: side, ...otherProps } = props;\n const className = cn('border border-transparent rounded block outline-none p-1 yt-shadow wcag-white', props.className);\n\n // attach refs to each child\n const childrenRefs = React.useRef<React.RefObject<HTMLDivElement>[]>([]);\n const childrenWithRefs = (React.Children.toArray(props.children) as React.ReactElement<MenuItemProps & { ref: any }>[])\n .filter(child => !!child) // remove falsey children\n .map((child, index) => {\n childrenRefs.current[index] = React.createRef<HTMLDivElement>();\n return React.cloneElement(child, { ref: childrenRefs.current[index] });\n });\n\n // register any shortcuts attached to children\n React.useEffect(() => {\n const shortcuts: ((event: KeyboardEvent) => void)[] = [];\n childrenWithRefs.forEach((child, index) => {\n if (child.props.shortcut) {\n shortcuts.push(\n createShortcutKeyDownHandler(child.props.shortcut, event => {\n event.preventDefault();\n menu?.open();\n setTimeout(() => childrenRefs.current[index]?.current?.click(), 1);\n })\n );\n }\n });\n\n shortcuts.forEach(handler => document.addEventListener('keydown', handler));\n\n return () => {\n shortcuts.forEach(handler => document.removeEventListener('keydown', handler));\n };\n }, [childrenWithRefs]);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n {...otherProps}\n align={align}\n className={className}\n data-taco=\"menu\"\n side={side}\n sideOffset={3}\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}>\n {childrenWithRefs}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { isMacOs, KeyDownHandlerOptions } from '../../utils/keyboard';\n\nconst replaceWithShortform = (key: string) => {\n switch (key) {\n case 'Escape':\n return 'Esc';\n\n case 'Delete':\n return 'Del';\n\n case 'Space':\n case ' ':\n return 'Space';\n\n case 'ArrowLeft':\n return '◄';\n\n case 'ArrowRight':\n return '►';\n\n case 'ArrowUp':\n return '▲';\n\n case 'ArrowDown':\n return '▼';\n\n default:\n return key.length === 1 ? key.toLocaleUpperCase() : key;\n }\n};\n\nconst getShortcutText = (key: string | KeyDownHandlerOptions) => {\n if (!key) {\n return [];\n }\n\n if (typeof key === 'string') {\n return [replaceWithShortform(key)];\n }\n\n const keys: string[] = [];\n\n if (key.shift) {\n keys.push(isMacOs() ? '⇧' : 'Shift');\n }\n\n if (key.meta) {\n keys.push(isMacOs() ? '⌘' : 'Ctrl');\n }\n\n keys.push(replaceWithShortform(key.key));\n\n return keys;\n};\n\nexport type ShortcutProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\n keys: string | KeyDownHandlerOptions;\n};\nexport const Shortcut = ({ keys, ...props }: ShortcutProps) => {\n const className = cn('inline-flex gap-0.5', props.className);\n const texts = getShortcutText(keys);\n\n return (\n <span {...props} className={className}>\n {texts.map(key => (\n <kbd\n key={key}\n className=\"font-display text-grey-700 [[data-taco=tooltip]_&]:bg-grey-300/[0.25] rounded-sm bg-black/[0.09] px-1 text-center font-bold [[data-taco=tooltip]_&]:text-white\">\n {key}\n </kbd>\n ))}\n </span>\n );\n};\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'clsx';\nimport { IconName } from '../../Icon/Icon';\nimport { Icon as IconPrimitive } from '../../Icon/Icon';\nimport { useCurrentMenu } from '../Context';\nimport { DialogProps } from '../../Dialog/Dialog';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { PopoverProps } from '../../Popover/Popover';\nimport { KeyDownHandlerOptions } from '../../../utils/keyboard';\n\nexport const Icon = ({ name }) => (\n <span className=\"absolute left-0 ml-1\">\n <IconPrimitive className=\"-ml-px -mt-px !h-5 !w-5\" name={name} />\n </span>\n);\n\nexport const useItemStyling = ({ disabled, indented, className }) => {\n const menu = useCurrentMenu();\n\n React.useEffect(() => {\n if (indented && !menu?.indented) {\n menu?.registerIndentation();\n }\n }, [indented]);\n\n return cn(\n 'flex items-center justify-start h-8 pr-1.5 relative rounded w-full focus:outline-none group',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n 'cursor-pointer text-black hover:wcag-grey-200 data-[highlighted]:wcag-grey-200': !disabled,\n 'cursor-not-allowed hover:bg-white text-grey-300': disabled,\n },\n className\n );\n};\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n dialog?: (props: Partial<DialogProps>) => JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n popover?: (props: Partial<PopoverProps>) => JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n subMenu?: any;\n};\n\nexport const Item = React.forwardRef(function MenuItem(props: MenuItemProps, ref: React.Ref<HTMLDivElement>) {\n const { dialog, icon, onClick, popover, shortcut, subMenu, ...otherProps } = props;\n const menu = useCurrentMenu();\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const disabled = props.disabled ?? props['aria-disabled'];\n\n let handleClick;\n\n // radix has a bug that does not disable clicks when disabled is set on items\n if (disabled) {\n handleClick = event => {\n event.preventDefault();\n event.stopPropagation();\n };\n }\n\n if (subMenu) {\n return (\n <DropdownMenuPrimitive.Sub>\n <DropdownMenuPrimitive.SubTrigger {...otherProps} className={className} onClick={handleClick} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n <IconPrimitive className=\"-mr-1.5 ml-auto !h-5 !w-5\" name=\"chevron-right\" />\n </DropdownMenuPrimitive.SubTrigger>\n {subMenu()}\n </DropdownMenuPrimitive.Sub>\n );\n }\n\n const handleSelect = event => {\n if (onClick) {\n onClick(event);\n }\n\n if (props['aria-haspopup'] || typeof dialog === 'function' || typeof popover === 'function') {\n event.preventDefault();\n }\n };\n\n let button = (\n <DropdownMenuPrimitive.Item {...otherProps} className={className} onClick={handleClick} onSelect={handleSelect} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n {shortcut ? (\n <span className=\"ml-auto pl-5\">\n <Shortcut keys={shortcut} className=\"text-grey-700\" />\n </span>\n ) : null}\n </DropdownMenuPrimitive.Item>\n );\n\n if (typeof dialog === 'function') {\n button = dialog({ trigger: button, onClose: menu?.close });\n } else if (typeof popover === 'function') {\n button = popover({ trigger: button });\n }\n\n return button;\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { IconName } from '../../Icon/Icon';\nimport { Icon, useItemStyling } from './Item';\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuLinkItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n disabled?: boolean;\n icon?: IconName;\n href: string;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n};\n\nexport const Link = React.forwardRef(function MenuLink(props: MenuLinkItemProps, ref: React.Ref<HTMLDivElement>) {\n const { href, icon, onClick, ...otherProps } = props;\n const menu = useCurrentMenu();\n\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> = event => {\n onClick?.(event);\n menu?.close();\n };\n\n return (\n <DropdownMenuPrimitive.Item {...otherProps} asChild className={className} ref={ref} onClick={handleClick}>\n <a href={href} target=\"_blank\">\n {icon && <Icon name={icon} />}\n {props.children}\n </a>\n </DropdownMenuPrimitive.Item>\n );\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useCurrentMenu } from '../Context';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { isElementInsideTable3OrReport } from '../../../utils/dom';\n\nexport type MenuTriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children'> & {\n children: React.ReactElement;\n};\n\nexport const Trigger = React.forwardRef(function MenuTrigger(props: MenuTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const menu = useCurrentMenu();\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n if (isElementInsideTable3OrReport(event.currentTarget)) {\n event.preventDefault();\n event.currentTarget.parentNode?.dispatchEvent(\n createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>)\n );\n }\n }\n };\n\n React.useEffect(() => {\n if (internalRef.current) {\n menu?.setMinWidth(internalRef.current.getBoundingClientRect().width);\n }\n }, [internalRef]);\n\n return <DropdownMenuPrimitive.Trigger {...props} asChild ref={internalRef} onKeyDown={handleKeyDown} />;\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { Icon } from '../../Icon/Icon';\nimport { useItemStyling } from './Item';\n\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n /* Whether the checkbox item is disabled */\n disabled?: boolean;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean | 'indeterminate') => void;\n};\n\nexport const Checkbox = React.forwardRef<HTMLDivElement, MenuCheckboxItemProps>(function MenuCheckboxItem(props, ref) {\n const { checked, children, onChange, ...otherProps } = props;\n const className = useItemStyling({\n disabled: props.disabled,\n indented: true,\n className: props.className,\n });\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n {...otherProps}\n checked={checked}\n className={className}\n onCheckedChange={onChange}\n ref={ref}>\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\n <Icon name=\"tick\" className=\"-ml-px !h-4 !w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\n","import cn from 'clsx';\n\nexport const getRadioClassnames = (disabled = false, invalid = false) => {\n return cn(\n 'flex flex-shrink-0 items-center justify-center h-4 w-4 mt-[0.2rem] rounded-full bg-white border-2 focus-visible:yt-focus disabled:cursor-not-allowed hover:border-4',\n invalid\n ? {\n 'border-red-500 hover:border-red-700 aria-checked:bg-red-500 aria-checked:border-red-500 hover:aria-checked:border-red-700':\n !disabled,\n 'border-red-500/50 aria-checked:bg-red-500/50 aria-checked:border-red-500/50': disabled,\n }\n : {\n 'border-grey-500 hover:border-grey-700 aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-700':\n !disabled,\n 'border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked:border-blue-500/50': disabled,\n }\n );\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { Orientation } from '../../types';\nimport { getRadioClassnames } from './util';\n\nexport type RadioGroupItemValue = string | number | boolean | null;\n\nexport const getRadioGroupItemValueAsString = (value: RadioGroupItemValue): string => String(value ?? '');\n\nexport const findByValue = (values: RadioGroupItemValue[], valueAsString: string): RadioGroupItemValue =>\n values.find(value => getRadioGroupItemValueAsString(value) === valueAsString) as RadioGroupItemValue;\n\nconst RadioGroupContext = React.createContext({ disabled: false, invalid: false });\n\nexport type RadioGroupItemProps<T = HTMLButtonElement> = Omit<\n React.ButtonHTMLAttributes<T>,\n 'children' | 'onSelect' | 'value'\n> & {\n /** Label for the radio group item */\n children: React.ReactNode;\n /* Whether the radio group item is disabled */\n disabled?: boolean;\n /** Value of the radio button */\n value: RadioGroupItemValue;\n};\n\nconst RadioGroupItem = React.forwardRef(function RadioGroupItem(props: RadioGroupItemProps, ref: React.Ref<HTMLButtonElement>) {\n const context = React.useContext(RadioGroupContext);\n const { children, value, ...otherProps } = props;\n\n const isDisabled = context.disabled || props.disabled;\n\n const className = cn('self-start', getRadioClassnames(isDisabled, context.invalid));\n const labelClassName = cn(\n 'flex items-center gap-2',\n {\n 'cursor-pointer': !isDisabled,\n 'cursor-not-allowed text-grey-300': isDisabled,\n },\n props.className\n );\n\n return (\n <label className={labelClassName}>\n <RadioGroupPrimitive.Item\n {...otherProps}\n className={className}\n disabled={isDisabled}\n ref={ref}\n value={getRadioGroupItemValueAsString(value)}>\n <RadioGroupPrimitive.Indicator className=\"h-2 w-2 rounded-full bg-white\" />\n </RadioGroupPrimitive.Item>\n {children}\n </label>\n );\n});\n\ntype ReactGroupBaseChild = React.ReactElement<RadioGroupItemProps> | boolean | null;\n\ntype RadioGroupBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n children: ReactGroupBaseChild[];\n /* Whether the radio group is disabled */\n disabled?: boolean;\n /* Whether the radio group is in an invalid state */\n invalid?: boolean;\n /** The name of the radio group, used when submitting an HTML form */\n name?: string;\n /**\n * Orientation of the radio group\n * @defaultValue vertical\n */\n orientation?: Orientation;\n /* Whether the radio group requires user input */\n required?: boolean;\n};\n\ninterface UncontrolledRadioGroupProps extends RadioGroupBaseProps {\n /* The default value (uncontrolled) */\n defaultValue?: RadioGroupItemValue;\n onChange?: never;\n value?: never;\n}\n\ninterface ControlledRadioGroupProps extends RadioGroupBaseProps {\n defaultValue?: never;\n /** Handler called when the value changes */\n onChange: (value: RadioGroupItemValue) => void;\n /** The current value (controlled) */\n value?: RadioGroupItemValue;\n}\n\nexport type RadioGroupProps = UncontrolledRadioGroupProps | ControlledRadioGroupProps;\n\nexport type ForwardedRadioGroupWithStatics = React.ForwardRefExoticComponent<\n RadioGroupProps & React.RefAttributes<HTMLDivElement>\n> & {\n /** Item component rendered in a `RadioGroup` component */\n Item: React.ForwardRefExoticComponent<RadioGroupItemProps>;\n};\n\nexport const useRadioGroup = (props: RadioGroupProps) => {\n const { children, defaultValue, disabled, invalid, onChange, orientation = 'vertical', value, ...otherProps } = props;\n\n const values = React.useMemo<RadioGroupItemValue[]>(() => {\n const radioGroupItemValues: RadioGroupItemValue[] = [];\n\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n radioGroupItemValues.push(child.props.value);\n }\n });\n\n return radioGroupItemValues;\n }, [children]);\n\n const context = React.useMemo(() => ({ disabled: disabled ?? false, invalid: invalid ?? false }), [disabled, invalid]);\n\n let valueProps;\n\n if (onChange !== undefined) {\n const handleChange = (value: string): void => onChange(findByValue(values, value));\n\n valueProps = {\n onValueChange: handleChange,\n value: value !== undefined ? getRadioGroupItemValueAsString(value) : undefined,\n };\n } else {\n valueProps = {\n defaultValue: defaultValue !== undefined ? getRadioGroupItemValueAsString(defaultValue) : undefined,\n };\n }\n\n return {\n context,\n props: {\n ...otherProps,\n ...valueProps,\n children,\n disabled,\n orientation,\n },\n };\n};\n\nexport const RadioGroup = React.forwardRef(function RadioGroup(props: RadioGroupProps, ref: React.Ref<HTMLDivElement>) {\n const { context, props: otherProps } = useRadioGroup(props);\n const className = cn(\n 'flex items-start gap-y-2',\n {\n 'flex-wrap gap-x-4 ': otherProps.orientation === 'horizontal',\n 'flex-col': otherProps.orientation === 'vertical',\n },\n otherProps.className\n );\n\n return (\n <RadioGroupContext.Provider value={context}>\n <RadioGroupPrimitive.Root {...otherProps} className={className} data-taco=\"radio-group\" ref={ref} />\n </RadioGroupContext.Provider>\n );\n}) as ForwardedRadioGroupWithStatics;\nRadioGroup.Item = RadioGroupItem;\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'clsx';\nimport { getRadioGroupItemValueAsString, RadioGroupItemProps, RadioGroupProps, useRadioGroup } from '../../RadioGroup/RadioGroup';\nimport { useItemStyling } from './Item';\n\nexport type MenuRadioGroupItemProps = RadioGroupItemProps<HTMLDivElement>;\n\nexport const RadioItem = (props: MenuRadioGroupItemProps) => {\n const context = React.useContext(MenuRadioGroupContext);\n const { children, value, ...otherProps } = props;\n const disabled = context.disabled || props.disabled;\n const className = useItemStyling({\n disabled: disabled,\n indented: true,\n className: props.className,\n });\n\n return (\n <DropdownMenuPrimitive.RadioItem\n {...otherProps}\n className={className}\n disabled={disabled}\n value={getRadioGroupItemValueAsString(value)}>\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\n <span className=\"ml-1 flex h-1.5 w-1.5 rounded-full bg-current \" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n};\n\nconst MenuRadioGroupContext = React.createContext({ disabled: false });\n\nexport type MenuRadioGroupProps = RadioGroupProps;\n\nexport type ForwardedMenuRadioGroupWithStatics = React.ForwardRefExoticComponent<\n MenuRadioGroupProps & React.RefAttributes<HTMLElement>\n> & {\n Item: React.FunctionComponent<MenuRadioGroupItemProps>;\n};\n\nexport const RadioGroup = React.forwardRef<HTMLDivElement, MenuRadioGroupProps>(function MenuRadioItem(props, ref) {\n const { context, props: otherProps } = useRadioGroup(props);\n const className = cn('flex flex-col', props.className);\n\n return (\n <MenuRadioGroupContext.Provider value={context}>\n <DropdownMenuPrimitive.RadioGroup {...otherProps} className={className} ref={ref} />\n </MenuRadioGroupContext.Provider>\n );\n}) as ForwardedMenuRadioGroupWithStatics;\nRadioGroup.Item = RadioItem;\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\n\nexport type MenuSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Separator = React.forwardRef(function Separator(props: MenuSeparatorProps, ref: React.Ref<HTMLDivElement>) {\n return <DropdownMenuPrimitive.Separator className=\"bg-grey-300 my-1 h-px\" {...props} ref={ref} />;\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'clsx';\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Header = React.forwardRef<HTMLDivElement, MenuHeaderProps>(function MenuHeader(props, ref) {\n const menu = useCurrentMenu();\n const className = cn(\n 'flex items-center justify-start h-7 pr-1.5 text-xs text-grey-700',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n },\n props.className\n );\n\n return <DropdownMenuPrimitive.Label {...props} className={className} ref={ref} />;\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'clsx';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\n\nexport type MenuSubMenuProps = Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps, 'children' | 'side'> & {\n children: React.ReactNode;\n};\n\nexport const SubMenu = React.forwardRef(function MenuSubMenu(props: MenuSubMenuProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const { children, ...otherProps } = props;\n const className = cn('border border-transparent rounded block outline-none p-1 yt-shadow wcag-white', props.className);\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n {...otherProps}\n className={className}\n data-taco=\"menu-submenu\"\n sideOffset={4}\n ref={internalRef}>\n {children}\n </DropdownMenuPrimitive.SubContent>\n </DropdownMenuPrimitive.Portal>\n );\n});\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { MenuContext } from './Context';\nimport { Content, MenuContentProps } from './components/Content';\nimport { Item, MenuItemProps } from './components/Item';\nimport { Link, MenuLinkItemProps } from './components/Link';\nimport { Trigger, MenuTriggerProps } from './components/Trigger';\nimport { Checkbox, MenuCheckboxItemProps } from './components/Checkbox';\nimport { ForwardedMenuRadioGroupWithStatics, RadioGroup } from './components/RadioGroup';\nimport { Separator, MenuSeparatorProps } from './components/Separator';\nimport { Header, MenuHeaderProps } from './components/Header';\nimport { SubMenu, MenuSubMenuProps } from './components/SubMenu';\n\nexport type MenuProps = {\n children: React.ReactNode;\n /** Set whether the menu is open by default or not */\n defaultOpen?: boolean;\n /** Called when the menu opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n /** Control the open state of the menu from outside the component */\n open?: boolean;\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\nexport type ForwardedMenuWithStatics = React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLElement>> & {\n Trigger: React.ForwardRefExoticComponent<MenuTriggerProps>;\n Content: React.ForwardRefExoticComponent<MenuContentProps>;\n Item: React.ForwardRefExoticComponent<MenuItemProps>;\n Link: React.ForwardRefExoticComponent<MenuLinkItemProps>;\n Checkbox: React.ForwardRefExoticComponent<MenuCheckboxItemProps>;\n Separator: React.ForwardRefExoticComponent<MenuSeparatorProps>;\n Header: React.ForwardRefExoticComponent<MenuHeaderProps>;\n RadioGroup: ForwardedMenuRadioGroupWithStatics;\n SubMenu: React.ForwardRefExoticComponent<MenuSubMenuProps>;\n};\n\nexport const Menu = React.forwardRef<HTMLButtonElement, MenuProps>(function Menu(externalProps, ref) {\n const { children, defaultOpen: defaultProp, onChange, open: prop, trigger, ...props } = externalProps;\n const [indented, setIndented] = React.useState(false);\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\n\n const [open, setOpen] = useControllableState<boolean>({\n // uncontrolled\n defaultProp,\n // controlled\n onChange,\n prop,\n });\n\n const context = React.useMemo(\n () => ({\n indented,\n registerIndentation: () => setIndented(true),\n minWidth,\n setMinWidth: (width: number) => setMinWidth(width),\n open: () => setOpen(true),\n close: () => setOpen(false),\n }),\n [indented, minWidth]\n );\n\n return (\n <MenuContext.Provider value={context}>\n <DropdownMenuPrimitive.Root {...props} modal={false} open={open} onOpenChange={setOpen}>\n {trigger && <Trigger ref={ref}>{trigger}</Trigger>}\n {children}\n </DropdownMenuPrimitive.Root>\n </MenuContext.Provider>\n );\n}) as ForwardedMenuWithStatics;\nMenu.Trigger = Trigger;\nMenu.Content = Content;\nMenu.Item = Item;\nMenu.Link = Link;\nMenu.Checkbox = Checkbox;\nMenu.Separator = Separator;\nMenu.Header = Header;\nMenu.RadioGroup = RadioGroup;\nMenu.SubMenu = SubMenu;\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PrimitiveSwitch from '@radix-ui/react-switch';\n\nimport { Icon } from '../Icon/Icon';\n\ntype ModeSwitchBaseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> & {\n /* Whether user input is required */\n required?: boolean;\n};\n\ninterface UncontrolledModeSwitchProps extends ModeSwitchBaseProps {\n checked?: never;\n onChange?: never;\n /* The default checked state (uncontrolled) */\n defaultChecked?: boolean;\n}\n\ninterface ControlledModeSwitchProps extends ModeSwitchBaseProps {\n defaultChecked?: never;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean) => void;\n}\n\nexport type ModeSwitchProps = UncontrolledModeSwitchProps | ControlledModeSwitchProps;\n\nexport const ModeSwitch = React.forwardRef(function ModeSwitch(props: ModeSwitchProps, ref: React.Ref<HTMLButtonElement>) {\n const { onChange, ...otherProps } = props;\n\n const className = cn(\n 'group w-14 h-8 flex flex-shrink-0 rounded-full inline-flex focus-visible:yt-focus p-1',\n {\n 'bg-grey-500 hover:bg-grey-700 aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700': !props.disabled,\n 'bg-grey-500 aria-checked:bg-blue-500 cursor-not-allowed opacity-50': props.disabled,\n },\n props.className\n );\n\n return (\n <PrimitiveSwitch.Root {...otherProps} className={className} data-taco=\"mode\" onCheckedChange={onChange} ref={ref}>\n <PrimitiveSwitch.Thumb className=\"'will-change-transform flex h-6 w-6 items-center justify-center rounded-full bg-white transition-transform group-disabled:opacity-50 group-aria-checked:translate-x-[100%]\">\n <Icon name=\"edit-simple\" className=\"!h-5 !w-5\" />\n </PrimitiveSwitch.Thumb>\n </PrimitiveSwitch.Root>\n );\n});\nModeSwitch.displayName = 'ModeSwitch';\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type TreeviewItemProps = React.LinkHTMLAttributes<HTMLAnchorElement>;\n\nconst TreeviewItem = React.forwardRef(function TreeviewItem(props: TreeviewItemProps, ref: React.Ref<HTMLAnchorElement>) {\n return <a {...props} ref={ref} />;\n});\n\nexport type TreeviewGroupProps = Omit<React.LinkHTMLAttributes<HTMLDivElement>, 'className' | 'onClick' | 'title'> & {\n /** Add a classname to the treeview */\n className?: string | ((expanded: boolean) => string);\n /**\n * Set wheter the region is expanded, showing the children, or collapsed.\n * Default value is `false`\n */\n expanded?: boolean;\n /** Region is expanded at mount and can't be collapsed */\n fixed?: boolean;\n /** Handler called when user clicks the title of the group */\n onClick?: (event: React.MouseEvent<HTMLDivElement>, expanded: boolean) => void;\n /** Text displayed in the group's header */\n title: React.ReactNode | ((expanded: boolean) => React.ReactNode);\n};\n\nconst TreeviewGroup = React.forwardRef(function TreeviewGroup(props: TreeviewGroupProps, ref: React.Ref<HTMLDivElement>) {\n const {\n children,\n className: externalClassName,\n expanded: initialExpanded = false,\n title,\n fixed,\n onClick,\n ...otherProps\n } = props;\n const [expanded, setExpanded] = React.useState(fixed || initialExpanded);\n\n React.useEffect(() => {\n if (!fixed) {\n setExpanded(fixed || initialExpanded);\n }\n }, [fixed, initialExpanded]);\n\n const listClassName = cn('flex-col mb-0', {\n flex: expanded,\n hidden: !expanded,\n });\n\n const itemProps = {\n ...otherProps,\n 'aria-expanded': expanded,\n role: 'treeitem',\n tabIndex: -1,\n };\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>): void => {\n const nextState = !expanded;\n\n if (!fixed) {\n setExpanded(nextState);\n }\n\n if (onClick) {\n onClick(event, nextState);\n }\n };\n\n const className = typeof externalClassName === 'function' ? externalClassName(expanded) : externalClassName;\n\n return (\n <div {...itemProps} className={className} ref={ref}>\n <div onClick={handleClick}>{typeof title === 'function' ? title(expanded) : title}</div>\n <ul role=\"group\" className={listClassName}>\n {React.Children.toArray(children)\n .filter(item => !!item)\n .map((item, i) => (\n <li key={i} role=\"none\">\n {React.cloneElement(item as React.ReactElement<any>, { role: 'treeitem' })}\n </li>\n ))}\n </ul>\n </div>\n );\n});\n\nexport type TreeviewProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport type ForwardedTreeviewWithStatics = React.ForwardRefExoticComponent<\n TreeviewProps & React.RefAttributes<HTMLDivElement>\n> & {\n /** Navigable link */\n Item: React.ForwardRefExoticComponent<TreeviewItemProps & React.RefAttributes<HTMLAnchorElement>>;\n /** Container for a set of related links, usually expandable */\n Group: React.ForwardRefExoticComponent<TreeviewGroupProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Treeview = React.forwardRef(function Treeview(props: TreeviewProps, ref: React.Ref<HTMLDivElement>) {\n return <div {...props} ref={ref} role=\"tree\" />;\n}) as ForwardedTreeviewWithStatics;\n\nTreeview.Group = TreeviewGroup;\nTreeview.Item = TreeviewItem;\n","import React from 'react';\n\nexport type useDropTarget = [\n boolean,\n (\n | undefined\n | {\n onDragEnter: React.DragEventHandler;\n onDragLeave: React.DragEventHandler;\n onDragOver: React.DragEventHandler;\n onDrop: React.DragEventHandler;\n }\n )\n];\n\nexport const useDropTarget = (onDrop: React.DragEventHandler | undefined): useDropTarget => {\n const [isDraggedOver, setDraggedOver] = React.useState(false);\n\n const handleDragEnter = React.useCallback((event: React.DragEvent<HTMLElement>) => {\n event.preventDefault();\n setDraggedOver(true);\n }, []);\n\n const handleDragLeave = React.useCallback((event: React.DragEvent<HTMLElement>) => {\n event.preventDefault();\n\n if (\n event.target === event.currentTarget ||\n (event.relatedTarget && !event.currentTarget.contains(event.relatedTarget as HTMLElement))\n ) {\n setDraggedOver(false);\n }\n }, []);\n\n const handleDragOver = React.useCallback((event: React.DragEvent<HTMLElement>) => {\n event.preventDefault();\n }, []);\n\n const handleDrop = React.useCallback(\n (event: React.DragEvent<HTMLElement>) => {\n event.preventDefault();\n event.persist();\n\n setDraggedOver(false);\n\n if (onDrop) {\n onDrop(event);\n }\n },\n [onDrop]\n );\n\n const props = onDrop\n ? {\n onDragEnter: handleDragEnter,\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n : undefined;\n\n return [isDraggedOver, props];\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { TreeviewProps, Treeview, TreeviewGroupProps, TreeviewItemProps } from '../Treeview/Treeview';\nimport { Icon } from '../Icon/Icon';\nimport { useDropTarget } from '../../utils/hooks/useDropTarget';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport './Navigation.css';\n\n// Item\nexport type NavigationItemProps = Omit<TreeviewItemProps, 'prefix'> & {\n /** Change the style to indicate the link is selected */\n active?: boolean;\n /** Handler to be used when dropping a dragged element over the navigation link */\n onDrop?: React.DragEventHandler;\n /**\n * Small amount of information placed next to the text of the link.\n * This can be any valid react element, for e.g. a `span`.\n * Should be used to indicate a relevant information of the link,\n * for e.g. the number of unread notifications\n */\n postfix?: React.ReactNode;\n /**\n * Small amount of information placed before the text of the link.\n * This can be any valid react element, for e.g. a `span`.\n * Should be used to indicate a feedback for user,\n * for e.g. display some sort of visual informational state or a relevant icon.\n */\n prefix?: React.ReactNode;\n /** Target of the link */\n target?: string;\n};\n\nconst Item = React.forwardRef(function Item(props: NavigationItemProps, ref: React.Ref<HTMLAnchorElement>) {\n const { active, children, onDrop, postfix, prefix, role, ...otherProps } = props;\n const proxyRef = useMergedRef<HTMLAnchorElement>(ref);\n const [isDraggedOver, dropTargetProps] = useDropTarget(onDrop);\n const isTreeitem = role === 'treeitem';\n const className = cn(\n 'yt-navigation__item cursor-pointer',\n {\n 'w-full mb-px py-1 px-3 flex items-center hover:bg-grey-300': isTreeitem,\n 'bg-white w-full h-10 px-3 flex-shrink-0 flex items-center justify-between cursor-pointer': !isTreeitem,\n 'yt-navigation__item--active': active && !isDraggedOver,\n 'bg-grey-300': isTreeitem && active && !isDraggedOver,\n 'yt-navigation__item--dropping bg-blue-500': isDraggedOver,\n },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLSpanElement>): void => {\n if (event.target instanceof HTMLAnchorElement || event.target instanceof HTMLButtonElement) {\n return;\n }\n\n if (proxyRef.current) {\n proxyRef.current.click();\n }\n };\n\n return (\n <span {...dropTargetProps} className={className} onClick={handleClick} role={role}>\n {prefix && <span className=\"yt-navigation__item__prefix flex items-center\">{prefix}</span>}\n <a {...otherProps} className=\"block flex-grow truncate\" ref={proxyRef}>\n {children}\n </a>\n {postfix && <span className=\"yt-navigation__item__postfix ml-1\">{postfix}</span>}\n </span>\n );\n});\n\n// Panel\nexport type NavigationPanelProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst Panel = React.forwardRef(function Panel(props: NavigationPanelProps, ref: React.Ref<HTMLDivElement>) {\n return <div {...props} className={cn('w-full bg-white p-3', props.className)} ref={ref} />;\n});\n\n// Group\nexport type NavigationMenuGroupProps = TreeviewGroupProps;\n\nconst MenuGroup = React.forwardRef(function MenuGroup(props: NavigationMenuGroupProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn(\n 'flex-shrink-0 space-y-1 outline-none',\n {\n 'bg-white pb-2': props.fixed,\n },\n typeof props.className === 'function' ? props.className(false) : props.className\n );\n const title = (expanded: boolean): JSX.Element => {\n const className = cn('bg-white h-10 pl-3 pr-1 flex items-center justify-between w-full', {\n 'mb-1': expanded,\n 'cursor-pointer hover:text-blue-500': !props.fixed,\n });\n\n return (\n <span className={className}>\n {typeof props.title === 'function' ? props.title(expanded) : props.title}\n {!props.fixed && <Icon name={expanded ? 'chevron-up' : 'chevron-down'} />}\n </span>\n );\n };\n\n return <Treeview.Group {...props} className={className} title={title} ref={ref} />;\n});\n\n// Menu\nexport type NavigationMenuProps = React.PropsWithChildren<TreeviewProps>;\n\nexport type ForwardedNavigationMenuWithStatics = React.ForwardRefExoticComponent<\n NavigationMenuProps & React.RefAttributes<HTMLDivElement>\n> & {\n /** Expandable region reprezenting a group of related links */\n Group: React.ForwardRefExoticComponent<NavigationMenuGroupProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nconst Menu = React.forwardRef(function Menu(props: NavigationMenuProps, ref: React.Ref<HTMLDivElement>) {\n const scrollableAreas = React.useMemo(() => {\n const scrollableAreas: React.ReactNode[] = [];\n\n const children = React.Children.toArray(props.children).filter(\n child => !!child\n ) as React.ReactElement<NavigationMenuGroupProps>[];\n\n children.forEach(child => {\n if (child.props.fixed) {\n scrollableAreas.push(child);\n } else {\n const x = scrollableAreas[scrollableAreas.length - 1];\n if (Array.isArray(x)) {\n x.push(child);\n } else {\n scrollableAreas.push([child]);\n }\n }\n });\n\n return scrollableAreas;\n }, [props.children]);\n\n return (\n <Treeview\n {...props}\n className={cn('divide-grey-100 flex flex-grow flex-col divide-y-2 overflow-y-auto', props.className)}\n ref={ref}>\n {scrollableAreas.map((area, i) =>\n Array.isArray(area) ? (\n <div\n className=\"divide-grey-100 flex h-0 flex-auto flex-shrink-0 flex-grow flex-col divide-y-2 overflow-y-auto\"\n key={i}>\n {area}\n </div>\n ) : (\n area\n )\n )}\n </Treeview>\n );\n}) as ForwardedNavigationMenuWithStatics;\n\nMenu.Group = MenuGroup;\n\n// Navigation\nexport type NavigationProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport type ForwardedNavigationWithStatics = React.ForwardRefExoticComponent<\n NavigationProps & React.RefAttributes<HTMLDivElement>\n> & {\n /** Navigation link */\n Item: React.ForwardRefExoticComponent<NavigationItemProps & React.RefAttributes<HTMLAnchorElement>>;\n /**\n * Container for the expandable groups that hold navigation links.\n * Should be used as a direct child of Navigation component, e.g. `Navigation.Menu`.\n * Should have the menu groups as a direct child, e.g. `Navigation.Menu.Group`\n */\n Menu: ForwardedNavigationMenuWithStatics;\n /**\n * Isolated container within the Navigation.\n * This can be used to create a region in the Navigation that is usually not scrollable, nor expandable,\n * containing useful information for user and quick actions\n */\n Panel: React.ForwardRefExoticComponent<NavigationPanelProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Navigation = React.forwardRef(function Navigation(props: NavigationProps, ref: React.Ref<HTMLDivElement>) {\n const { children, ...otherProps } = props;\n const className = cn('h-full flex flex-col bg-grey-100 divide-y-2 divide-grey-100', props.className);\n\n return (\n <div {...otherProps} className={className} data-taco=\"navigation\" ref={ref}>\n {children}\n </div>\n );\n}) as ForwardedNavigationWithStatics;\n\nNavigation.Menu = Menu;\nNavigation.Item = Item;\nNavigation.Panel = Panel;\n","import React from 'react';\n\nexport const useIntersectionObserver = (ref: React.RefObject<HTMLElement>, offset?: number) => {\n const [intersectedIndexes, setIntersectedIndexes] = React.useState({});\n\n const handleIntersection = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n if (observer.root) {\n const children = Array.from((observer.root as Element).children);\n const map = {};\n\n entries.forEach(entry => {\n // entries only contains the items being intersected not all children of the ref\n // so use root and the the entry being intersected to find its real index\n // on first mount this is different - all children are present\n map[children.indexOf(entry.target)] = entry.isIntersecting;\n });\n\n setIntersectedIndexes(prev => ({ ...prev, ...map }));\n }\n };\n\n const intersectedChildIndex = React.useMemo(() => {\n const index = Object.values(intersectedIndexes).indexOf(false);\n return index > -1 ? index : undefined;\n }, [intersectedIndexes]);\n\n const hasRootMargin = intersectedChildIndex !== undefined && offset;\n\n React.useEffect(() => {\n const observer = new IntersectionObserver(handleIntersection, {\n root: ref.current,\n // offset the button, but only after the first item has been intersected\n rootMargin: hasRootMargin ? `0px -${offset}px 0px 0px` : undefined,\n threshold: 1,\n });\n\n if (observer.root) {\n Array.from(observer.root.children).forEach(item => {\n if (!item.hasAttribute('data-observer-ignore')) {\n observer.observe(item);\n }\n });\n }\n\n return () => {\n observer.disconnect();\n };\n }, [hasRootMargin]);\n\n return intersectedChildIndex;\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { ButtonProps } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\nimport { useIntersectionObserver } from '../../hooks/useIntersectionObserver';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\n\nconst sanitizeButtonPropsForMenuItem = (button: any, index) => {\n const href: string | undefined = button.props.to || button.props.href;\n const Tag = href ? Menu.Link : Menu.Item;\n\n // Removing className prop so that custom styling cannot be applied on Menu.Link\n const {\n as,\n className: _,\n appearance: _1,\n drawer: _2,\n fluid: _3,\n hanger: _4,\n menu: _5,\n popover: _6,\n tooltip: _7,\n ...attributes\n } = button.props;\n\n const props = {\n ...attributes,\n key: index,\n target: href ? (href.startsWith('http') ? '_blank' : '_self') : undefined,\n };\n\n if (as) {\n return React.cloneElement(button, { as: Tag, ...props });\n }\n\n return <Tag {...props} />;\n};\n\ntype OverflowGroupProps = React.HTMLAttributes<HTMLElement> & {\n moreButton?: (moreButtonText: string) => React.ReactElement<ButtonProps>;\n};\n\nconst DEFAULT_OFFSET = 32 + 8;\n\nexport const OverflowGroup = React.forwardRef(function OverflowGroup(props: OverflowGroupProps, ref: React.Ref<HTMLDivElement>) {\n const { moreButton, ...attributes } = props;\n const internalRef = useMergedRef<HTMLDivElement>(ref);\n // determine width of more button, to add intersection observer margin\n const [buttonWidth, setButtonWidth] = React.useState(DEFAULT_OFFSET);\n const buttonRefCallback = React.useCallback((el: HTMLElement) => setButtonWidth(el?.getBoundingClientRect()?.width), []);\n const { texts } = useLocalization();\n\n const intersectedChildIndex = useIntersectionObserver(internalRef, buttonWidth);\n const children = React.Children.toArray(props.children) as React.ReactElement<ButtonProps>[];\n const hiddenChildren = intersectedChildIndex !== undefined ? children.slice(intersectedChildIndex) : [];\n const hiddenChildrenCount = hiddenChildren.length;\n const moreButtonText = hiddenChildrenCount ? `${hiddenChildrenCount} ${texts.header.more}` : '';\n\n const MoreButton = moreButton?.(moreButtonText) ?? <IconButton icon=\"more\" />;\n\n const className = cn('flex overflow-hidden', props.className);\n\n return (\n <div {...attributes} className={className} data-taco=\"overflow-group\" ref={internalRef}>\n {children.map((child, index) =>\n React.cloneElement(child, {\n className: cn(child.props.className, {\n visible: intersectedChildIndex === undefined || index < intersectedChildIndex,\n 'invisible order-[100] pointer-events-none':\n intersectedChildIndex !== undefined && index >= intersectedChildIndex,\n }),\n })\n )}\n {hiddenChildren.length\n ? React.cloneElement(MoreButton, {\n className: cn('sticky right-0 order-[99]', MoreButton.props.className),\n 'data-observer-ignore': true,\n menu: menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>{hiddenChildren.map(sanitizeButtonPropsForMenuItem)}</Menu.Content>\n </Menu>\n ),\n ref: buttonRefCallback,\n })\n : null}\n </div>\n );\n});\n","import * as React from 'react';\nimport { Button } from '../Button/Button';\nimport { useLocalization } from '../Provider/Localization';\n\ntype PageNumberProps = {\n currentPageIndex: number;\n onClick: (pageIndex: number) => void;\n pageCount: number;\n};\n\nconst createPageRange = (pageCount: number, pageNumber: number): number[] => {\n let lowerLimit = Math.min(pageNumber, pageCount);\n let upperLimit = Math.min(pageNumber, pageCount);\n\n for (let b = 1; b < 5 && b < pageCount; ) {\n if (lowerLimit > 1) {\n lowerLimit--;\n b++;\n }\n if (b < 5 && upperLimit < pageCount) {\n upperLimit++;\n b++;\n }\n }\n\n const range: number[] = [];\n\n for (let i = lowerLimit; i <= upperLimit; i++) {\n range.push(i);\n }\n\n return range;\n};\n\nexport const PageNumbers = ({ currentPageIndex = 0, onClick: handleClick, pageCount }: PageNumberProps): JSX.Element => {\n const range = createPageRange(pageCount, currentPageIndex + 1);\n const { texts } = useLocalization();\n\n return (\n <>\n {range.map((pageNumber: number) => (\n <Button\n appearance={pageNumber === currentPageIndex + 1 ? 'primary' : 'default'}\n aria-current={pageNumber === currentPageIndex + 1 ? 'page' : undefined}\n key={pageNumber}\n onClick={() => handleClick(pageNumber - 1)}\n aria-label={texts.pagination.actions.pageX.replace('[X]', String(pageNumber))}\n tooltip={texts.pagination.actions.pageX.replace('[X]', String(pageNumber))}>\n {pageNumber}\n </Button>\n ))}\n </>\n );\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { Icon } from '../Icon/Icon';\nimport { Listbox, MultiListbox, ListboxProps } from '../Listbox/Listbox';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useSelect } from './useSelect';\nimport { Combobox, ComboboxProps } from '../Combobox/Combobox';\nimport { Badge } from '../Badge/Badge';\nimport { getInputClasses } from '../Input/util';\n\nexport type SelectTexts = {\n /**\n * The text displayed when all options are selected when multiselect mode in on.\n */\n allOptionsSelected: string;\n};\n\nexport type BaseSelectProps = Omit<ListboxProps, 'dialog'> &\n Omit<ComboboxProps, 'inline'> & {\n /**\n * Allows to select multiple values.\n * All the selected values will be combined in a comma-seperated string as the value of the input.\n */\n multiselect?: boolean;\n };\n\nexport type SelectProps = BaseSelectProps & {\n /**\n * Creates an editable select.\n * Setting this will render a inline Combobox which will display the provided data on click/focus,\n * even if there is no value in the input.\n * After user starts typing, matching data will be displayed.\n */\n editable?: boolean;\n};\n\nconst BaseSelect = React.forwardRef(function BaseSelect(props: BaseSelectProps, ref: React.Ref<HTMLInputElement>) {\n const { autoFocus, className: externalClassName, highlighted, style, ...otherProps } = props;\n const { button, listbox, popover, input, text, more = 0 } = useSelect(otherProps, ref);\n const internalRef = React.useRef<HTMLButtonElement>(null);\n const selectDimensions = useBoundingClientRectListener(internalRef);\n const className = cn('inline-flex relative w-full', { 'yt-select--readonly': props.readOnly }, externalClassName);\n const inputClassname = cn(getInputClasses(props), 'h-8 text-left !pr-0', {\n 'border-blue-500': popover.open,\n 'select-text': otherProps.readOnly,\n });\n\n React.useEffect(() => {\n if (autoFocus && internalRef.current) {\n internalRef.current.focus();\n }\n }, []);\n\n const renderMultiSelection = (): React.ReactNode => {\n return (\n <>\n <span className=\"flex-grow truncate text-left\">{text}</span>\n {more > 0 && <Badge className=\"ml-2\">{`+${more}`}</Badge>}\n </>\n );\n };\n\n const commonListboxProps: ListboxProps = {\n ...listbox,\n className: 'w-auto',\n invalid: undefined,\n style: { minWidth: selectDimensions?.width },\n tabIndex: popover.open ? 0 : -1,\n };\n\n return (\n <span className={className} data-taco=\"select\" style={style}>\n <PopoverPrimitive.Root {...popover}>\n <PopoverPrimitive.Trigger {...button} className={inputClassname} ref={internalRef}>\n {props.multiselect ? renderMultiSelection() : <span className=\"flex-grow truncate text-left\">{text}</span>}\n <span className=\"flex h-8 w-8 items-center justify-center\">\n <Icon className=\"pointer-events-none\" name={popover.open ? 'chevron-up' : 'chevron-down'} />\n </span>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content align=\"start\" sideOffset={4}>\n {props.multiselect ? <MultiListbox {...commonListboxProps} /> : <Listbox {...commonListboxProps} />}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n <input {...input} className=\"hidden\" type=\"text\" />\n </PopoverPrimitive.Root>\n </span>\n );\n});\n\nexport const Select = React.forwardRef(function Select(props: SelectProps, ref: React.Ref<HTMLInputElement>) {\n const { editable, ...otherProps } = props;\n\n if (editable) {\n return <Combobox {...otherProps} dialog={undefined} inline ref={ref} />;\n }\n\n return <BaseSelect {...otherProps} ref={ref} />;\n});\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { v4 as uuid } from 'uuid';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { useLocalization } from '../Provider/Localization';\nimport { SelectProps } from './Select';\nimport { ListboxProps } from '../Listbox/Listbox';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { ScrollableListItemValue } from '../Listbox/ScrollableList';\nimport { createCustomEvent } from '../../utils/input';\n\ntype InternalButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\ntype InternalListboxProps = ListboxProps & { ref: React.ForwardedRef<HTMLInputElement> };\ntype InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.ForwardedRef<HTMLInputElement> };\n\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\n button: InternalButtonProps;\n listbox: InternalListboxProps;\n input: InternalInputProps;\n popover: Pick<PopoverPrimitive.PopoverProps, 'onOpenChange' | 'open'>;\n text: string | JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onBlur,\n onClick,\n onChange,\n readOnly,\n tabIndex,\n value,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const flattenedData = useFlattenedData(data);\n const listboxInputRef = useMergedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${uuid()}`, [nativeId]);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (value === undefined) {\n if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {\n setInputValueByRef(inputRef.current, defaultValue);\n } else {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0].value);\n }\n }\n } else {\n if (!multiselect && !findByValue(flattenedData, value)) {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0].value);\n }\n }\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.key) {\n case 'Escape': {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(listboxInputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case 'Tab':\n case 'Enter': {\n if (event.key !== 'Tab') {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n if (onBlur) {\n onBlur(createCustomEvent('blur'));\n }\n }\n };\n\n let text: string | JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(flattenedData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(flattenedData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, 'mr-1 -mt-px'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(flattenedData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (readOnly) {\n event.preventDefault();\n }\n };\n\n // select the value text if the select is readonly\n const handleButtonFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n };\n\n const button: InternalButtonProps = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n 'aria-readonly': readOnly ? 'true' : undefined,\n disabled: disabled,\n id: buttonId,\n onClick: handleButtonClick,\n onFocus: handleButtonFocus,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n tabIndex,\n type: 'button',\n };\n\n const listbox: InternalListboxProps = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onBlur,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(inputRef.current, event.target.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: listboxInputRef,\n value,\n };\n\n const input: InternalInputProps = {\n onChange: handleInputChange,\n ref: inputRef,\n value: String(value ?? ''),\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: open => {\n if (!open && onBlur) {\n onBlur(createCustomEvent('blur'));\n }\n setOpen(open);\n },\n },\n text,\n more,\n };\n};\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { PageNumbers } from './PageNumbers';\nimport { LocalizationTexts, useLocalization } from '../Provider/Localization';\nimport { Select } from '../Select/Select';\nimport { Group } from '../Group/Group';\nimport { IconButton } from '../IconButton/IconButton';\nimport { usePaginationValues } from './usePagination';\nimport { usePaginationShortcuts } from './usePaginationShortcuts';\n\nexport * from './usePagination';\n\nexport type PaginationTextsActions = {\n /**\n * Aria-label for first page action button.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n firstPage: string;\n /**\n * Aria-label for first page action button with shortcut.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n firstPageWithShortcut: string;\n /**\n * Aria-label for next page action button.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n nextPage: string;\n /**\n * Aria-label for next page action button with shortcut.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n nextPageWithShortcut: string;\n /**\n * Aria-label for previous page action button.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n previousPage: string;\n /**\n * Aria-label for previous page action button with shortcut.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n previousPageWithShortcut: string;\n /**\n * Aria-label for last page action button.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n lastPage: string;\n /**\n * Aria-label for last page action button with shortcut.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n lastPageWithShortcut: string;\n /**\n * Aria-label for page X action button.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n pageX: string;\n};\n\nexport type PaginationTexts = {\n /**\n * Aria-label provided for page numbers and page actions group.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n label: string;\n /**\n * Aria-label provided for page size selection.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n pageSize: string;\n /**\n * Text that indicates the number of the first and last element displayed on the current page, out of total items\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n showingXofYofTotal: string;\n /**\n * Aria-labels provided for page action buttons.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n actions: PaginationTextsActions;\n};\n\nexport type PaginationProps = React.HTMLAttributes<HTMLDivElement> &\n usePaginationValues & {\n /** Indicate total number of items that will be paginated */\n length: number;\n /** Page size options */\n pageSizes?: number[];\n /** Shows page controls */\n showPageControls?: boolean;\n /** Shows page numbers between navigation buttons, which allows users to quickly navigate to a specific page */\n showPageNumbers?: boolean;\n /** Shows a dropdown with page sizes, which allows user to change the number of items displayed on the page */\n showPageSize?: boolean;\n /** Enable pagination shortcuts */\n dangerouslyHijackGlobalKeyboardNavigation?: boolean;\n };\n\nconst getShowingLabel = (length: number, pageIndex: number, pageSize: number, texts: LocalizationTexts): string => {\n const minItemIndex = pageIndex * pageSize + 1;\n const maxItemIndex = (pageIndex + 1) * pageSize;\n\n return texts.pagination.showingXofYofTotal\n .replace('[X]', length === 0 ? '0' : String(minItemIndex))\n .replace('[Y]', String(maxItemIndex > length ? length : maxItemIndex))\n .replace('[total]', String(length));\n};\n\nexport const Pagination = React.forwardRef(function Pagination(props: PaginationProps, ref: React.Ref<HTMLDivElement>) {\n const {\n length,\n pageIndex,\n pageSize,\n pageSizes = [10, 25, 50, 100, 500],\n setPageIndex,\n setPageSize,\n showPageControls = true,\n showPageNumbers = true,\n showPageSize = true,\n dangerouslyHijackGlobalKeyboardNavigation = false,\n ...otherProps\n } = props;\n const { texts } = useLocalization();\n\n const maxPageIndex = Math.ceil(length / pageSize) - 1;\n const showShortcutTexts = dangerouslyHijackGlobalKeyboardNavigation;\n\n usePaginationShortcuts({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation,\n });\n\n const pageCount = Math.ceil(length / pageSize);\n const canPreviousPage = pageIndex > 0;\n const canNextPage = pageIndex < pageCount - 1;\n\n const className = cn('inline-flex relative justify-between items-center', props.className);\n\n return (\n <div {...otherProps} className={className} data-taco=\"pagination\" ref={ref}>\n {showPageSize && (\n <span className=\"mr-4\">\n {getShowingLabel(length, pageIndex, pageSize, texts)}\n <Select\n aria-label={texts.pagination.pageSize}\n className=\"ml-4 !w-20\"\n data={pageSizes.map(pageSize => ({\n text: String(pageSize),\n value: pageSize,\n }))}\n onChange={event => {\n setPageIndex(0);\n setPageSize(Number(event.target.value));\n }}\n value={pageSize}\n />\n </span>\n )}\n {showPageControls && (\n <Group as=\"nav\" aria-label={texts.pagination.label}>\n <IconButton\n appearance=\"default\"\n disabled={!canPreviousPage}\n icon=\"arrow-start\"\n onClick={() => setPageIndex(0)}\n aria-label={\n showShortcutTexts\n ? texts.pagination.actions.firstPageWithShortcut\n : texts.pagination.actions.firstPage\n }\n tooltip={\n showShortcutTexts\n ? texts.pagination.actions.firstPageWithShortcut\n : texts.pagination.actions.firstPage\n }\n />\n <IconButton\n appearance=\"default\"\n disabled={!canPreviousPage}\n icon=\"arrow-left\"\n onClick={() => setPageIndex(pageIndex - 1)}\n aria-label={\n showShortcutTexts\n ? texts.pagination.actions.previousPageWithShortcut\n : texts.pagination.actions.previousPage\n }\n tooltip={\n showShortcutTexts\n ? texts.pagination.actions.previousPageWithShortcut\n : texts.pagination.actions.previousPage\n }\n />\n {showPageNumbers && pageCount > 0 && (\n <PageNumbers pageCount={pageCount} currentPageIndex={pageIndex} onClick={setPageIndex} />\n )}\n <IconButton\n appearance=\"default\"\n disabled={!canNextPage}\n icon=\"arrow-right\"\n onClick={() => setPageIndex(pageIndex + 1)}\n aria-label={\n showShortcutTexts ? texts.pagination.actions.nextPageWithShortcut : texts.pagination.actions.nextPage\n }\n tooltip={\n showShortcutTexts ? texts.pagination.actions.nextPageWithShortcut : texts.pagination.actions.nextPage\n }\n />\n <IconButton\n appearance=\"default\"\n disabled={!canNextPage}\n icon=\"arrow-end\"\n onClick={() => setPageIndex(pageCount - 1)}\n aria-label={\n showShortcutTexts ? texts.pagination.actions.lastPageWithShortcut : texts.pagination.actions.lastPage\n }\n tooltip={\n showShortcutTexts ? texts.pagination.actions.lastPageWithShortcut : texts.pagination.actions.lastPage\n }\n />\n </Group>\n )}\n </div>\n );\n});\n","import React from 'react';\n\ninterface Props {\n setPageIndex: (pageIndex: number) => void;\n maxPageIndex: number;\n pageIndex: number;\n dangerouslyHijackGlobalKeyboardNavigation: boolean;\n}\n\nexport const usePaginationShortcuts = ({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation: useGlobalKeyboardNavigation,\n}: Props) => {\n const onKeyDown = (event: KeyboardEvent): void => {\n if (setPageIndex && event.key === 'Home') {\n event.preventDefault();\n setPageIndex(0);\n return;\n }\n\n if (setPageIndex && event.key === 'End') {\n event.preventDefault();\n setPageIndex(maxPageIndex);\n return;\n }\n\n if (setPageIndex && event.key === 'PageUp') {\n event.preventDefault();\n setPageIndex(Math.max(0, pageIndex - 1));\n return;\n }\n\n if (setPageIndex && event.key === 'PageDown') {\n event.preventDefault();\n setPageIndex(Math.min(maxPageIndex, pageIndex + 1));\n return;\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, useGlobalKeyboardNavigation]);\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { motion, useAnimation } from 'framer-motion';\nimport useTimer from '../../utils/hooks/useTimer';\nimport { getBadgeIcon, getToastEmptyContentWarning } 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 print:hidden', {\n 'border border-grey-200': type === 'default' || type === 'loading' || !type,\n 'border border-grey-500': type === 'success',\n 'border border-blue-500': type === 'information',\n 'border border-yellow-700': 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(getToastEmptyContentWarning(content));\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-700 -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","import React from 'react';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastContent, ToastType } from './Toast';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBadgeIcon = (type: ToastType): JSX.Element | null => {\n return (\n <div className=\"mr-2 mt-[5px] flex-shrink-0 self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n case 'loading':\n return <Spinner delay={0} className=\"h-5 w-5\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n\nexport const getToastEmptyContentWarning = (content?: ToastContent) =>\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","import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { Portal } from '@radix-ui/react-portal';\n\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 <Portal>\n <div\n id=\"yt-toast__container\"\n className=\"pointer-events-all absolute !left-auto bottom-0 right-0 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 </Portal>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\n","import * as React from 'react';\nimport * as Tooltip from '@radix-ui/react-tooltip';\nimport { ToastProvider } from '../Toast/Toaster';\nimport { Localization, LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n","import React from 'react';\nimport { AVAILABLE_COLORS } from './utils/tailwind';\n\nexport type Appearance = 'default' | 'primary' | 'danger' | 'ghost' | 'discrete' | 'transparent';\nexport type State = 'default' | 'success' | 'error' | 'warning' | 'information';\nexport type Locale = 'en-GB' | 'da-DK' | 'sv-SE' | 'no-NO';\nexport type Orientation = 'horizontal' | 'vertical';\nexport type Align = 'start' | 'center' | 'end';\nexport type Placement = 'right' | 'left' | 'top' | 'bottom';\nexport type Color = (typeof AVAILABLE_COLORS)[number];\n\nexport enum FontSizes {\n small = 'small',\n medium = 'medium',\n large = 'large',\n}\nexport type FontSize = keyof typeof FontSizes;\n\n// helpers\ntype FixedForwardRef = <T, P = {}>(\n render: (props: P, ref: React.Ref<T>) => JSX.Element\n) => (props: P & React.RefAttributes<T>) => JSX.Element;\n\nexport const fixedForwardRef = React.forwardRef as FixedForwardRef;\n\nexport type ValueOf<T> = T[keyof T];\n\nexport type StringWithAutocompleteOptions<T> = T | (string & {});\n","import { ColumnDef as ReactTableColumnDef, GroupColumnDef as ReactTableGroupColumnDef } from '@tanstack/react-table';\nimport { isDate } from 'date-fns';\nimport { FontSize, FontSizes } from '../../../../types';\nimport { format, parseFromISOString } from '../../../../utils/date';\nimport { TableColumnDataType } from '../../types';\n\nexport function isInternalColumn(id: string | undefined) {\n return id?.startsWith('__');\n}\n\n// column widths\nexport const getCellMinWidth = (fontSize: FontSize = 'medium') => {\n switch (fontSize) {\n case FontSizes.small:\n return 57;\n\n case FontSizes.large:\n return 83;\n\n default:\n case FontSizes.medium:\n return 72;\n }\n};\n\n// highlighting\nexport function isCellHighlighted(query: string, value: unknown, dataType?: TableColumnDataType) {\n if (value === undefined || value === null) {\n return false;\n }\n\n return String(getCellValueAsString(value, dataType)).toLocaleLowerCase().includes(query.toLocaleLowerCase());\n}\n\nexport function getCellValueAsString(value: unknown, dataType?: TableColumnDataType): string {\n if (value === undefined || value === null) {\n return '';\n } else if (isDate(value)) {\n return format(value as Date) ?? '';\n } else if (dataType === 'datetime' && typeof value === 'string') {\n return format(parseFromISOString(value as string)) ?? '';\n }\n\n return String(value);\n}\n\nfunction orderColumn<TType = unknown>(\n column: ReactTableColumnDef<TType>,\n { orderingDisabled, orderingEnabled }: { orderingDisabled: string[]; orderingEnabled: string[] }\n) {\n const groupedColumn = column as ReactTableGroupColumnDef<TType>;\n\n if (Array.isArray(groupedColumn.columns) && groupedColumn.columns.length > 0) {\n groupedColumn.columns.forEach((subcolumn: ReactTableColumnDef<TType>) =>\n orderColumn(subcolumn, { orderingDisabled, orderingEnabled })\n );\n } else {\n if (column.meta?.enableOrdering) {\n orderingEnabled.push(column.id as string);\n } else {\n orderingDisabled.push(column.id as string);\n }\n }\n}\n\n// ordering\nexport function ensureOrdering<TType = unknown>(\n columns: ReactTableColumnDef<TType>[],\n settingsOrder: string[] | undefined,\n pinnedOrder: string[] | undefined = [],\n internalColumnsPinnedToTheRight: string[] = ['__actions']\n): string[] {\n // internal columns come with a defined order\n const internalColumns = columns\n .filter(column => isInternalColumn(column.id) && !internalColumnsPinnedToTheRight.includes(String(column.id)))\n .map(column => column.id) as string[];\n\n // columns with ordering disabled should be moved to the front\n const orderingDisabled: string[] = [];\n let orderingEnabled: string[] = [];\n\n let orderedColumns = columns;\n\n // if settings is defined, make sure the columns that are actual children are sorted by it\n if (Array.isArray(settingsOrder)) {\n orderedColumns = columns.slice().sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (settingsOrder.indexOf(a.id as string) >>> 0) - (settingsOrder.indexOf(b.id as string) >>> 0)\n );\n }\n\n orderedColumns.forEach(column => {\n if (isInternalColumn(column.id)) {\n return;\n }\n\n orderColumn(column, { orderingDisabled, orderingEnabled });\n });\n\n if (settingsOrder && settingsOrder.length > 0) {\n const columnsAbsentInSettingsOrder: string[] = [];\n\n orderingEnabled = orderingEnabled\n .reduce((acc, column) => {\n const index = settingsOrder.indexOf(column);\n if (index > -1) {\n acc[index] = column;\n } else {\n columnsAbsentInSettingsOrder.push(column);\n }\n\n return acc;\n }, [] as string[])\n .filter(column => !!column)\n // Append absent columns at the end\n .concat(columnsAbsentInSettingsOrder);\n }\n\n // if pinned columns are defined, make sure they are sorted first, this ensures state matches the freezing \"upto\" behaviour\n if (Array.isArray(pinnedOrder)) {\n orderingEnabled.sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (pinnedOrder.indexOf(a as string) >>> 0) - (pinnedOrder.indexOf(b as string) >>> 0)\n );\n }\n\n const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];\n\n // actions should always be last, enforce that\n internalColumnsPinnedToTheRight.forEach(id => {\n if (columns.findIndex(column => column.id === id) > -1) {\n order.push(id);\n }\n });\n\n return order;\n}\n\n// freezing - we use the react-table pinning state, but that requires some mapping between them\nexport function unfreezeAllExternalColumns(leftPinnedState?: string[]): string[] {\n return leftPinnedState?.filter(id => isInternalColumn(id) && id !== '__actions') ?? [];\n}\n\nexport function freezeUptoExternalColumn(index: number, columns: string[]): string[] {\n return columns.slice(0, index + 1);\n}\n","import {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { FontSize, FontSizes, StringWithAutocompleteOptions, ValueOf } from '../../types';\nimport { MenuItemProps } from '../../components/Menu/components/Item';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsEmpty,\n IsNotEmpty,\n IsLessThanOrEqualTo,\n IsGreaterThanOrEqualTo,\n HasAnyOf,\n HasAllOf,\n HasNoneOf,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType = 'auto' | 'number' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRenderer<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererAggregate<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement> | ((instance: HTMLElement | null | undefined) => void);\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | ReactTableBuiltInSortingFn\n | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (row: TType, internalRowId: string) => JSX.Element | null;\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableFilterHandler = (filters: TableColumnFilter[]) => void | Promise<void>;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableSearchHandler = (search: string | undefined) => void | Promise<void>;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[]\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (sorting: TableColumnSort[], filters: TableColumnFilter[]) => Promise<void>;\nexport enum TableServerLoadAllState {\n Incomplete,\n Loading,\n Completed,\n}\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableSortHandler = (sorting: TableColumnSort[]) => void | Promise<void>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => JSX.Element | null;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowSelection?: boolean;\n enableRowSelectionSingle?: boolean;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: boolean | ((row: TType) => boolean);\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n};\n\nexport type TableCommonProps<TType = unknown> = TableFeatureProps<TType> & {\n children: (JSX.Element | boolean | null | undefined)[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n rowIdentityColumnId?: string;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n toolbarPanel?: JSX.Element;\n\n // handlers\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n};\n\nexport interface TableClientProps<TType = unknown> extends TableCommonProps<TType> {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n}\n\nexport interface TableServerProps<TType = unknown> extends TableCommonProps<TType> {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n}\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnProps<TType = unknown> = ValueOf<{\n [Key in keyof TType]: {\n accessor?: Key;\n id: StringWithAutocompleteOptions<Key>;\n // renderers\n renderer?: TableColumnRenderer<TType, TType[Key]>;\n /** Renderer to use if the cell is an aggregate cell and part of a grouped row */\n aggregate?: TableColumnRendererAggregate<TType, TType[Key]>;\n control?: TableColumnRendererControl<TType>;\n footer?: TableColumnRendererFooter<TType>;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n}>;\n\nexport type TableGroupProps = {\n children: (JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n","import { Row as ReactTableRow } from '@tanstack/react-table';\nimport { isDate, isAfter as isAfterDate, isBefore as isBeforeDate, isEqual as isEqualDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../../utils/date';\nimport { TableFilterValue, TableFilterComparator } from '../../types';\nimport { getCellValueAsString } from './columns';\n\nexport const toLowerCase = (value: string | number) => String(value ?? '').toLocaleLowerCase();\nexport const isWeakContains = (left: string | number, right: string | number) => toLowerCase(left).includes(toLowerCase(right));\nexport const isWeakEqual = (left: string | number, right: string | number) => toLowerCase(left) === toLowerCase(right);\n\n// the filter type is only settable on the column definition, which would re-render all columns.\n// so instead we store it in the filter value, but that means we also have to destructure that\n// before we filter - that's why this custom filter function exists\nexport function columnFilterFn(value: any, filter: TableFilterValue) {\n try {\n if (filter.comparator === TableFilterComparator.IsEmpty || filter.comparator === TableFilterComparator.IsNotEmpty) {\n const isEmpty = value === undefined || value === null || value === '';\n return filter.comparator === TableFilterComparator.IsEmpty ? isEmpty : !isEmpty;\n }\n\n if (filter.value === undefined || filter.value === null || filter.value === '') {\n return true;\n }\n\n switch (filter.comparator) {\n case TableFilterComparator.Contains:\n return isWeakContains(value, filter.value);\n\n case TableFilterComparator.DoesNotContain:\n return !isWeakContains(value, filter.value);\n\n case TableFilterComparator.IsEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value);\n } else if (typeof filter.value === 'boolean') {\n return value === filter.value;\n }\n\n return isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsNotEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value) === false;\n } else if (typeof filter.value === 'boolean') {\n return value !== filter.value;\n }\n\n return !isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsGreaterThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isAfterDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isBeforeDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isBeforeDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber <= filter.value;\n }\n }\n\n case TableFilterComparator.IsGreaterThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isAfterDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber >= filter.value;\n }\n }\n\n case TableFilterComparator.IsBetween: {\n const [fromValue, toValue] = filter.value;\n\n if (isDate(value)) {\n if (isDate(fromValue) && isBeforeDate(value, fromValue)) {\n return false;\n } else if (isDate(toValue) && isAfterDate(value, toValue)) {\n return false;\n }\n\n return true;\n } else {\n const valueAsNumber = parseInt(value);\n\n if (isNaN(valueAsNumber)) {\n return false;\n }\n\n if (fromValue !== undefined && valueAsNumber < fromValue) {\n return false;\n } else if (toValue !== undefined && valueAsNumber > toValue) {\n return false;\n }\n\n return true;\n }\n }\n\n case TableFilterComparator.HasAnyOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.some(item => value.includes(item))\n : false;\n\n case TableFilterComparator.HasNoneOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.every(item => value.includes(item) === false)\n : false;\n\n case TableFilterComparator.HasAllOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.filter(v => value.includes(v)).length === filter.value.length\n : false;\n }\n\n return false;\n } catch (e) {\n console.error(e);\n return true;\n }\n}\n\nexport function globalFilterFn<TType = unknown>(row: ReactTableRow<TType>, columnId: string, searchQuery: string) {\n try {\n if (row.original) {\n const dataType = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta?.dataType;\n const cellValue = getCellValueAsString(row.original[columnId], dataType);\n return isWeakContains(cellValue, searchQuery);\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n","import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isInternalColumn } from './columns';\n\nexport function getSettings<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n return {\n // commented out properties are here to highlight things we explicitly don't want them saved\n //columnFilters: table.options.enableColumnFilters ? state.columnFilters : undefined,\n columnOrder: meta.columnOrdering.isEnabled ? state.columnOrder : undefined,\n columnPinning: state.columnPinning,\n columnSizing: ignoreInternalColumns(state.columnSizing),\n columnVisibility: table.options.enableHiding ? state.columnVisibility : undefined,\n excludeUnmatchedRecordsInSearch: table.options.enableGlobalFilter,\n fontSize: meta.fontSize.isEnabled ? meta.fontSize.size : undefined,\n //grouping: table.options.enableGrouping ? state.grouping : undefined,\n rowHeight: meta.rowHeight.isEnabled ? meta.rowHeight.height : undefined,\n //searchQuery: table.options.enableGlobalFilter ? state.globalFilter : undefined,\n sorting: state.sorting,\n };\n}\n\nexport function ignoreInternalColumns(data: object) {\n return Object.keys(data).reduce((accum, key) => {\n if (isInternalColumn(key)) {\n return accum;\n }\n\n return {\n ...accum,\n [key]: data[key],\n };\n }, {});\n}\n","import React from 'react';\nimport {\n createColumnHelper,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getSortedRowModel,\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\n\nimport { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\nimport { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { getSortingFn } from './sorting';\nimport { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, unfreezeAllExternalColumns } from './columns';\nimport { columnFilterFn, globalFilterFn } from './filtering';\nimport { ignoreInternalColumns } from './settings';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactChild | React.ReactFragment | React.ReactPortal,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId?: keyof TType\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey = untypedId,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = getCellMinWidth(settings.fontSize),\n sort,\n sortFn,\n ...meta\n } = child.props;\n const id = untypedId as string;\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n accessorKey,\n // To avoid errors caused by undefined row data values, we pass accessorFn as a preventive measure\n // accessorKey can be dot notated strings, so we use lodash.get to access deeply nested children\n accessorFn: row => get(row, accessorKey),\n header: header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n header,\n renderer,\n },\n };\n\n // renderers\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original !== undefined ? row.original : [])));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(info.getValue(), info.row.original);\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if ((options.enableRowSelection || options.enableRowSelectionSingle) && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && props.rowActions?.length && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(options: TableFeatureProps<TType>, props: TableProps<TType>) {\n const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n enableGrouping: true, // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n enableRowSelection: enableRowSelection ?? false,\n enableMultiRowSelection: options.enableRowSelectionSingle === true ? false : enableRowSelection,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n groupedColumnMode: false,\n };\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) =>\n columnFilterFn(row.getValue(columnId), filter),\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = globalFilterFn;\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) => column.columnDef.meta?.enableSearch ?? true;\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n columnPinning.left = freezeUptoExternalColumn(\n columnOrder.indexOf(columnPinning.left[columnPinning.left.length - 1]),\n columnOrder\n );\n } else {\n if (props.defaultColumnFreezingIndex) {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n } else {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n }\n }\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(\n persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {}\n ),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : props.defaultSettings?.sorting ?? defaults.defaultSorting,\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n","import { TableFeatureProps, TablePreset, TableProps } from '../../types';\n\nconst DEFAULT_PRESET: TableFeatureProps = {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: false,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: false,\n enableRowSelection: false,\n enableRowSelectionSingle: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: false,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: false,\n};\n\nconst presets: Record<TablePreset, TableFeatureProps> = {\n // View/edit/create on page\n complex: {\n // react-table built-in\n enableFiltering: true,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: true,\n enableColumnHiding: true,\n enableColumnResizing: true,\n enableRowExpansion: true,\n enableRowSelection: true,\n enableRowSelectionSingle: false,\n\n // custom -- common between all table types\n enableColumnOrdering: true,\n enableFontSize: true,\n enableFooter: true,\n enablePrinting: true,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: true,\n enableRowDrop: true,\n enableRowGoto: true,\n enableRowHeight: true,\n enableSaveSettings: true,\n },\n // View/create in dialog\n list: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: true,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowSelection: true,\n enableRowSelectionSingle: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: true,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n },\n // View in card or dialog\n simple: {\n // react-table built-in\n enableFiltering: false,\n enableSearch: false,\n enableSorting: true,\n enableColumnFreezing: false,\n enableColumnHiding: false,\n enableColumnResizing: false,\n enableRowExpansion: true,\n enableRowSelection: false,\n enableRowSelectionSingle: false,\n\n // custom -- common between all table types\n enableColumnOrdering: false,\n enableFontSize: false,\n enableFooter: false,\n enablePrinting: false,\n enableRowActive: true,\n enableRowActions: false,\n enableRowClick: true,\n enableRowDrag: false,\n enableRowDrop: false,\n enableRowGoto: false,\n enableRowHeight: false,\n enableSaveSettings: true,\n },\n};\n\nexport function getTableFeaturePreset<TType = unknown>(props: TableProps<TType>): TableFeatureProps<TType> {\n const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;\n\n const enableRowActions = props.enableRowActions ?? presetOptions.enableRowActions;\n const enableRowClick = props.enableRowClick ?? presetOptions.enableRowClick;\n const enableRowDrag = props.enableRowDrag ?? presetOptions.enableRowDrag;\n const enableRowDrop = props.enableRowDrop ?? presetOptions.enableRowDrop;\n const enableRowGoto = props.enableRowGoto ?? presetOptions.enableRowGoto;\n const enableRowExpansion = props.enableRowExpansion ?? presetOptions.enableRowExpansion;\n const enableRowSelection = props.enableRowSelection ?? presetOptions.enableRowSelection;\n const enableRowSelectionSingle = props.enableRowSelectionSingle ?? presetOptions.enableRowSelectionSingle;\n\n return {\n // react-table built-in\n enableFiltering: props.enableFiltering ?? presetOptions.enableFiltering,\n enableSearch: props.enableSearch ?? presetOptions.enableSearch,\n enableSorting: props.enableSorting ?? presetOptions.enableSorting,\n enableColumnFreezing: props.enableColumnFreezing ?? presetOptions.enableColumnFreezing,\n enableColumnHiding: props.enableColumnHiding ?? presetOptions.enableColumnHiding,\n enableColumnResizing: props.enableColumnResizing ?? presetOptions.enableColumnResizing,\n enableRowExpansion: enableRowExpansion && !!props.rowExpansionRenderer,\n enableRowSelection: enableRowSelection && !!props.onRowSelect,\n enableRowSelectionSingle: enableRowSelectionSingle && !!props.onRowSelect,\n\n // custom -- common between all table types\n enableColumnOrdering: props.enableColumnOrdering ?? presetOptions.enableColumnOrdering,\n enableFontSize: props.enableFontSize ?? presetOptions.enableFontSize,\n enableFooter: props.enableFooter ?? presetOptions.enableFooter,\n enablePrinting: props.enablePrinting ?? presetOptions.enablePrinting,\n enableRowActive: props.enableRowActive ?? presetOptions.enableRowActive,\n enableRowActions: enableRowActions && !!props.rowActions?.length,\n // enableRowClick can be either function or boolean, that is why we need to pass exactly enableRowClick,\n // and not just result of the condition\n enableRowClick: enableRowClick && !!props.onRowClick ? enableRowClick : false,\n enableRowDrag: enableRowDrag && !!props.onRowDrag,\n enableRowDrop: enableRowDrop && !!props.onRowDrop,\n enableRowGoto: enableRowGoto && !!props.onRowGoto,\n enableRowHeight: props.enableRowHeight ?? presetOptions.enableRowHeight,\n enableSaveSettings: props.enableSaveSettings ?? presetOptions.enableSaveSettings,\n };\n}\n","import React from 'react';\nimport { TacoContext } from '../components/Provider/Provider';\n\nexport function useTacoSettings() {\n return React.useContext(TacoContext);\n}\n","import React from 'react';\n\nexport const useLocalStorage = <TType>(\n key?: string,\n initialValue?: TType\n): [TType, React.Dispatch<React.SetStateAction<TType>>, () => void] => {\n const [state, setState] = React.useState<TType>(() => {\n if (!key) {\n return initialValue;\n }\n\n try {\n const localStorageValue = localStorage.getItem(key);\n\n if (typeof localStorageValue !== 'string') {\n localStorage.setItem(key, JSON.stringify(initialValue));\n return initialValue;\n } else {\n return JSON.parse(localStorageValue || 'null');\n }\n } catch {\n // If user is in private mode or has storage restriction\n // localStorage can throw. JSON.parse and JSON.stringify\n // can throw, too.\n return initialValue;\n }\n });\n\n React.useEffect(() => {\n if (!key) {\n return;\n }\n\n try {\n const serializedState = JSON.stringify(state);\n localStorage.setItem(key, serializedState);\n } catch {\n // If user is in private mode or has storage restriction\n // localStorage can throw. Also JSON.stringify can throw.\n }\n }, [key, state]);\n\n const clear = () => {\n if (key) {\n localStorage.removeItem(key);\n }\n };\n\n return [state, setState, clear];\n};\n","import React from 'react';\nimport { useTacoSettings } from '../../../../hooks/useTacoSettings';\nimport { useLocalStorage } from '../../../../hooks/useLocalStorage';\n\ntype TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\n\nexport function useTablePrinting(isEnabled = false, tableId: string) {\n const [isPrinting, setIsPrinting] = React.useState(false);\n const [settings, setSetting] = useTablePrintingSettings(tableId);\n\n return {\n isEnabled,\n isPrinting,\n setIsPrinting,\n settings,\n setSetting,\n };\n}\n\nconst DEFAULT_PRINT_SETTINGS: TablePrintSettings = {\n size: 'A4',\n orientation: 'portrait',\n allRows: true,\n splitGroups: true,\n};\n\nfunction useTablePrintingSettings(tableId: string): [TablePrintSettings, (key: keyof TablePrintSettings, value: any) => void] {\n const tacoSettings = useTacoSettings();\n const uniqueId = `taco.${tacoSettings.uniqueUserIdentifier}.table.${tableId}.print.settings`;\n\n const [persistedSettings, setPersistedSettings] = useLocalStorage<TablePrintSettings>(uniqueId, DEFAULT_PRINT_SETTINGS);\n\n function setSetting(key: keyof TablePrintSettings, value: any) {\n setPersistedSettings(currentSettings => ({\n ...currentSettings,\n [key]: value,\n }));\n }\n\n return [persistedSettings, setSetting];\n}\n","import React from 'react';\n\nexport const useIsHoverStatePaused = (): [boolean, React.Dispatch<React.SetStateAction<boolean>>] => {\n const [shouldPauseHoverState, setShouldPauseHoverState] = React.useState<boolean>(false);\n\n // as soon as the mouse starts moving again, unpause hover state\n React.useEffect(() => {\n const move = () => setShouldPauseHoverState(false);\n\n if (shouldPauseHoverState) {\n document.addEventListener('mousemove', move);\n }\n\n return () => {\n document.removeEventListener('mousemove', move);\n };\n }, [shouldPauseHoverState]);\n\n return [shouldPauseHoverState, setShouldPauseHoverState];\n};\n","import React from 'react';\nimport { TableScrollToIndexHandler } from '../../types';\nimport { useIsHoverStatePaused } from '../../../../hooks/useIsHoverStatePaused';\nimport { isElementInsideOrTriggeredFromContainer } from '../../../../utils/dom';\n\nexport function useTableRowActive(isEnabled = false, initialRowActiveIndex?: number) {\n const [rowActiveIndex, setRowActiveIndex] = React.useState<number | undefined>(initialRowActiveIndex);\n const [rowHoverIndex, setRowHoverIndex] = React.useState<number | undefined>(undefined);\n const [isHoverStatePaused, setHoverStatePaused] = useIsHoverStatePaused();\n\n const move = (direction: -1 | 1, length: number, scrollToIndex: TableScrollToIndexHandler) => {\n const nextIndex = rowActiveIndex !== undefined ? getNextIndex(direction, rowActiveIndex, length) : 0;\n scrollToIndex(nextIndex);\n setTimeout(() => setRowActiveIndex(nextIndex), 50);\n };\n\n const onKeyDown = React.useCallback(\n (event: KeyboardEvent, length: number, scrollToIndex: TableScrollToIndexHandler) => {\n if (!isEnabled || event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n setHoverStatePaused(true);\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n const newIndex = 0;\n scrollToIndex(newIndex);\n setRowActiveIndex(newIndex);\n } else {\n move(-1, length, scrollToIndex);\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n const newIndex = length - 1;\n scrollToIndex(newIndex);\n setRowActiveIndex(newIndex);\n } else {\n move(+1, length, scrollToIndex);\n }\n return;\n }\n },\n [isEnabled, rowActiveIndex]\n );\n\n const onFocus = React.useCallback(\n (event: React.FocusEvent, length: number, scrollToIndex: TableScrollToIndexHandler) => {\n if (!isEnabled || event.isDefaultPrevented()) {\n return;\n }\n\n if (event.target.closest('tbody') || isElementInsideOrTriggeredFromContainer(event.target, event.currentTarget)) {\n return;\n }\n\n if (rowActiveIndex === undefined && length > 0) {\n setRowActiveIndex(index => {\n if (index === undefined) {\n scrollToIndex(0);\n return 0;\n }\n return index;\n });\n }\n },\n [rowActiveIndex, length, isEnabled]\n );\n\n return {\n isEnabled,\n rowActiveIndex,\n setRowActiveIndex: isEnabled ? setRowActiveIndex : () => undefined,\n rowHoverIndex,\n setRowHoverIndex,\n isHoverStatePaused,\n setHoverStatePaused: isEnabled ? setHoverStatePaused : () => undefined,\n handleFocus: isEnabled ? onFocus : () => undefined,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n };\n}\n\nfunction getNextIndex(direction: -1 | 1, currentIndex: number, length: number) {\n if (direction === -1) {\n return currentIndex - 1 > 0 ? currentIndex - 1 : 0;\n }\n\n return currentIndex + 1 < length ? currentIndex + 1 : currentIndex;\n}\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React from 'react';\nimport { useLocalStorage } from '../../../../hooks/useLocalStorage';\nimport { useTacoSettings } from '../../../../hooks/useTacoSettings';\nimport { TableEnableSettingsOptions, TableSettings, TableSettingsHandler } from '../../types';\n\nconst DEFAULT_ENABLED_OPTIONS = {\n columnOrder: true,\n columnPinning: true,\n columnSizing: true,\n columnVisibility: true,\n excludeUnmatchedRecordsInSearch: true,\n fontSize: true,\n grouping: true,\n rowHeight: true,\n sorting: true,\n};\n\nexport function useUniqueTableId(tableId: string) {\n const tacoSettings = useTacoSettings();\n return `taco.${tacoSettings.uniqueUserIdentifier}.table.${tableId}.settings`;\n}\n\nfunction useEnabledSettings(isEnabled: boolean | Partial<TableEnableSettingsOptions>): [TableEnableSettingsOptions, boolean] {\n return React.useMemo(() => {\n if (isEnabled === false) {\n return [\n Object.keys(DEFAULT_ENABLED_OPTIONS).reduce(\n (o, key) => ({ ...o, [key]: false }),\n {}\n ) as TableEnableSettingsOptions,\n false,\n ];\n } else if (isEnabled === true) {\n return [DEFAULT_ENABLED_OPTIONS, true];\n }\n\n const options = { ...DEFAULT_ENABLED_OPTIONS, ...isEnabled };\n return [options, Object.values(options).some(o => o === true)];\n }, [isEnabled]);\n}\n\nexport function useTableSettings(\n isEnabled: boolean | Partial<TableEnableSettingsOptions> = false,\n id: string,\n defaultSettings: TableSettings | undefined = {},\n onChangeSettings: TableSettingsHandler | undefined\n): [TableSettings, TableSettingsHandler] {\n const uniqueId = useUniqueTableId(id);\n const [enabledSettings, hasSomeEnabledSettings] = useEnabledSettings(isEnabled);\n\n const [persistedSettings, _setPersistedSettings] = useLocalStorage<TableSettings>(\n hasSomeEnabledSettings ? uniqueId : undefined,\n removeDisabledSettings(defaultSettings, enabledSettings)\n );\n\n const setPersistedSettings = React.useCallback(\n (value: TableSettings) => {\n if (!hasSomeEnabledSettings) {\n return;\n }\n\n const sanitizedSettings = removeDisabledSettings(value, enabledSettings);\n _setPersistedSettings(sanitizedSettings);\n\n if (typeof onChangeSettings === 'function') {\n onChangeSettings(sanitizedSettings);\n }\n },\n [hasSomeEnabledSettings, onChangeSettings, JSON.stringify(enabledSettings)]\n );\n\n if (!hasSomeEnabledSettings) {\n return [defaultSettings, () => undefined];\n }\n\n return [persistedSettings, setPersistedSettings];\n}\n\nfunction removeDisabledSettings(settings: TableSettings, enabledSettings: TableEnableSettingsOptions) {\n const sanitizedSettings: TableSettings = { ...settings };\n\n Object.keys(enabledSettings).forEach(setting => {\n if (!enabledSettings[setting]) {\n delete sanitizedSettings[setting];\n }\n });\n\n return sanitizedSettings;\n}\n","import React from 'react';\n\n// augments useEffect to not run on the initial mount\nexport function useLazyEffect(effect: React.EffectCallback, deps?: React.DependencyList | undefined) {\n const readyRef = React.useRef(false);\n\n React.useEffect(() => {\n if (readyRef.current) {\n effect();\n } else {\n readyRef.current = true;\n }\n }, deps);\n}\n","import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTableStyleGrid } from './useTableStyleGrid';\nimport { useTableStyleColumnFreezing } from './useTableStyleColumnFreezing';\nimport { TableFontSize, TableRowHeight } from '../../types';\n\nexport function useTableStyle<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { style: cssGridStyle, stylesheet: cssGridStylesheet } = useTableStyleGrid<TType>(\n tableId,\n table,\n tableMeta.fontSize.size\n );\n const { stylesheet: columnFreezingStylesheet } = useTableStyleColumnFreezing(tableId, table);\n\n const style = {\n // css vars required by children of table\n '--table-header-group-depth': table.getHeaderGroups().length,\n '--table-cell-padding-x': getCellWidthPadding(tableMeta.fontSize.size),\n '--table-cell-padding-y': getCellHeightPadding(tableMeta.rowHeight.height, tableMeta.fontSize.size),\n ...cssGridStyle,\n };\n\n const stylesheet = [cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\\n');\n\n return { style, stylesheet };\n}\n\n// we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)\nfunction getCellHeightPadding(height: TableRowHeight, fontSize: TableFontSize) {\n // TODO: can we get the rem values from tailwind\n switch (height) {\n case 'short': {\n switch (fontSize) {\n case 'small':\n return '8px';\n\n default:\n return '6px';\n }\n }\n\n case 'tall': {\n switch (fontSize) {\n case 'small':\n return '16px';\n\n case 'large':\n return '12px';\n\n default:\n return '14px';\n }\n }\n\n case 'extra-tall': {\n switch (fontSize) {\n case 'small':\n return '22px';\n\n case 'large':\n return '18px';\n\n default:\n return '20px';\n }\n }\n\n default: {\n switch (fontSize) {\n case 'small':\n return '12px';\n\n case 'large':\n return '8px';\n\n default:\n return '10px';\n }\n }\n }\n}\n\nfunction getCellWidthPadding(fontSize: TableFontSize) {\n switch (fontSize) {\n case 'small':\n return '8px';\n\n case 'medium':\n return '12px';\n\n default:\n return '16px';\n }\n}\n","export const ROW_HEIGHT_ESTIMATES = {\n short: 33,\n medium: 41,\n tall: 49,\n 'extra-tall': 57,\n};\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport { useInView } from 'react-intersection-observer';\n\nexport type RowProps<TType = unknown> = {\n index: number;\n row: ReactTableRow<TType>;\n table: ReactTable<TType>;\n};\n\nexport function SkeletonRow<TType = unknown>(props: RowProps<TType>) {\n const { index, row, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.server.isEnabled) {\n return <RowWithServerLoading {...props} index={index} />;\n }\n\n return <Skeleton cellsCount={row.getVisibleCells().length} />;\n}\n\nfunction RowWithServerLoading<TType = unknown>(props: RowProps<TType>) {\n const { index, row, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const pageIndex = (Math.floor(index / tableMeta.server.pageSize) * tableMeta.server.pageSize) / tableMeta.server.pageSize;\n\n const { ref, inView } = useInView({\n threshold: 0,\n triggerOnce: true,\n initialInView: pageIndex === 0,\n });\n\n React.useEffect(() => {\n if (inView) {\n tableMeta.server.loadPage?.(pageIndex, table.getState().sorting, table.getState().columnFilters);\n }\n }, [inView]);\n\n const groupedCellCount = table.getState()?.grouping.length ?? 0;\n const ungroupedCellCount = row.getVisibleCells().length - groupedCellCount;\n\n return <Skeleton cellsCount={ungroupedCellCount} ref={ref} />;\n}\n\nconst Skeleton = React.forwardRef(function Skeleton(props: { cellsCount: number }, ref: React.Ref<HTMLTableRowElement>) {\n const { cellsCount } = props;\n\n return (\n <tr ref={ref}>\n {Array(cellsCount)\n .fill(null)\n .map((_, index) => (\n <td key={index}>\n <span className=\"bg-grey-100 text-grey-700 h-4 w-full text-center text-xs\" />\n </td>\n ))}\n </tr>\n );\n});\n","import React from 'react';\n\ntype RowContextValue = {\n isHovered: boolean;\n rowIndex: number;\n};\n\nexport const RowContext = React.createContext<RowContextValue>({\n isHovered: false,\n rowIndex: -1,\n});\n","import React from 'react';\nimport { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { SkeletonRow } from './BuiltIns/SkeletonRow';\nimport { RowContext } from './RowContext';\nimport { TableRowRenderer, TableRowRendererProps } from '../../types';\n\nexport type RowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> &\n TableRowRendererProps<TType> & {\n renderer: TableRowRenderer<TType>;\n };\n\n/* anonymous functions will break the memoisation on each render, wrap handlers in callbacks */\nexport function Row<TType = unknown>(props: RowProps<TType>) {\n const { renderer: RowRenderer, cellRenderer: CellRenderer, ...displayRowProps } = props;\n\n const tableMeta = props.table.options.meta as ReactTableMeta<TType>;\n const isHovered = tableMeta.rowActive.rowHoverIndex === props.index;\n // context - it must be here for cells to read it, since they render alongside the row inside DisplayRow\n const contextValue = React.useMemo(() => ({ isHovered, rowIndex: props.index }), [isHovered, props.index]);\n\n if (props.row.original === undefined) {\n return <SkeletonRow {...props} />;\n }\n\n return (\n <RowContext.Provider value={contextValue}>\n <RowRenderer<TType> {...displayRowProps} cellRenderer={CellRenderer} />\n </RowContext.Provider>\n );\n}\n","import React from 'react';\nimport { CellContext as ReactTableCellContext, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { IconButton } from '../../../../../../components/IconButton/IconButton';\nimport { Menu } from '../../../../../../components/Menu/Menu';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { TableFontSize, TableRowActionRenderer } from '../../../../types';\nimport { FontSizes } from '../../../../../../types';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\n\nexport type ActionsProps<TType = unknown> = {\n actions: TableRowActionRenderer<TType>[];\n actionsLength: number;\n data: any;\n fontSize: TableFontSize;\n isActiveRow: boolean;\n rowId: string;\n};\nexport function Actions<TType = unknown>(props: ActionsProps<TType>) {\n const { actions, actionsLength, data, fontSize, isActiveRow, rowId } = props;\n const { texts } = useLocalization();\n const visibleActions = actions.map(action => action(data, rowId)).filter(action => !!action) as JSX.Element[];\n\n const actionsOnRow = visibleActions.length === actionsLength ? visibleActions : visibleActions.slice(0, actionsLength - 1);\n const actionsInMenu = visibleActions.slice(visibleActions.length === actionsLength ? actionsLength : actionsLength - 1);\n\n const className = cn(\n '-mb-2 flex justify-end text-right bg-[inherit] shadow-[-6px_0px_6px_var(--table-row-actions-shadow)] print:hidden',\n {\n // Adjust negative margin on row actions cell to ensure that the cell aligns vertically.\n '-mt-2': fontSize === FontSizes.small,\n '-mt-1.5': fontSize !== FontSizes.small,\n }\n );\n\n return (\n <span className={className}>\n {actionsOnRow.map((button, index) => {\n const tooltip = String(button.props.tooltip ?? button.props['aria-label'] ?? '');\n\n return React.cloneElement(button, {\n appearance: 'transparent',\n key: index,\n tabIndex: isActiveRow ? 0 : -1,\n tooltip: button.props.shortcut ? (\n <>\n {tooltip}\n <Shortcut className=\"ml-2\" keys={button.props.shortcut} />\n </>\n ) : (\n tooltip\n ),\n });\n })}\n {actionsInMenu.length ? (\n <IconButton\n appearance=\"transparent\"\n aria-label={texts.table.columns.actions.tooltip}\n icon=\"more\"\n tabIndex={isActiveRow ? 0 : -1}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {actionsInMenu.map((action, i) => (\n <Menu.Item key={i} {...action.props} shortcut={action.props.shortcut}>\n {action.props['aria-label']}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n )}\n />\n ) : null}\n </span>\n );\n}\n\nfunction Header() {\n return null;\n}\n\nconst Cell = React.memo(function MemoedCell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { row, table } = context;\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const actions = tableMeta.rowActions.rowActions;\n const actionsLength = tableMeta.rowActions.rowActionsLength;\n\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const isResizingColumn = !!table.getState().columnSizingInfo.isResizingColumn;\n const isHoverStatePaused = tableMeta.rowActive.isHoverStatePaused;\n\n // We don't want to show actions in edit mode, since we have editing actions,\n // which is shown in edit mode instead.\n if (actions?.length && (isActiveRow || (isHovered && !isHoverStatePaused && !isResizingColumn))) {\n return (\n <Actions\n actions={actions}\n actionsLength={actionsLength}\n data={row.original}\n fontSize={tableMeta.fontSize.size}\n isActiveRow={isActiveRow}\n rowId={row.id}\n />\n );\n }\n\n return null;\n}) as <TType = unknown>(context: ReactTableCellContext<TType, unknown>) => JSX.Element;\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n meta: {\n align: 'right',\n className: cn(\n 'print:opacity-0 !px-0 !pr-1 overflow-hidden [table_&]:group-[[data-row-active=\"true\"]]/row:sticky right-0',\n 'group-[[data-row-active=\"true\"][data-selected=\"false\"]]/row:text-grey-200',\n 'group-[[data-row-selected=\"true\"]]/row:text-blue-100',\n 'group-[[data-row-selected=\"false\"]:hover]/row:text-grey-100'\n ),\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n },\n};\n","import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n RowSelectionState,\n} from '@tanstack/react-table';\nimport cn from 'clsx';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { Checkbox } from '../../../../../../components/Checkbox/Checkbox';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { getRadioClassnames } from '../../../../../../components/RadioGroup/util';\nimport { TableServerLoadAllState } from '../../../../types';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (table.options.enableMultiRowSelection) {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n const isSomeRowsSelected = table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table.columns.select.deselectAll : texts.table.columns.select.selectAll;\n\n const handleChange = async (checked: boolean) => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters);\n }\n\n table.toggleAllRowsSelected(checked);\n };\n\n return (\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !-mt-px\"\n key={String(`${isAllRowsSelected}_${isSomeRowsSelected}`)}\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected}\n loading={tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading}\n onChange={handleChange}\n />\n </Tooltip>\n );\n }\n\n return null;\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { row, table } = context;\n const { rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (table.options.enableGrouping && table.getState().grouping?.length && !row.getIsGrouped()) {\n return null;\n }\n\n const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();\n const title = isSelected ? texts.table.columns.select.deselect : texts.table.columns.select.select;\n\n if (table.options.enableMultiRowSelection) {\n const handleClick = async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (row.getIsGrouped()) {\n row.subRows.forEach(row => row.toggleSelected());\n } else if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0, rowIndex);\n const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);\n\n if (tableMeta.server.loadAllIfNeeded && selectedRows.some(row => row.original === undefined)) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters);\n }\n\n table.setRowSelection((currentRowSelection: RowSelectionState) => ({\n ...currentRowSelection,\n ...selectedRows.reduce((state, row) => ({ ...state, [row.id]: true }), {}),\n }));\n } else {\n row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <Tooltip\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n </Tooltip>\n );\n } else {\n const className = cn('!mt-0', getRadioClassnames());\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n row.toggleSelected();\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <button className={className} aria-checked={isSelected} onClick={handleClick} role=\"radio\" type=\"button\">\n {isSelected ? <span className=\"h-2 w-2 rounded-full bg-white\" /> : null}\n </button>\n );\n }\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!px-1',\n },\n};\n","import { Table as ReactTable, TableMeta as ReactTableMeta, TableState as ReactTableState } from '@tanstack/react-table';\nimport { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { TableCustomSettingsRenderer, TableEmptyStateRenderer, TableProps } from '../types';\nimport { useTableManager } from '../useTableManager/useTableManager';\nimport { useTableStyle } from './features/useTableStyle';\nimport { useTableGlobalShortcuts } from './features/useTableGlobalShortcuts';\nimport { useTableRef } from './features/useTableRef';\nimport { useTableRenderer } from './features/useTableRenderer';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { TableRef } from '../types';\nimport { useTableRenderers } from './types';\nimport { renderer as rowActions } from './components/Columns/Internal/Actions';\nimport { renderer as rowDrag } from './components/Columns/Internal/Drag';\nimport { renderer as rowExpansion } from './components/Columns/Internal/Expansion';\nimport { renderer as rowSelection } from './components/Columns/Internal/Selection';\nimport { useTableManagerInternalColumns } from '../useTableManager/types';\n\nconst INTERNAL_RENDERERS = {\n rowActions,\n rowDrag,\n rowExpansion,\n rowSelection,\n};\n\nexport type useTableReturnValue<TType = unknown> = {\n id: string;\n instance: ReactTable<TType>;\n meta: ReactTableMeta<TType>;\n props: {\n customSettings: TableCustomSettingsRenderer | undefined;\n emptyState: TableEmptyStateRenderer | undefined;\n toolbarLeft: JSX.Element | undefined;\n toolbarPanel: JSX.Element | undefined;\n toolbarRight: JSX.Element | undefined;\n };\n ref: React.RefObject<TableRef>;\n renderer: {\n rows: (JSX.Element | null)[] | null;\n style: React.CSSProperties;\n scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;\n };\n style: React.CSSProperties;\n stylesheet: string;\n state: ReactTableState;\n};\n\nexport function useTable<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n externalRef: React.Ref<TableRef>,\n renderers: useTableRenderers<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta\n): useTableReturnValue<TType> {\n // create a ref and merge with the consumer's ref\n const ref = useMergedRef<TableRef>(externalRef);\n // configure the table\n const manager = useTableManager<TType>(props, meta, INTERNAL_RENDERERS as useTableManagerInternalColumns<TType>);\n // configure the virtualised renderer\n const renderer = useTableRenderer<TType>(renderers, manager.instance, ref, props.defaultRowActiveIndex);\n // configure dynamic styling\n const { style, stylesheet } = useTableStyle(manager.id, manager.instance);\n // configure global keyboard shortcuts\n useTableGlobalShortcuts(manager.instance, ref, renderer.scrollToIndex);\n // augment the ref with some helper functions\n useTableRef(manager.instance, ref);\n\n // listeners - they are here and not in useTableManager because they rely on the dom and the table ref\n useTableRowActiveListener(manager.instance, ref);\n\n return {\n ...manager,\n props: {\n customSettings: props.customSettings,\n emptyState: props.emptyState,\n toolbarLeft: props.toolbarLeft,\n toolbarPanel: props.toolbarPanel,\n toolbarRight: props.toolbarRight,\n },\n renderer,\n style,\n stylesheet,\n ref,\n };\n}\n","import React from 'react';\nimport { CellContext as ReactTableCellContext, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\nimport { Icon } from '../../../../../../components/Icon/Icon';\n\nconst GHOST_ELEMENT_ID = 'taco_table_dragging';\n\nfunction Header() {\n return null;\n}\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { row, table } = context;\n const { texts } = useLocalization();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n\n const onDragStart = (event: React.DragEvent): void => {\n let rows = [row];\n\n if (table.options.enableRowSelection) {\n rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n }\n\n const data = rows.map(row => row.original);\n\n tableMeta.rowDrag.setDragging?.(\n rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {})\n );\n\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'wcag-blue rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.appendChild(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n tableMeta.rowDrag.handleRowDrag?.(data, showPlaceholder, setDataTransfer);\n };\n\n const handleDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n tableMeta.rowDrag.setDragging?.({});\n };\n\n return (\n <div draggable onDragStart={onDragStart} onDragOver={event => event.preventDefault()} onDragEnd={handleDragEnd}>\n <Icon\n aria-label={texts.table.columns.drag.tooltip}\n name=\"drag\"\n className=\"text-grey-darkest invisible -mt-1 ml-[2px] cursor-grab active:cursor-grabbing group-hover/row:visible group-[[aria-grabbed='true']]/row:text-white\"\n />\n </div>\n );\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 20,\n meta: {\n align: 'center',\n className: '!px-0 !pb-0 justify-end',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!p-0',\n },\n};\n","import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { IconButton } from '../../../../../../components/IconButton/IconButton';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n\n const isSomeRowsExpanded = table.getIsSomeRowsExpanded();\n\n const handleClick = event => {\n event.stopPropagation();\n table.toggleAllRowsExpanded(!isSomeRowsExpanded);\n };\n\n const title = isSomeRowsExpanded ? texts.table.columns.expansion.collapseAll : texts.table.columns.expansion.expandAll;\n\n return (\n <Tooltip title={title}>\n <IconButton\n appearance=\"transparent\"\n icon={isSomeRowsExpanded ? 'chevron-down-double' : 'chevron-right-double'}\n onClick={handleClick}\n tabIndex={-1}\n title={title}\n />\n </Tooltip>\n );\n}\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n\n const hasExpandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(context.row.original);\n\n if (hasExpandedRow) {\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === context.row.index;\n const isExpanded = context.row.getIsExpanded();\n\n const handleClick = event => {\n event.stopPropagation();\n context.row.toggleExpanded();\n };\n\n const title = isExpanded ? texts.table.columns.expansion.collapse : texts.table.columns.expansion.expand;\n const tabIndex = isActiveRow ? 0 : -1;\n\n return (\n <Tooltip title={title}>\n <IconButton\n appearance=\"discrete\"\n icon={isExpanded ? 'chevron-down' : 'chevron-right'}\n onClick={handleClick}\n tabIndex={tabIndex}\n title={title}\n />\n </Tooltip>\n );\n }\n\n return null;\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!p-0',\n },\n};\n","import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityColumnId?: string;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n renderer?: TableColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n}\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings\n );\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(options.enableRowExpansion, props.rowExpansionRenderer);\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const rowSelection = useTableRowSelection(options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(props.loadPage, props.loadAll, props.pageSize);\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(props, settings, options, internalColumns);\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // ensure data is always valid\n const data = props.data ?? [];\n const length = props.length ?? data.length;\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityColumnId: props.rowIdentityColumnId,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance, props.onChangeSearch);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n","import React from 'react';\n\n/* column freezing uses the native column pinning feature, this hook is really just a container for scrolled state */\nexport function useTableColumnFreezing(isEnabled = false) {\n const [isHorizontallyScrolled, setHorizontallyScrolled] = React.useState(false);\n\n const handleScroll = (event: React.MouseEvent<HTMLTableElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !isHorizontallyScrolled) {\n setHorizontallyScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && isHorizontallyScrolled) {\n setHorizontallyScrolled(false);\n }\n };\n\n return {\n isEnabled,\n isHorizontallyScrolled,\n handleScroll,\n };\n}\n","export function useTableColumnOrdering(isEnabled = false) {\n return {\n isEnabled,\n };\n}\n","import React from 'react';\nimport { FontSize } from '../../../../types';\n\nexport function useTableFontSize(isEnabled = false, defaultFontSize: FontSize = 'medium') {\n const [size, setSize] = React.useState<FontSize>(defaultFontSize);\n\n return {\n isEnabled,\n size,\n setSize: isEnabled ? setSize : () => undefined,\n };\n}\n","export function useTableFooter(isEnabled = false) {\n return {\n isEnabled,\n };\n}\n","import { TableRowActionRenderer } from '../../types';\n\nconst DEFAULT_ROW_ACTIONS_LENGTH = 4;\n\nexport function useTableRowActions<TType = unknown>(\n isEnabled = false,\n rowActions?: TableRowActionRenderer<TType>[],\n rowActionsLength = DEFAULT_ROW_ACTIONS_LENGTH\n) {\n return {\n isEnabled,\n rowActions: isEnabled ? rowActions : undefined,\n rowActionsLength: rowActions ? Math.min(rowActions.length, rowActionsLength) : 0,\n };\n}\n","import React from 'react';\nimport { TableRowClickHandler } from '../../types';\n\nexport function useTableRowClick<TType = unknown>(\n isEnabled: boolean | ((row: TType) => boolean) = false,\n onRowClick?: TableRowClickHandler<TType>\n) {\n const isRowClickEnabled = React.useCallback(\n (row: TType) => {\n return typeof isEnabled === 'boolean' ? isEnabled : isEnabled(row);\n },\n [isEnabled]\n );\n\n const handleKeyDown = React.useCallback(\n function (event: KeyboardEvent, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n if (rowData && event.key === 'Enter') {\n event.preventDefault();\n onRowClick(rowData);\n return;\n }\n },\n [isEnabled, onRowClick]\n ) as <TType = unknown>(event: KeyboardEvent, rowData: TType) => void;\n\n const handleClick = React.useCallback(\n function (event: React.MouseEvent<HTMLTableRowElement>, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n onRowClick(rowData);\n return;\n },\n [isEnabled, onRowClick]\n );\n\n return {\n isEnabled: isRowClickEnabled,\n handleClick,\n handleKeyDown,\n };\n}\n","import React from 'react';\nimport { TableRowDragHandler } from '../../types';\n\nexport function useTableRowDrag<TType = unknown>(isEnabled = false, onRowDrag?: TableRowDragHandler<TType>) {\n const [dragging, setDragging] = React.useState<Record<string, boolean>>({});\n\n return {\n isEnabled,\n dragging,\n setDragging: isEnabled ? setDragging : undefined,\n handleRowDrag: isEnabled ? onRowDrag : undefined,\n };\n}\n","import { TableRowDropHandler } from '../../types';\n\nexport function useTableRowDrop<TType = unknown>(isEnabled = false, onRowDrop: TableRowDropHandler<TType> | undefined) {\n return {\n isEnabled,\n handleDrop: isEnabled ? onRowDrop : undefined,\n };\n}\n","import { TableRowExpansionRenderer } from '../../types';\n\nexport function useTableRowExpansion<TType = unknown>(\n isEnabled = false,\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>\n) {\n return {\n isEnabled,\n rowExpansionRenderer: isEnabled ? rowExpansionRenderer : undefined,\n };\n}\n","import { TableRowGotoHandler } from '../../types';\n\nexport function useTableRowGoto(isEnabled = false, handler?: TableRowGotoHandler) {\n return {\n isEnabled,\n handleGoto: isEnabled ? handler : undefined,\n };\n}\n","import { TableRowActionGroupRenderer } from '../../types';\n\nexport function useTableRowGroups<TType = unknown>(rowActionsForGroup?: TableRowActionGroupRenderer<TType>[]) {\n return {\n isEnabled: true,\n rowActionsForGroup,\n };\n}\n","import React from 'react';\nimport { TableRowHeight } from '../../types';\n\nexport function useTableRowHeight(isEnabled = false, defaultRowHeight: TableRowHeight = 'medium') {\n const [height, setHeight] = React.useState<TableRowHeight>(defaultRowHeight);\n\n return {\n isEnabled,\n height,\n setHeight: isEnabled ? setHeight : () => undefined,\n };\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\n\nexport function useTableRowSelection(isEnabled = false) {\n const lastSelectedRowIndex = React.useRef<number>();\n\n const onKeyDown = React.useCallback(\n <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => {\n if (!isEnabled || !table.options.enableRowSelection || event.defaultPrevented) {\n return;\n }\n\n const rows = table.getRowModel().rows;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (event.key === ' ') {\n event.preventDefault();\n const rowActiveIndex = tableMeta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined) {\n rows[rowActiveIndex]?.toggleSelected();\n }\n\n return;\n } else if ((event.ctrlKey || event.metaKey) && event.key === 'a') {\n event.preventDefault();\n table.toggleAllRowsSelected();\n return;\n }\n },\n [isEnabled]\n ) as <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => void;\n\n return {\n isEnabled,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n lastSelectedRowIndex,\n };\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\n\n/*\n Search has two behaviours:\n - Highlighting search results, this is custom and only uses the state part of globalFilter (to store the search query)\n - Filtering of results, this is essentially the built in filtering, and relies on enableGlobalFilter being on or off\n*/\nexport function useTableSearch(isEnabled = false, defaultEnableGlobalFilter = false) {\n const [enableGlobalFilter, _setEnableGlobalFilter] = React.useState<boolean>(defaultEnableGlobalFilter);\n\n function setEnableGlobalFilter<TType = unknown>(enabled: boolean, instance: ReactTable<TType>) {\n _setEnableGlobalFilter(enabled);\n\n // react-table doesn't re-render when options.enableGlobalFilter changes, so for now we force it\n const currentFilter = instance.getState().globalFilter;\n\n if (currentFilter) {\n setTimeout(() => {\n instance.setGlobalFilter('');\n instance.setGlobalFilter(currentFilter);\n }, 1);\n }\n }\n\n // highlighting\n const [highlightedColumnIndexes, setHighlightedColumnIndexes] = React.useState<number[][]>([]);\n const [currentHighlightColumnIndex, setCurrentHighlightColumnIndex] = React.useState<number | undefined>(undefined);\n\n return {\n isEnabled,\n // filtering - built-in\n enableGlobalFilter,\n setEnableGlobalFilter,\n // highlighting - custom\n highlightedColumnIndexes,\n setHighlightedColumnIndexes,\n currentHighlightColumnIndex,\n setCurrentHighlightColumnIndex,\n };\n}\n","import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadAllState, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading(\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pageSize = DEFAULT_PAGE_SIZE\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loadAllStatus, setLoadedStatus] = React.useState<TableServerLoadAllState>(TableServerLoadAllState.Incomplete);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoadedStatus(TableServerLoadAllState.Loading);\n await loadAll(...args);\n setLoadedStatus(TableServerLoadAllState.Completed);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (loadAllStatus === TableServerLoadAllState.Incomplete) {\n await _loadAll?.(...args);\n }\n };\n }\n\n return {\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loadAllStatus,\n pageSize,\n };\n}\n","import React from 'react';\nimport {\n TableColumnFilter,\n TableColumnSort,\n TableFilterHandler,\n TableServerLoadPageHandler,\n TableServerLoadAllHandler,\n TableSortHandler,\n TableSearchHandler,\n} from './types';\n\nexport const DEFAULT_PAGE_SIZE = 100;\n\nexport type useTableDataPageFetcher<TType = unknown> = (\n pageIndex: number,\n pageSize: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[]\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataAllFetcher<TType = unknown> = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[]\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataLoaderOptions = { pageSize: number };\n\nexport type useTableDataLoaderValues<TType = unknown> = {\n data: TType[];\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n onChangeFilter: TableFilterHandler;\n onChangeSearch: TableSearchHandler;\n onChangeSort: TableSortHandler;\n pageSize: number;\n};\n\nexport function useTableDataLoader<TType = unknown>(\n fetchPage: useTableDataPageFetcher<TType>,\n fetchAll: useTableDataAllFetcher<TType>,\n options: useTableDataLoaderOptions = { pageSize: DEFAULT_PAGE_SIZE }\n): [useTableDataLoaderValues<TType>, () => void] {\n const { pageSize } = options;\n\n // track the data length, we don't know it until the first request\n const length = React.useRef<number | undefined>(undefined);\n // data will be filled after the first request, then we'll update values in place\n const [data, setData] = React.useState<any[]>([]);\n // track which pages have been loaded to dedupe requests\n const _pendingPageRequests = React.useRef({});\n const _lastUsedSorting = React.useRef<TableColumnSort[]>([]);\n const _lastUsedFilters = React.useRef<TableColumnFilter[]>([]);\n const _lastUsedSearch = React.useRef<string>();\n const _forceReset = React.useRef(false);\n\n const loadPage = async (pageIndex: number, sorting: TableColumnSort[], filters: TableColumnFilter[]) => {\n let reset = false;\n\n // sorting or filters changed, reset everything\n if (\n _forceReset.current ||\n JSON.stringify(sorting) !== JSON.stringify(_lastUsedSorting.current) ||\n JSON.stringify(filters) !== JSON.stringify(_lastUsedFilters.current)\n ) {\n _pendingPageRequests.current = {};\n // nuke the dataset so that we \"start again\" after sorting\n reset = true;\n }\n\n if (_pendingPageRequests.current[pageIndex]) {\n // if page is already loaded/loading, abort, otherwise mark it as loading\n return;\n } else {\n _pendingPageRequests.current[pageIndex] = true;\n }\n\n _forceReset.current = false;\n // set the sorting so we can track if it changed between loads\n _lastUsedSorting.current = sorting;\n // set the filters so we can track if it changed between loads\n _lastUsedFilters.current = filters;\n\n try {\n const response = await fetchPage(pageIndex, pageSize, sorting, filters);\n\n // update state, here we do some \"magic\" to support \"load in place\"\n setData(currentData => {\n let nextData;\n\n // reset table state if:\n // - the length isn't set at all (first load)\n // - the client length and server length are different (the data changed)\n if (reset || length.current !== response.length) {\n length.current = response.length;\n nextData = Array(length.current).fill(undefined);\n } else {\n nextData = [...currentData];\n }\n\n const startIndex = pageIndex * pageSize;\n nextData.splice(startIndex, pageSize, ...response.data);\n return nextData;\n });\n } catch {\n //\n } finally {\n _pendingPageRequests.current[pageIndex] = false;\n }\n };\n\n const loadAll = async (sorting: TableColumnSort[], filters: TableColumnFilter[]) => {\n // set the sorting so we can track if it changed between loads\n _lastUsedSorting.current = sorting;\n // set the filters so we can track if it changed between loads\n _lastUsedFilters.current = filters;\n\n try {\n const response = await fetchAll(sorting, filters);\n length.current = response.length;\n\n setData(() => {\n let nextData;\n\n if (response.data.length !== response.length) {\n nextData = Array(response.length).fill(undefined);\n nextData.splice(0, response.data.length, ...response.data);\n } else {\n nextData = [...response.data];\n }\n\n return nextData;\n });\n } catch {\n //\n }\n };\n\n const invalidate = async () => {\n _forceReset.current = true;\n\n if (_lastUsedSearch.current) {\n // we're searching, which means we need to refetch all with the correct sorting applied\n return loadAll(_lastUsedSorting.current, _lastUsedFilters.current);\n } else {\n return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current);\n }\n };\n\n // search works client side - it fetches all then works client side - so these handlers are a little \"weird\"\n // if a search is currently \"active\", we need to re load all because\n const handleSort = async (sorting: TableColumnSort[]) => {\n if (_lastUsedSearch.current) {\n // we're searching, which means we need to refetch all with the correct sorting applied\n loadAll(sorting, _lastUsedFilters.current);\n } else {\n // reset the page to 0 whenever sorting\n loadPage(0, sorting, _lastUsedFilters.current);\n }\n };\n const handleFilter = async (filters: TableColumnFilter[]) => {\n if (_lastUsedSearch.current) {\n // we're searching, which means we need to refetch all with the correct sorting applied\n loadAll(_lastUsedSorting.current, filters);\n } else {\n // reset the page to 0 whenever sorting\n loadPage(0, _lastUsedSorting.current, filters);\n }\n };\n const handleSearch = async (search: string | undefined) => {\n // set the search so we can track if it changed between loads\n _lastUsedSearch.current = search || undefined;\n // search works client side, and focusing the search field triggers a load of all so we don't actually\n // want to load anything when search gets changed, we just store the value for other handlers\n };\n\n return [\n {\n data,\n length: length.current,\n loadAll,\n loadPage,\n onChangeFilter: handleFilter,\n onChangeSearch: handleSearch,\n onChangeSort: handleSort,\n pageSize,\n },\n invalidate,\n ];\n}\n","import { TableColumnDataType, TableColumnSortFn } from '../../types';\n\nexport function getSortingFn<TType = unknown>(dataType?: TableColumnDataType, customFnOrBuiltIn?: TableColumnSortFn<TType>) {\n if (typeof customFnOrBuiltIn === 'function') {\n return (rowA, rowB, columnId) => customFnOrBuiltIn(rowA.original, rowB.original, columnId);\n }\n\n // if a built in is being used, just return that\n if (customFnOrBuiltIn) {\n return customFnOrBuiltIn;\n }\n\n // some times we alias based on the type\n if (dataType && dataType !== 'boolean' && dataType !== 'number') {\n return dataType;\n }\n\n // otherwise fall back to auto\n return 'auto';\n}\n","import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\n\nexport function useTableDataListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const rows = table.getRowModel().rows;\n\n useLazyEffect(() => {\n const rowActiveIndex = meta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined && rowActiveIndex > rows.length) {\n meta.rowActive.setRowActiveIndex(0);\n }\n }, [rows.length]);\n}\n","import { Table as ReactTable } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { TableFilterHandler } from '../../types';\n\n// we use a listener, and not the internal \"controlled\" change handlers because we don't actually want consumers\n// to control the state outside the table. this listener is really here to let the consumer make a server request\n// and provide the server with the filtering state, so that it can filter server side\nexport function useTableFilterListener<TType = unknown>(table: ReactTable<TType>, onFilter?: TableFilterHandler) {\n const columnFilters = table.getState().columnFilters;\n\n useLazyEffect(() => {\n if (table.options.enableColumnFilters && typeof onFilter === 'function') {\n onFilter(columnFilters);\n\n if (table.options.enableRowSelection) {\n table.resetRowSelection();\n }\n }\n }, [table.options.enableColumnFilters, columnFilters]);\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\nimport { getCellMinWidth, isInternalColumn } from '../util/columns';\n\nexport function useTableFontSizeListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const previousFontSizeRef = React.useRef(meta.fontSize.size);\n\n useLazyEffect(() => {\n const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);\n const globalMinSize = getCellMinWidth(meta.fontSize.size);\n\n table.setColumnSizing(sizes => {\n return Object.fromEntries(\n Object.entries(sizes).map(([columnName, prevColumnSize]) => {\n const column = table.getColumn(columnName);\n\n if (isInternalColumn(columnName)) {\n return [columnName, column?.getSize() ?? prevColumnSize];\n }\n\n // Prevents width value in the setting to go below the minColumnSize\n const minColumnSize = column?.columnDef.minSize ?? globalMinSize;\n const newSize = Math.max(minColumnSize, prevColumnSize + cellWidthDifference);\n return [columnName, newSize];\n })\n );\n });\n previousFontSizeRef.current = meta.fontSize.size;\n }, [meta.fontSize.size]);\n}\n\nfunction getCellWidthDifference(fontSizeKey: string) {\n switch (fontSizeKey) {\n case `${FontSizes.small}-${FontSizes.medium}`:\n case `${FontSizes.medium}-${FontSizes.large}`:\n return 8;\n\n case `${FontSizes.medium}-${FontSizes.small}`:\n case `${FontSizes.large}-${FontSizes.medium}`:\n return -8;\n\n case `${FontSizes.small}-${FontSizes.large}`:\n return 16;\n\n case `${FontSizes.large}-${FontSizes.small}`:\n return -16;\n\n default:\n return 0;\n }\n}\n","import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\n\nexport function useTableRowHeightListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n\n useLazyEffect(() => {\n if (meta.rowHeight.height === 'short' && meta.fontSize.size === FontSizes.large) {\n meta.fontSize.setSize(FontSizes.medium);\n }\n }, [meta.rowHeight.height]);\n}\n","import { Table as ReactTable } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { TableRowSelectHandler } from '../../types';\n\nexport function useTableRowSelectionListener<TType = unknown>(\n table: ReactTable<TType>,\n onRowSelect?: TableRowSelectHandler<TType>\n) {\n const rowSelection = table.getState().rowSelection;\n\n useLazyEffect(() => {\n const selectedRows = table.getSelectedRowModel().rows;\n\n if (table.options.enableRowSelection && typeof onRowSelect === 'function') {\n if (table.options.enableMultiRowSelection) {\n onRowSelect(selectedRows.map(row => row.original));\n } else {\n onRowSelect([selectedRows[0]?.original] ?? []);\n }\n }\n // It is important to stringify either rowSelection state or selectedRows, because we don't\n // know if the array or object that is returned by react-table has the same reference or not.\n // rowSelection state is used here because it will be more expensive to strigify selectedRows\n // than rowSelection state.\n }, [table.options.enableRowSelection, table.options.enableMultiRowSelection, JSON.stringify(rowSelection)]);\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { TableSearchHandler } from '../../types';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>, onChangeSearch?: TableSearchHandler) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n\n // recalculates highlighted indexes whenever something important changes\n React.useEffect(() => {\n if (meta.search.isEnabled) {\n const query = table.getState().globalFilter;\n resetHighlightedColumnIndexes(query, table);\n\n if (typeof onChangeSearch === 'function') {\n onChangeSearch(query);\n }\n }\n }, [\n meta.server.loadAllStatus,\n meta.search.isEnabled,\n meta.search.enableGlobalFilter,\n table.getRowModel().rows.length,\n table.getState().globalFilter,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n onChangeSearch,\n ]);\n}\n","import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { getCellValueAsString } from './columns';\nimport { isWeakContains } from './filtering';\n\nexport function resetHighlightedColumnIndexes<TType = unknown>(value: string | undefined, table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let firstRowIndex: undefined | number;\n\n if (value) {\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n const rowGrouping = table.getState().grouping;\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n let allowSearch = true;\n\n if (rowGrouping?.length) {\n // if it's the grouped row, only allow search of the grouped column - because that's all that's visible\n if (row.getIsGrouped()) {\n allowSearch = column.getIsGrouped();\n }\n // otherwise for other rows, don't search the grouped column - because it isn't visible\n else if (rowGrouping.includes(column.id)) {\n allowSearch = false;\n }\n }\n\n if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {\n const cellValue = getCellValueAsString(get(row.original, column.id), column.columnDef.meta?.dataType);\n\n // indexes don't map to sorted data\n if (cellValue !== undefined && isWeakContains(cellValue, value)) {\n indexes.push([rowIndex, columnIndex]);\n }\n }\n } catch (e) {\n //\n }\n });\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0][0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n if (firstRowIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\nimport { TableServerLoadPageHandler } from '../../types';\n\nexport function useTableServerLoadingListener<TType = unknown>(table: ReactTable<TType>, loadPage?: TableServerLoadPageHandler) {\n const sorting = table.getState().sorting;\n const columnFilters = table.getState().columnFilters;\n\n // trigger load of the first page on mount\n React.useEffect(() => {\n if (loadPage) {\n loadPage(0, sorting, columnFilters);\n }\n }, []);\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableSettingsHandler } from '../../types';\nimport { getSettings } from '../util/settings';\n\nexport function useTableSettingsListener<TType = unknown>(\n table: ReactTable<TType>,\n onChangeSettings: TableSettingsHandler | undefined\n) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n React.useEffect(() => {\n let handler;\n\n if (typeof onChangeSettings === 'function') {\n handler = setTimeout(() => {\n // some settings shouldn't be persisted, but we comment them out here to highlight the intention\n onChangeSettings(getSettings(table));\n }, 250);\n }\n\n return () => clearTimeout(handler);\n }, [\n //state.columnFilters,\n state.columnOrder,\n state.columnPinning,\n state.columnSizing,\n state.columnVisibility,\n table.options.enableGlobalFilter,\n meta.fontSize.size,\n //state.grouping,\n meta.rowHeight.height,\n //state.globalFilter,\n state.sorting,\n ]);\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { KeyDownHandlerOptions, createShortcutKeyDownHandler } from '../../../../utils/keyboard';\nimport { TableShortcutHandlerObject, TableShortcuts } from '../../types';\n\nexport function useTableShortcutsListener<TType = unknown>(\n table: ReactTable<TType>,\n shortcuts: TableShortcuts<TType> | undefined\n) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const rows = table.getRowModel().rows;\n\n React.useEffect(() => {\n const shortcutKeys = Object.keys(shortcuts ?? {});\n const globalHandlers: Array<(event: KeyboardEvent) => void> = [];\n\n // convert the shortcut into the correct format to register it\n if (shortcuts && shortcutKeys.length && meta.rowActive.rowActiveIndex !== undefined) {\n const rowActive = rows[meta.rowActive.rowActiveIndex];\n\n shortcutKeys.forEach(key => {\n const handler = shortcuts[key];\n\n let keyDownHandler;\n let keyDownHandlerOptions: KeyDownHandlerOptions;\n\n if (typeof handler === 'function') {\n keyDownHandler = handler;\n keyDownHandlerOptions = {\n key,\n };\n } else {\n const handlerObject = handler as TableShortcutHandlerObject<TType>;\n keyDownHandler = handlerObject.handler;\n keyDownHandlerOptions = {\n key,\n meta: handlerObject.meta,\n shift: handlerObject.shift,\n };\n }\n\n globalHandlers.push(\n createShortcutKeyDownHandler(keyDownHandlerOptions, event => {\n event.preventDefault();\n keyDownHandler(rowActive?.original);\n })\n );\n });\n }\n\n globalHandlers.forEach(handler => {\n document.addEventListener('keydown', handler);\n });\n\n return () => {\n globalHandlers.forEach(handler => {\n document.removeEventListener('keydown', handler);\n });\n };\n }, [shortcuts, meta.rowActive.rowActiveIndex, rows.length]);\n}\n","import { Table as ReactTable } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { TableSortHandler } from '../../types';\n\n// we use a listener, and not the internal \"controlled\" change handlers because we don't actually want consumers\n// to control the state outside the table. this listener is really here to let the consumer make a server request\n// and provide the server with the sorting state, so that it can sort server side\nexport function useTableSortingListener<TType = unknown>(table: ReactTable<TType>, onSort?: TableSortHandler) {\n const sorting = table.getState().sorting;\n\n useLazyEffect(() => {\n if (table.options.enableSorting && typeof onSort === 'function') {\n onSort(sorting);\n\n if (table.options.enableRowSelection) {\n table.resetRowSelection();\n }\n }\n }, [table.options.enableSorting, sorting]);\n}\n","import React, { CSSProperties } from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport {\n useVirtualizer,\n defaultRangeExtractor,\n ScrollToOptions as ReactVirtualScrollToOptions,\n VirtualItem,\n} from '@tanstack/react-virtual';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\nimport { Row } from '../components/Row/Row';\nimport { useTableRenderers } from '../types';\nimport { TableRef } from '../../types';\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const rows = table.getRowModel().rows;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n\n // expanded rows\n const { createRowMeasurer, estimateSize } = useRowHeightVirtualisation<TType>(table);\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n // column groups offset the bottom padding :shrug:, multiplying by 1.5 ensures the bottom padding remains\n // consistent when there are groups and when there aren't. 1.5 is relatively arbitrary, but it gives alignment\n const scrollPaddingEnd = ROW_HEIGHT_ESTIMATES.medium * (table.getHeaderGroups().length > 1 ? 1.5 : 1);\n\n const virtualiser = useVirtualizer({\n count: rows.length,\n estimateSize,\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? rows.length : undefined,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: tableMeta.footer.isEnabled ? scrollPaddingEnd * 2 : scrollPaddingEnd,\n });\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === rows.length - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, rows.length]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && rows.length > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? virtualItems[paddingStartIndex]?.start - virtualItems[paddingStartIndex]?.size\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - virtualItems[virtualItems.length - 1]?.end ?? 0)]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (JSX.Element | null)[] | null = null;\n\n if (rows.length) {\n style = {\n height: totalSize,\n paddingBottom,\n paddingTop,\n };\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n const row = rows[virtualRow.index];\n const measureRow = createRowMeasurer(virtualiser.resizeItem, virtualRow);\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support varying row heights - variable row heights, row expansion\nfunction useRowHeightVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const rows = table.getRowModel().rows;\n const expandedState = table.getState().expanded;\n\n const [expandedRowHeightsCache, setExpandedRowHeightsCache] = React.useState<Record<number, number>>({});\n\n // look at all registered expanded row heights and use them to form a more accurate average size\n // it might be worth considering if taking the max, or an upper bound, would be better\n const averageExpandedRowHeight = React.useMemo(() => {\n const values: number[] = Object.values(expandedRowHeightsCache);\n return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;\n }, [expandedRowHeightsCache]);\n\n // row heights\n const estimateSize = React.useCallback(\n (index: number) => {\n const rowHeight = tableMeta.rowHeight.height\n ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height]\n : ROW_HEIGHT_ESTIMATES.medium;\n\n if (expandedState === true || rows[index]?.getIsExpanded?.()) {\n return rowHeight + averageExpandedRowHeight;\n }\n\n return rowHeight;\n },\n [tableMeta.rowHeight.height, averageExpandedRowHeight, expandedState]\n );\n\n const createRowMeasurer = React.useCallback(\n (resizeItem: (item: VirtualItem, size: number) => void, virtualRow: VirtualItem) =>\n (rowHeight: number, expansionHeight?: number) => {\n // register the expansion height so that it can be used to determine an average\n if (expansionHeight) {\n setExpandedRowHeightsCache(cache => ({ ...cache, [virtualRow.index]: expansionHeight }));\n }\n\n // update the whole row's size to include the expanded height\n resizeItem(virtualRow, rowHeight + (expansionHeight ?? 0));\n },\n []\n );\n\n return { estimateSize, createRowMeasurer };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n range => {\n const activeRowGroupIndex =\n [...rowGroupIndexes].reverse().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n const next = new Set([activeRowGroupIndex, ...defaultRangeExtractor(range)]);\n return [...next].sort((a, b) => a - b);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../types';\nimport { getCellMinWidth, isInternalColumn } from '../../useTableManager/util/columns';\n\nexport function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = 0;\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n\n if (isInternalColumn(column.id)) {\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else {\n // getSize method is used instead of columnSizing state because internal columns have defined widths\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(max-content, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(max-content, auto)`;\n }\n\n // printing\n if (column.columnDef.meta?.enablePrinting === false) {\n printHiddenColumns.push(column.id);\n } else {\n printGridTemplateColumns++;\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // normal grid\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n // printing grid\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `table[data-taco^='table']#${tableId} > thead > tr > th[data-cell-id='${id}']\\n,table[data-taco^='table']#${tableId} > tbody > tr > td[data-cell-id='${id}']\\n`\n )\n .join(',');\n const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }\n table[data-taco^='table']#${tableId} [data-cell-id^='__']${\n hiddenColumns ? `, ${hiddenColumns}` : ''\n } { display: none; }}`;\n\n return { style, stylesheet };\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\n\nexport function useTableStyleColumnFreezing<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const { columnPinning, columnSizing } = table.getState();\n\n const stylesheet = React.useMemo(() => {\n const styles: string[] = [];\n\n // might be a better way to get this information, but it wasn't obvious\n const all = table\n .getFlatHeaders()\n .filter(column => !column.subHeaders.length)\n .map(x => x.id);\n const left = table.getLeftFlatHeaders().filter(column => !column.subHeaders.length);\n const right = table.getRightFlatHeaders().filter(column => !column.subHeaders.length);\n\n if (left.length) {\n left.forEach(cell => {\n styles.push(`table[data-taco^='table']#${tableId} [data-cell-id=\"${cell.column.id}\"] {\n left: ${cell.column.getStart(cell.column.getIsPinned())}px;\n }`);\n });\n const leftIds = left.map(x => x.id);\n const index = all.indexOf(leftIds[leftIds.length - 1]);\n\n // add right border, hide the header seperator and add shadow when scrolled\n // we have to be specific so that nested tables don't inherit the same css\n styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}),\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1}),\n table[data-taco^='table']#${tableId} > tfoot > tr > td:nth-child(${index + 1}):not([data-cell-id^=\"__\"]) {\n border-right-width: 1px;\n }\\ntable[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1})[data-cell-id^=\"__\"],\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1})[data-cell-id^=\"__\"] {\n border-right-color: transparent;\n }\\ntable[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}):after {\n content: none;\n }\\ntable[data-taco^='table'][data-table-horizontally-scrolled=\"true\"]#${tableId} > thead > tr > th:nth-child(${\n index + 1\n }),\n table[data-taco^='table'][data-table-horizontally-scrolled=\"true\"]#${tableId} > tbody > tr > td:nth-child(${\n index + 1\n }),\n table[data-taco^='table'][data-table-horizontally-scrolled=\"true\"]#${tableId} > tfoot > tr > td:nth-child(${\n index + 1\n }) {\n border-right-color: rgb(221, 221, 221);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%);\n }`);\n }\n\n if (right.length) {\n right.forEach(cell => {\n styles.push(`table[data-taco^='table']#${tableId} [data-cell-id=\"${cell.column.id}\"] {\n right: ${cell.column.getStart(cell.column.getIsPinned())}px;\n }`);\n });\n const rightIds = right.map(x => x.id);\n const index = all.indexOf(rightIds[rightIds.length - 1]);\n\n styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}):not([data-cell-id^=\"__\"]),\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1}):not([data-cell-id^=\"__\"]) {\n border-left-width: 1px;\n }`);\n }\n\n return styles.join('\\n');\n }, [columnPinning, columnSizing]);\n\n return { stylesheet };\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableRef } from '../../types';\nimport {\n isElementInsideOrTriggeredFromContainer,\n isElementInsideOverlay,\n isElementInteractive,\n isSiblingElementInsideSameParentOverlay,\n} from '../../../../utils/dom';\n\nexport function useTableGlobalShortcuts<TType = unknown>(\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n scrollToIndex: (index: number) => void\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const rows = table.getRowModel().rows;\n\n React.useEffect(\n () => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const trigger = event.target as HTMLElement;\n\n if (\n (isElementInsideOverlay(trigger) && !isSiblingElementInsideSameParentOverlay(trigger, tableRef.current)) ||\n (isElementInteractive(trigger) && !isElementInsideOrTriggeredFromContainer(trigger, tableRef.current))\n ) {\n return;\n }\n\n tableMeta.rowActive.handleKeyDown(event, rows.length, scrollToIndex);\n tableMeta.rowSelection.handleKeyDown(event, table);\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n tableMeta.rowClick.handleKeyDown(event, rows[tableMeta.rowActive.rowActiveIndex]?.original);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n },\n\n // scrollToIndex function changes when row count changes, so it is important to update handlers\n [tableRef.current, tableMeta.rowActive.rowActiveIndex, scrollToIndex]\n );\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\nimport { TableRef } from '../../types';\n\nexport function useTableRef<TType = unknown>(table: ReactTable<TType>, ref: React.RefObject<TableRef>) {\n React.useEffect(() => {\n if (ref.current) {\n ref.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n };\n }\n }, [table, ref.current]);\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isElementInsideOrTriggeredFromContainer, isElementInteractive } from '../../../../utils/dom';\n\nexport function useTableRowActiveListener<TType = unknown>(\n table: ReactTable<TType>,\n tableRef: React.RefObject<HTMLTableElement>\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n // move focus to the row when active row changes, this makes sure we start within the row when tabbing\n React.useEffect(() => {\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const activeRow = tableRef.current?.querySelector('tbody tr[data-row-active=\"true\"]') ?? null;\n\n // if the focused element, or it's parent if it's portalled, aren't in the row, then focus the row\n // this ensures the next tab press starts at the row\n if (\n !isElementInsideOrTriggeredFromContainer(document.activeElement, activeRow) &&\n !isElementInteractive(document.activeElement)\n ) {\n (activeRow as HTMLElement)?.focus?.({ preventScroll: true });\n }\n }\n }, [tableMeta.rowActive.rowActiveIndex]);\n}\n","import React from 'react';\nimport { Cell as ReactTableCell, ColumnMeta as ReactTableColumnMeta, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement>\n) {\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(context.table.getState().globalFilter, cell.getValue(), columnMeta.dataType);\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n","import React from 'react';\nimport { TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { getCellAttributes } from '../util';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport { RowContext } from '../../../Row/RowContext';\nimport { TableFontSize, TableRowActionGroupRenderer } from '../../../../../types';\nimport { TableCellRendererProps } from '../../../../types';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const tableMeta = cell.getContext().table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n const colSpan = cell.row.getVisibleCells().filter(c => !isInternalColumn(c.column.id)).length - 1;\n const content = columnMeta.renderer?.(cell.getValue<TType>(), cell.row.original) ?? cell.getValue() ?? null;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n fontSize={tableMeta.fontSize.size}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.RefObject<HTMLTableCellElement>;\n colSpan: number;\n fontSize: TableFontSize;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, fontSize, rowActions, rowId, subRows, ...attributes } = props;\n\n return (\n <td {...attributes} ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions\n actions={rowActions}\n actionsLength={4}\n data={subRows}\n fontSize={fontSize}\n isActiveRow\n rowId={rowId}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => JSX.Element;\n","import React from 'react';\nimport { Cell as ReactTableCell } from '@tanstack/react-table';\nimport { isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { GroupedCell } from './BuiltIns/GroupedCell';\nimport { useSearchHighlighting } from './util';\nimport { TableCellRendererProps, TableCellRenderer } from '../../../types';\n\ntype CellProps<TType = unknown> = React.HTMLAttributes<HTMLTableCellElement> & {\n cell: ReactTableCell<TType, unknown>;\n index: number;\n renderer: TableCellRenderer<TType>;\n};\n\nexport function Cell<TType = unknown>(props: CellProps<TType>) {\n const { cell, index, renderer: CellRenderer } = props;\n const cellRef = React.useRef<HTMLTableCellElement>(null);\n const isHighlighted = useSearchHighlighting(cell, index, cellRef);\n\n if ((cell.getIsAggregated() || cell.getIsPlaceholder()) && !isInternalColumn(cell.column.id)) {\n // we choose not to show aggregated cells in group rows and we don't show\n // placeholder cells in normal rows (because we don't show the grouped column)\n // so just straight up abort and return nothing at all - no <td>\n return null;\n }\n\n const cellProps: TableCellRendererProps<TType> = {\n cell,\n cellRef,\n index,\n isHighlighted,\n };\n\n if (cell.getIsGrouped()) {\n return <GroupedCell<TType> {...cellProps} />;\n }\n\n return <CellRenderer<TType> {...cellProps} />;\n}\n","import React from 'react';\nimport { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport { Cell } from '../../Columns/Cell/Cell';\nimport { TableRowRendererProps } from '../../../types';\nimport { TableRowWithMetaData } from '../../../../types';\nimport { isElementInteractive } from '../../../../../../utils/dom';\nimport { useDropTarget } from '../../../../../../utils/hooks/useDropTarget';\n\nexport type DisplayRowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> & TableRowRendererProps<TType>;\n\nexport const DisplayRow = React.memo(function DisplayRow<TType = unknown>(props: DisplayRowProps<TType>) {\n const { children, cellRenderer: CellRenderer, index, measureRow, row, table, ...otherAttributes } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const attributes: any = {\n ...otherAttributes,\n 'data-row-id': row.id,\n 'data-row-index': index,\n tabIndex: -1,\n };\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLTableRowElement>) => {\n const clickedElement = event.target as HTMLElement;\n\n if (!event.currentTarget?.contains(event.target as HTMLElement) || isElementInteractive(clickedElement)) {\n return;\n }\n\n tableMeta.rowClick.handleClick(event, row.original);\n },\n [row.original]\n );\n const handleClickCapture = React.useCallback(() => {\n tableMeta.rowActive.setRowActiveIndex(index);\n }, [index]);\n\n // row active\n if (tableMeta.rowActive.isEnabled) {\n attributes['data-row-active'] = tableMeta.rowActive.rowActiveIndex === index ? true : undefined;\n // we use capture because it let's us picks up clicks on components inside the row, e.g. checkboxes\n attributes.onClickCapture = handleClickCapture;\n }\n\n // row click\n if (tableMeta.rowClick.isEnabled(row.original)) {\n attributes.onClick = handleClick;\n }\n\n // row drag\n if (tableMeta.rowDrag.isEnabled) {\n attributes['aria-grabbed'] = !!tableMeta.rowDrag.dragging[row.id];\n }\n\n // row drop\n const [isDraggedOver, dropTargetProps] = useDropTarget(event => tableMeta.rowDrop.handleDrop?.(event, row.original));\n\n if (tableMeta.rowDrop.isEnabled) {\n attributes.onDragEnter = dropTargetProps?.onDragEnter;\n attributes.onDragLeave = dropTargetProps?.onDragLeave;\n attributes.onDragOver = dropTargetProps?.onDragOver;\n attributes.onDrop = dropTargetProps?.onDrop;\n attributes['data-row-dragged-over'] = isDraggedOver;\n }\n\n // row grouping\n if (table.options.enableGrouping) {\n attributes['data-row-group'] = row.getIsGrouped() ? true : undefined;\n }\n\n // row selection\n if (table.options.enableRowSelection) {\n attributes['data-row-selected'] = row.getIsSelected() || row.getIsAllSubRowsSelected() ? true : undefined;\n }\n\n // row expansion\n let expandedRow;\n\n if (tableMeta.rowExpansion.isEnabled && row.getIsExpanded()) {\n attributes['data-row-expanded'] = true;\n expandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(row.original)?.();\n }\n\n const rowMeta = (row.original as TableRowWithMetaData<TType>)._meta;\n\n if (rowMeta) {\n if (rowMeta.layout) {\n attributes['data-row-meta-layout'] = rowMeta.layout;\n }\n }\n\n const ref = React.useRef<HTMLTableRowElement>(null);\n const expansionRef = React.useRef<HTMLTableRowElement>(null);\n const isExpanded = !!attributes['data-row-expanded'];\n\n useSetVirtualisedRowHeight(measureRow, ref.current, expansionRef.current, isExpanded);\n\n const className = cn('group/row', {\n 'hover:cursor-pointer': typeof attributes.onClick === 'function',\n });\n\n return (\n <>\n <tr {...attributes} className={className} ref={ref}>\n {children}\n {row.getVisibleCells().map((cell, cellIndex) => (\n <Cell key={cell.id} cell={cell} index={cellIndex} renderer={CellRenderer} />\n ))}\n </tr>\n {expandedRow ? (\n <tr data-row-parent-id={row.id} ref={expansionRef}>\n <td className=\"col-span-full\">{expandedRow}</td>\n </tr>\n ) : null}\n </>\n );\n}) as <TType = unknown>(props: TableRowRendererProps<TType>) => JSX.Element;\n\nfunction useSetVirtualisedRowHeight(\n measureRow: (size: number, expansionHeight?: number) => void,\n rowEl: HTMLTableRowElement | null,\n expansionEl: HTMLTableRowElement | null,\n isExpanded: boolean\n) {\n React.useEffect(() => {\n if (rowEl) {\n const height = rowEl.getBoundingClientRect().height;\n\n if (isExpanded && expansionEl) {\n measureRow(height, expansionEl.getBoundingClientRect().height);\n } else {\n measureRow(height);\n }\n }\n }, [isExpanded, rowEl, expansionEl]);\n}\n","import React from 'react';\nimport { ColumnMeta as ReactTableColumnMeta, flexRender } from '@tanstack/react-table';\nimport { getCellAttributes } from '../util';\nimport { TableCellRendererProps } from '../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\n\nexport function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted, ...cellAttributes } = props;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n const isTruncated = !!columnMeta.enableTruncate;\n const value = cell.getValue<TType>();\n\n let content;\n\n if (isInternalColumn(cell.column.id)) {\n content = flexRender(cell.column.columnDef.cell, cell.getContext());\n } else {\n content = columnMeta.renderer?.(value, cell.row.original) ?? value ?? null;\n }\n\n return (\n <MemoedDisplayCell {...cellAttributes} {...attributes} cellRef={cellRef} isTruncated={isTruncated}>\n {content}\n </MemoedDisplayCell>\n );\n}\n\ntype MemoedDisplayCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {\n cellRef: any;\n isTruncated: boolean;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell(props: MemoedDisplayCellProps) {\n const { cellRef, children, isTruncated, ...cellAttributes } = props;\n\n return (\n <td {...cellAttributes} ref={cellRef}>\n {isTruncated ? <span className=\"truncate print:overflow-visible print:whitespace-normal\">{children}</span> : children}\n </td>\n );\n});\n","import React from 'react';\nimport { TableProps, TableRef } from '../../primitives/Table/types';\nimport { useTable, useTableReturnValue } from '../../primitives/Table/Core/useTable';\nimport { DisplayRow } from '../../primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { DisplayCell } from '../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport { ReportProps } from './types';\n\nconst RENDERERS = {\n row: DisplayRow,\n cell: DisplayCell,\n};\n\nexport function useReport<TType>(props: ReportProps<TType>, ref: React.Ref<TableRef>): useTableReturnValue<TType> {\n return useTable<TType>(props as TableProps<TType>, ref, RENDERERS);\n}\n","import React from 'react';\nimport { TableColumnSortDirection } from '../../../../types';\nimport { Icon } from '../../../../../../components/Icon/Icon';\n\ntype SortIndicatorProps = {\n direction: false | TableColumnSortDirection;\n};\n\nconst indicators = {\n asc: <Icon name=\"chevron-up-solid\" className=\"pointer-events-none -my-0.5\" />,\n desc: <Icon name=\"chevron-down-solid\" className=\"pointer-events-none -my-0.5\" />,\n};\n\nexport function SortIndicator(props: SortIndicatorProps) {\n return indicators[props.direction as string] ?? null;\n}\n\nconst ariaSort = {\n asc: 'ascending',\n desc: 'descending',\n};\n\nexport const getAriaSort = direction => ariaSort[direction] ?? 'none';\n\nexport function getSortAttributes(\n canSort: boolean,\n toggleSorting?: (event: unknown) => void,\n sortDirection?: false | TableColumnSortDirection\n) {\n if (!canSort) {\n return {};\n }\n\n const handleClick = (event: React.MouseEvent) => {\n if (event.isDefaultPrevented() || !event.currentTarget.contains(event.target as any)) {\n return;\n }\n\n event.preventDefault();\n toggleSorting?.(event);\n };\n\n return {\n 'aria-sort': ariaSort[sortDirection as any] ?? 'none',\n onClick: handleClick,\n };\n}\n","import React from 'react';\nimport cn from 'clsx';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { TableColumnWidth } from '../../../../types';\n\ntype ResizerProps = {\n headerRef: HTMLTableCellElement | null;\n id: string;\n isResizing: boolean;\n onResize: (event: unknown) => void;\n onResetSize: () => void;\n setColumnSizing: any;\n width?: TableColumnWidth;\n};\n\nexport function Resizer(props: ResizerProps) {\n const { headerRef, id, isResizing, onResetSize, onResize, setColumnSizing, width } = props;\n const { texts } = useLocalization();\n\n // this prevents sort handlers being activated\n const handleClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n // columns set to \"grow\" don't set a width, so if resize is being triggered on a grow column make sure to set a size first\n const handleResize = event => {\n // event.detail >= 2 means a user has clicked more than once quickly.\n if (event.detail >= 2) {\n onResetSize();\n } else {\n if (!Number.isInteger(width) && headerRef) {\n setColumnSizing(sizes => ({\n ...sizes,\n [id]: headerRef.getBoundingClientRect().width,\n }));\n setTimeout(() => {\n onResize?.(event);\n }, 1);\n } else {\n onResize?.(event);\n }\n }\n };\n\n const handle = (\n <div\n className={cn(\n 'invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5',\n 'group-hover/header:visible',\n '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2',\n {\n '!visible': isResizing,\n }\n )}\n onClick={handleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': isResizing,\n 'bg-grey-500 hover:bg-grey-700': !isResizing,\n })}\n />\n </div>\n );\n\n if (isResizing) {\n return handle;\n }\n\n return (\n <Tooltip placement=\"top\" title={texts.table.columns.resize.tooltip}>\n {handle}\n </Tooltip>\n );\n}\n","import * as React from 'react';\nimport { Input, InputProps } from '../Input/Input';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { setInputValueByRef } from '../../utils/input';\n\nexport type SearchInputTexts = {\n button: string;\n clear: string;\n findNext: string;\n findPrevious: string;\n placeholder: string;\n};\n\nexport type SearchInputProps = Omit<InputProps, 'button' | 'icon' | 'prefix' | 'postfix'> & {\n /** Current input value will be passed to the method. In order to get the value, the component must be controlled otherwise value will always be undefined */\n onSearch?: (value: string | number | readonly string[] | undefined) => void;\n};\n\nexport const SearchInput = React.forwardRef(function SearchInput(\n { onSearch, ...props }: SearchInputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const { texts } = useLocalization();\n\n const handleClick = (): void => {\n onSearch?.(internalRef.current?.value ?? '');\n };\n\n const handleCancelClick = (): void => {\n setInputValueByRef(internalRef.current, '');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n handleClick();\n return;\n }\n\n if (event.key === 'Escape') {\n onSearch?.('');\n return;\n }\n };\n\n return (\n <Input\n aria-label={texts.searchInput.placeholder}\n placeholder={texts.searchInput.placeholder}\n {...props}\n onKeyDown={handleKeyDown}\n postfix={\n <>\n {props.disabled || props.readOnly || !props.value ? null : (\n <IconButton\n aria-hidden\n aria-label={texts.searchInput.clear}\n className=\"group-peer-focus:visible group-peer-hover:visible !text-grey-700 invisible mr-0.5 !h-5 !min-h-[theme(spacing.4)] !w-5 !min-w-[theme(spacing.4)] text-xs hover:visible group-hover:visible\"\n icon=\"close\"\n onClick={handleCancelClick}\n rounded\n tabIndex={-1}\n tooltip={texts.searchInput.clear}\n />\n )}\n <IconButton\n aria-label={texts.searchInput.button}\n icon=\"search\"\n className=\"group-peer-focus:!border-transparent group-peer-focus:group-peer-active:!border-transparent -mr-2 !border-transparent !bg-transparent focus:!border-transparent\"\n disabled={props.disabled || props.readOnly}\n onClick={handleClick}\n tabIndex={-1}\n tooltip={texts.searchInput.button}\n />\n </>\n }\n ref={internalRef}\n type=\"search\"\n />\n );\n});\n","import React from 'react';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Popover, PopoverProps } from '../../../../../../components/Popover/Popover';\nimport { SearchInput } from '../../../../../../components/SearchInput/SearchInput';\n\nexport type GotoProps = PopoverProps & {\n onGoto: (query: string) => Promise<void>;\n};\n\nexport function GotoPopover(props: GotoProps) {\n const { onGoto: handleGoto, trigger, ...popoverProps } = props;\n const { texts } = useLocalization();\n\n const handleSearch = value => handleGoto(value);\n\n return (\n <Popover {...popoverProps} anchor={trigger}>\n <Popover.Content>\n <SearchInput\n aria-label={texts.table.columns.menu.gotoRow}\n name=\"query\"\n onSearch={handleSearch}\n onKeyDown={event => event.stopPropagation()}\n placeholder={`${texts.table.columns.menu.gotoRow}...`}\n />\n </Popover.Content>\n </Popover>\n );\n}\n","import React from 'react';\nimport cn from 'clsx';\nimport { IconButton } from '../../../../../../components/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { GotoPopover } from './Goto';\nimport { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nexport type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n console.error(e);\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n 'justify-end overflow-hidden',\n // sizing\n '!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)] group-hover/header:-mr-1',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n","import React from 'react';\nimport {\n TableMeta as ReactTableMeta,\n ColumnMeta as ReactTableColumnMeta,\n Header as ReactTableHeader,\n ColumnPinningPosition as ReactTableColumnPinningPosition,\n flexRender,\n} from '@tanstack/react-table';\nimport cn from 'clsx';\nimport { freezeUptoExternalColumn, isInternalColumn, unfreezeAllExternalColumns } from '../../../useTableManager/util/columns';\nimport { Tooltip } from '../../../../../components/Tooltip/Tooltip';\nimport { SortIndicator, getSortAttributes } from './components/SortIndicator';\nimport {\n TableColumnAlignment,\n TableColumnMenu,\n TableColumnSortDirection,\n TableColumnWidth,\n TableFilterComparator,\n} from '../../../types';\nimport { Resizer } from './components/Resizer';\nimport { HeaderMenu } from './components/Menu';\nimport { getIsPinned, useSetInitialColumnSizing } from './util';\n\nexport type HeaderProps<TType = unknown> = {\n header: ReactTableHeader<TType, unknown>;\n scrollToIndex: (index: number) => void;\n};\n\nexport function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, scrollToIndex } = props;\n\n if (header.column.getIsGrouped()) {\n return null;\n }\n\n const { table } = header.getContext();\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columnMeta = (header.column.columnDef.meta ?? {}) as ReactTableColumnMeta<TType, unknown>;\n\n const isGroup = !!header.subHeaders.length;\n const isPinned = getIsPinned(header);\n\n const canFilter = !header.isPlaceholder && header.column.getCanFilter() && !!table.options.enableColumnFilters;\n const canHide = !header.isPlaceholder && !isGroup && header.column.getCanHide();\n const canMeasureSize = !!table.getRowModel().rows.length;\n const canPin = !header.isPlaceholder && !isGroup && header.column.getCanPin();\n const canResize = !header.isPlaceholder && !isGroup && header.column.getCanResize();\n const canSort = !header.isPlaceholder && !isGroup && header.column.getCanSort();\n const canGoto = canSort && !header.isPlaceholder && !isGroup && tableMeta.rowGoto.isEnabled && !!header.column.getIsSorted();\n\n const hasMenu = !isInternalColumn(header.id) && (canHide || canGoto || canPin || canSort || !!columnMeta.menu);\n\n const sorting = table.getState().sorting;\n const filters = table.getState().columnFilters;\n const search = table.getState().globalFilter;\n\n // passing header or column results in re-renders on scroll, so anything from those objects as memoed props\n const memoedProps: MemoedHeaderProps = {\n align: columnMeta.align,\n canFilter,\n canHide,\n canGoto,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n className: cn('group/header', columnMeta.headerClassName),\n children: flexRender(header.column.columnDef.header, header.getContext()),\n colSpan: header.colSpan,\n customMenu: columnMeta.menu,\n defaultWidth: columnMeta.defaultWidth,\n hasMenu,\n id: header.id,\n isFiltered: header.column.getIsFiltered(),\n index: header.index,\n isGroup,\n isPinned,\n isPlaceholder: header.isPlaceholder,\n offset: header.column.getStart(isPinned),\n scrollToIndex,\n setRowActiveIndex: tableMeta.rowActive.setRowActiveIndex,\n setColumnSizing: table.setColumnSizing,\n tooltip: columnMeta.tooltip,\n width: table.getState().columnSizing[header.id],\n };\n\n if (header.isPlaceholder) {\n const nextHeader = header.headerGroup.headers[header.index + 1];\n memoedProps.className = cn('!bg-white before:!content-none', memoedProps.className, {\n 'after:!content-none': nextHeader?.isPlaceholder,\n });\n }\n\n if (canFilter) {\n memoedProps.onFilter = () => {\n header.column.setFilterValue({ comparator: TableFilterComparator.Contains });\n };\n }\n\n if (canGoto) {\n memoedProps.onGoto = ((query: string) => tableMeta.rowGoto.handleGoto?.(header.id, query, sorting, filters, search)) as (\n query: string\n ) => Promise<number>;\n }\n\n if (canHide) {\n memoedProps.onHide = header.column.getToggleVisibilityHandler();\n }\n\n if (canPin) {\n memoedProps.onPin = (index: number | undefined) => {\n // TODO: this can probably be moved to a feature hook\n table.setColumnPinning(pinningState => {\n return {\n ...pinningState,\n left:\n index === undefined\n ? unfreezeAllExternalColumns(pinningState.left)\n : freezeUptoExternalColumn(\n index,\n table.getAllLeafColumns().map(column => column.id)\n ),\n };\n });\n };\n }\n\n if (canResize) {\n memoedProps.isResizing = header.column.getIsResizing();\n memoedProps.onResize = header.getResizeHandler();\n memoedProps.resetSize = header.column.resetSize;\n }\n\n if (canSort) {\n const handleSortToggle = (sortDirection: TableColumnSortDirection | false) => {\n if (sortDirection === false) {\n header.column.clearSorting();\n } else {\n header.column.toggleSorting(sortDirection === 'desc');\n }\n };\n\n memoedProps.onSort = header.column.getToggleSortingHandler();\n memoedProps.onSortToggle = handleSortToggle;\n memoedProps.sortDirection = header.column.getIsSorted();\n }\n\n return <MemoedHeader key={header.id} {...memoedProps} />;\n}\n\nexport type MemoedHeaderProps = {\n align?: TableColumnAlignment;\n canFilter: boolean;\n canHide: boolean;\n canGoto: boolean;\n canMeasureSize: boolean;\n canPin: boolean;\n canResize: boolean;\n canSort: boolean;\n children: JSX.Element | React.ReactNode;\n className?: string;\n colSpan: number;\n customMenu?: TableColumnMenu;\n defaultWidth?: TableColumnWidth;\n hasMenu: boolean;\n id: string;\n index: number;\n isFiltered: boolean;\n isGroup: boolean;\n isPinned?: ReactTableColumnPinningPosition;\n isPlaceholder: boolean;\n isResizing?: boolean;\n offset?: number;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onResize?: (event: unknown) => void;\n onSort?: (event: unknown) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n resetSize?: () => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n setColumnSizing: any;\n sortDirection?: TableColumnSortDirection | false;\n tooltip?: string;\n width?: TableColumnWidth;\n};\n\nconst MemoedHeader = React.memo(function MemoedHeader(props: MemoedHeaderProps) {\n const {\n align,\n canFilter,\n canGoto,\n canHide,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n children,\n className,\n colSpan,\n customMenu,\n defaultWidth,\n hasMenu,\n id,\n index,\n isFiltered,\n isGroup,\n isPinned,\n isPlaceholder,\n isResizing,\n offset,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onResize: handleResize,\n onSort: handleSort,\n onSortToggle: handleSortToggle,\n resetSize: handleResetSize,\n scrollToIndex,\n setRowActiveIndex,\n setColumnSizing,\n sortDirection,\n tooltip,\n width,\n } = props;\n const [ref, setRef] = React.useState<HTMLTableCellElement | null>(null);\n\n // save column width if none is set\n useSetInitialColumnSizing(id, defaultWidth, width, ref, canMeasureSize, setColumnSizing);\n\n // feature specific styles\n const style: React.CSSProperties = {};\n\n // column groups often span multiple columns\n if (colSpan > 1) {\n style.gridColumn = `span ${colSpan}`;\n }\n\n // pinned columns should be offset from either the left or right\n if (isPinned) {\n style[isPinned] = `${offset}px`;\n }\n\n return (\n <th\n {...getSortAttributes(canSort, handleSort, sortDirection)}\n className={className}\n data-cell-align={isGroup ? 'center' : align}\n data-cell-id={id}\n data-cell-pinned={isPinned ? isPinned : undefined}\n style={style}\n ref={setRef}>\n {isPlaceholder ? null : isInternalColumn(id) ? (\n children\n ) : (\n <Tooltip title={String(tooltip ?? children)} placement=\"top\">\n <span className=\"truncate\">{children}</span>\n </Tooltip>\n )}\n {sortDirection ? <SortIndicator direction={sortDirection} /> : null}\n {hasMenu ? (\n <HeaderMenu\n canFilter={canFilter}\n canGoto={canGoto}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n className={cn({\n 'ml-auto': align !== 'right',\n 'ml-0': align === 'right',\n })}\n customMenu={customMenu}\n index={index}\n isFiltered={isFiltered}\n onFilter={handleFilter}\n onGoto={handleGoto}\n onHide={handleHide}\n onPin={handlePin}\n onSortToggle={handleSortToggle}\n scrollToIndex={scrollToIndex}\n setRowActiveIndex={setRowActiveIndex}\n sortDirection={sortDirection}\n columnId={id}\n />\n ) : null}\n {canResize ? (\n <Resizer\n headerRef={ref}\n id={id}\n isResizing={isResizing as boolean}\n onResize={handleResize as (event: unknown) => void}\n onResetSize={handleResetSize as () => void}\n setColumnSizing={setColumnSizing}\n width={width}\n />\n ) : null}\n </th>\n );\n});\n","import React from 'react';\nimport { Header as ReactTableHeader, ColumnPinningPosition as ReactTableColumnPinningPosition } from '@tanstack/react-table';\nimport { TableColumnWidth } from '../../../types';\nimport { isInternalColumn } from '../../../useTableManager/util/columns';\n\nexport function useSetInitialColumnSizing(\n id: string,\n defaultWidth: TableColumnWidth | undefined,\n width: TableColumnWidth | undefined,\n element: HTMLTableCellElement | null,\n canMeasureSize: boolean,\n setColumnSizing: any\n) {\n React.useLayoutEffect(() => {\n // columns must set a pixel width...\n // otherwise when scrolling through the table, the column widths adjust based on the content\n // of the column, this is because to the virtualisation mounting new rows and unmounting old ones\n if (canMeasureSize && element && !Number.isInteger(width) && !isInternalColumn(id)) {\n const setWidth = () =>\n setColumnSizing(sizes => ({\n ...sizes,\n [id]: element.getBoundingClientRect().width,\n }));\n\n // grow columns need to wait for auto layout to run, otherwise they register the incorrect size\n if (defaultWidth === 'grow') {\n requestAnimationFrame(setWidth);\n } else {\n setWidth();\n }\n }\n }, [element, canMeasureSize, width]);\n}\n\nexport function getIsPinned<TType = unknown>(\n header: ReactTableHeader<TType, unknown>\n): ReactTableColumnPinningPosition | undefined {\n // TODO: Is there a native function that does this check for groups?\n return header.subHeaders?.length\n ? header.subHeaders.find(x => x.column.getIsPinned())?.column.getIsPinned()\n : header.column.getIsPinned();\n}\n","import { useFocusManager } from '@react-aria/focus';\nimport { hasFocusableElement, isElementInteractive } from '../../../../../utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n const focusNext = (arrowNavigation = false) =>\n focusManager.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n const focusFirst = () => focusManager.focusFirst(FOCUS_MANAGER_OPTIONS_TAB);\n const focusLast = () => focusManager.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useAugmentedFocusManager } from './util';\nimport { hasFocusableElement } from '../../../../../utils/dom';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\nimport { TableRef } from '../../../types';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.isDefaultPrevented() || event.isPropagationStopped()) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n const isLastRow = tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1;\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else {\n if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n }\n };\n const handleMouseMove = React.useCallback((event: React.MouseEvent<HTMLTableSectionElement>) => {\n const index = (event.target as HTMLElement)?.closest('tr')?.getAttribute('data-row-index');\n\n if (index) {\n tableMeta.rowActive.setRowHoverIndex(Number.parseInt(index));\n }\n }, []);\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n ref={ref}\n />\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../components/Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { table } = props;\n const { locale, texts } = useLocalization();\n const length = (table.options.meta as ReactTableMeta<TType>).length;\n const currentLength = table.getRowModel().rows.length;\n\n let label;\n let count;\n\n // row selection\n const rowsSelectedLength = table.getSelectedRowModel().rows.length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else if (\n table.getState().columnFilters?.length || // filtered data\n (!!table.getState().globalFilter && table.options.enableGlobalFilter) // search with hide enabled\n ) {\n label = texts.table.footer.summary.records;\n count = (\n <>\n <strong>{currentLength}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else {\n label = texts.table.footer.summary.records;\n count = <strong>{new Intl.NumberFormat(locale).format(length)}</strong>;\n }\n\n return (\n <div\n className=\"sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]\"\n data-taco=\"table-footer-summary\">\n {label}&nbsp;{count}\n </div>\n );\n}\n","import React from 'react';\nimport {\n Header as ReactTableHeader,\n ColumnMeta as ReactTableColumnMeta,\n flexRender,\n Table as ReactTable,\n} from '@tanstack/react-table';\nimport { Summary } from './Summary';\n\nexport type FootProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\nexport function Foot<TType = unknown>(props: FootProps<TType>) {\n const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());\n return (\n <tfoot>\n <tr>\n {nonGroupedHeaders.map((header, index) => (\n <Footer key={header.id} header={header} index={index} />\n ))}\n </tr>\n </tfoot>\n );\n}\n\nexport type FooterProps<TType = unknown> = {\n header: ReactTableHeader<TType, unknown>;\n index: number;\n};\nexport function Footer<TType = unknown>(props: FooterProps<TType>) {\n return <MemoedFooter footer={props.header} index={props.index} />;\n}\n\nexport type MemoedFooterProps<TType = unknown> = {\n footer: ReactTableHeader<TType, unknown>;\n index: number;\n};\nconst MemoedFooter = React.memo(function MemoedFooter<TType = unknown>(props: MemoedFooterProps<TType>) {\n const { footer, index } = props;\n const columnMeta = footer.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n // getIsPinned returns true for split header groups, even if the split group has no pinned sub headers\n const isHeaderGroup = !!footer.subHeaders?.length;\n const isPinned = isHeaderGroup\n ? footer.subHeaders.find(x => x.column.getIsPinned())?.column.getIsPinned()\n : footer.column.getIsPinned();\n\n const style: React.CSSProperties = {};\n\n if (isPinned) {\n // pinned columns should be offset from either the left or right\n style[isPinned] = `${footer.column.getStart(isPinned)}px`;\n }\n\n let content;\n let align;\n\n if (index === 0) {\n align = 'left';\n content = <Summary table={footer.getContext().table} />;\n } else {\n align = columnMeta.align;\n content = footer.isPlaceholder ? null : flexRender(footer.column.columnDef.footer, footer.getContext());\n }\n\n return (\n <td\n key={footer.id}\n data-cell-align={align}\n data-cell-id={footer.id}\n data-cell-pinned={isPinned ? isPinned : undefined}\n style={style}>\n {content}\n </td>\n );\n}) as <TType = unknown>(props: MemoedFooterProps<TType>) => JSX.Element;\n","import React from 'react';\nimport { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, reason, ...attributes } = props;\n\n return (\n <tbody {...attributes} className=\"!auto-rows-fr\">\n <tr className=\"!auto-rows-fr\">\n <td className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n","import React from 'react';\nimport cn from 'clsx';\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Input } from '../Input/Input';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Spinner } from '../Spinner/Spinner';\nimport { Icon } from '../Icon/Icon';\n\ninterface CommonSearchInput2Props\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'> {\n loading?: boolean;\n onChange: (value: string) => void;\n onClear?: () => void;\n settingsContent?: JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n}\n\ninterface BasicSearchInput2Props extends CommonSearchInput2Props {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n}\n\ninterface ComplexSearchInput2Props extends CommonSearchInput2Props {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n}\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClear,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind =\n handleClickFindNext !== undefined &&\n handleClickFindPrevious !== undefined &&\n findCurrent !== undefined &&\n findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n containerRef.current &&\n (containerRef.current === event.relatedTarget || containerRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.blur());\n handleChange('');\n onClear?.();\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n event.stopPropagation();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <IconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"text-grey-700 flex h-4 items-center border-r border-black/[0.25] pr-2\">\n {loading ? <Spinner className=\"h-4 w-4\" /> : `${findCurrent ?? 0}/${findTotal ?? 0}`}\n </span>\n {findCurrent ? (\n <>\n <IconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <IconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n '!pl-7 group-focus-within:!w-72 group-focus-within:yt-focus',\n hasFind\n ? {\n '!w-48': !value,\n '!w-72': value,\n }\n : '!w-48',\n {\n '!wcag-blue-100': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const settingsClassname = cn(\n 'border-grey-300 absolute left-0 right-0 -mt-0.5 hidden top-full group-focus-within:flex focus-within:flex flex-col gap-y-4 rounded-b border border-t-0 bg-white p-3 shadow !pt-[calc(theme(spacing.3)_+_theme(spacing[0.5]))]'\n );\n\n return (\n <div\n className={cn('group relative', { 'z-10 [&_[data-taco=input-container]]:z-10': focused })}\n ref={containerRef}\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n style={{ opacity: 0.999 }}>\n {input}\n <div\n // We need to trigger blur when settings got blured as well, because settings is a part of SearchInput2 component\n onBlur={handleBlur}\n className={settingsClassname}\n onClickCapture={() => internalRef.current?.focus()}\n // tab index is important, it lets the element show as a relatedTarget on event handlers\n tabIndex={-1}>\n {settingsContent}\n </div>\n </div>\n );\n }\n\n return input;\n});\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2';\nimport { Switch } from '../../../../../../../components/Switch/Switch';\nimport { TableRef, TableServerLoadAllState } from '../../../../../types';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const query = table.getState().globalFilter;\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n\n React.useEffect(() => {\n if (tableMeta.search.highlightedColumnIndexes.length) {\n scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);\n }\n }, [tableMeta.search.highlightedColumnIndexes.length]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters);\n }\n };\n\n const handleChange = (query: any) => {\n table.setGlobalFilter(String(query ?? ''));\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.setEnableGlobalFilter(enabled, table);\n requestAnimationFrame(() => ref.current?.focus());\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table.search.excludeUnmatchedResults}\n checked={!!table.options.enableGlobalFilter}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape' && tableMeta.search.currentHighlightColumnIndex !== undefined) {\n const [rowIndex, cellIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowIndex !== undefined && cellIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n `tbody > tr[data-row-index=\"${rowIndex}\"] > td[data-cell-index=\"${cellIndex}\"]`\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n }\n };\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes?.length ?? null}\n loading={tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading}\n name=\"table-search\"\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={texts.table.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n value={query}\n />\n </>\n );\n}\n","import React, { ReactNode } from 'react';\nimport { DndContext, closestCenter } from '@dnd-kit/core';\nimport { SortableListProps } from './List';\nimport { SortableItemId } from './Item';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\n\nexport type SortableContainerProps = {\n children: ReactNode;\n move?: (activeId: SortableItemId, overId: SortableItemId, listId: string) => void;\n reorder: (activeId: SortableItemId, oldListId: string, listId: string) => void;\n};\n\nfunction getContainerById(children, id): SortableListProps | undefined {\n const lists = React.Children.toArray(children).filter(\n (child: any) => child.type.displayName === 'SortableList'\n ) as React.ReactElement<SortableListProps>[];\n const list: React.ReactElement<SortableListProps> | undefined = lists.find(\n (list: React.ReactElement<SortableListProps>) => list.props.id === id\n );\n\n if (list) {\n return list?.props;\n }\n\n return lists.find(l => React.Children.toArray(l.props.children).findIndex((child: any) => child.props.id === id) > -1)?.props;\n}\n\nexport function Container(externalProps) {\n const { children, reorder, move } = externalProps;\n\n function handleDragOver(event): void {\n const { active, over } = event;\n\n if (!active?.id || !over?.id) {\n return;\n }\n\n const activeList = getContainerById(children, active.id);\n const overList = getContainerById(children, over.id);\n\n if (!activeList?.id || !overList?.id || activeList.id === overList.id) {\n return;\n }\n\n move(active.id, activeList?.id, overList.id);\n }\n\n function handleDragEnd(event): void {\n const { active, over } = event;\n\n if (!active?.id || !over?.id) {\n return;\n }\n\n const activeList = getContainerById(children, active.id);\n const overList = getContainerById(children, over.id);\n\n if (!activeList?.id || !overList?.id || activeList.id !== overList.id) {\n return;\n }\n\n reorder(active.id, over.id, overList.id);\n }\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n {...externalProps}\n modifiers={[restrictToVerticalAxis]}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}>\n {children}\n </DndContext>\n );\n}\nContainer.displayName = 'SortableContainer';\n","import React from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport type SortableItemId = string | number;\n\nexport type SortableListItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n disabled?: boolean;\n id: SortableItemId;\n};\n\nconst isFormElement = (element: HTMLElement) => {\n const formElementNodeNames = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'FIELDSET'];\n\n return formElementNodeNames.includes(element.nodeName);\n};\n\nexport function Item(props) {\n const { asChild, children, disabled = false, id } = props;\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ disabled, id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const onPointerDown = event => {\n // allow form components, like checkboxes, to be active\n if (event.currentTarget.contains(event.target) && !isFormElement(event.target)) {\n listeners?.onPointerDown(event);\n }\n };\n\n const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };\n\n if (asChild) {\n return React.cloneElement(children, elProps);\n }\n\n return <div {...elProps}>{children}</div>;\n}\nItem.displayName = 'SortableListItem';\n","import React from 'react';\nimport { useDroppable } from '@dnd-kit/core';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\n\nexport type SortableListProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n id: string;\n};\n\nexport function List(externalProps: SortableListProps) {\n const { children, id, ...props } = externalProps;\n const { setNodeRef } = useDroppable({ id });\n const items = React.Children.toArray(children).map((child: any) => child.props);\n\n return (\n <SortableContext id={id} items={items} strategy={verticalListSortingStrategy}>\n <div {...props} ref={id ? setNodeRef : undefined}>\n {children}\n </div>\n </SortableContext>\n );\n}\nList.displayName = 'SortableList';\n","import React from 'react';\nimport cn from 'clsx';\nimport { Table as ReactTable, Column as ReactTableColumn, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { Popover, PopoverProps } from '../../../../../../../components/Popover/Popover';\nimport { Input } from '../../../../../../../components/Input/Input';\nimport * as SortablePrimitive from '../../../../../../Sortable/Sortable';\nimport { Icon } from '../../../../../../../components/Icon/Icon';\nimport { Checkbox } from '../../../../../../../components/Checkbox/Checkbox';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { ensureOrdering, isInternalColumn } from '../../../../../useTableManager/util/columns';\n\ntype ColumnProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n column: ReactTableColumn<TType, unknown>;\n draggable?: boolean;\n};\n\nconst Column = React.forwardRef(function Column<TType = unknown>(props: ColumnProps<TType>, ref: React.Ref<HTMLDivElement>) {\n const { column, draggable = false, ...dragAttributes } = props;\n const canHide = column.getCanHide();\n\n const className = cn('group/column flex items-center gap-x-2 rounded py-1 px-2', {\n 'hover:bg-grey-200': canHide || draggable,\n 'hover:cursor-pointer': canHide,\n 'active:cursor-move active:bg-grey-300': draggable,\n });\n\n const attributes = draggable ? dragAttributes : undefined;\n const isVisible = column.getIsVisible();\n const parentHeader = column.parent?.columnDef?.header;\n\n return (\n <div {...attributes} className={className} onClick={() => column.toggleVisibility(!isVisible)} ref={ref}>\n {draggable ? <Icon name=\"drag\" className=\"text-grey-500 group-hover/column:text-grey-700 -mx-2 !h-5\" /> : null}\n <span className=\"flex-grow truncate\">\n {column.columnDef.meta?.header}\n {parentHeader ? <span className=\"italic\">({parentHeader})</span> : null}\n </span>\n {canHide ? <Checkbox checked={isVisible} onChange={() => column.toggleVisibility(!isVisible)} /> : null}\n </div>\n );\n});\n\nexport type HideOrOrderPopoverProps<TType = unknown> = PopoverProps & {\n table: ReactTable<TType>;\n};\n\nexport function HideOrOrderPopover<TType = unknown>(props: HideOrOrderPopoverProps<TType>) {\n const { table, trigger, ...popoverProps } = props;\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const allColumns = table.getAllLeafColumns();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columns = React.useMemo(\n () =>\n allColumns\n .filter(column => !isInternalColumn(column.id))\n .filter(column =>\n query?.length\n ? column.columnDef.meta?.header.toLowerCase().includes(query.toLowerCase()) ||\n column.parent?.columnDef.meta?.header.toLowerCase().includes(query.toLowerCase())\n : true\n ),\n [allColumns, query]\n );\n\n const listClassName = 'flex max-h-64 flex-col gap-y-px overflow-auto';\n\n const handleReorder = (activeId, overId) => {\n if (columns.find(column => column.id === overId && column.columnDef.meta?.enableOrdering === false)) {\n return;\n }\n\n const currentOrder = table.getState().columnOrder;\n const nextOrder = ensureOrdering(\n allColumns,\n SortablePrimitive.arrayMove(\n currentOrder,\n currentOrder.findIndex(c => c === activeId),\n currentOrder.findIndex(c => c === overId)\n )\n );\n\n // update column order\n table.setColumnOrder(nextOrder);\n\n // update pinned columns - because we do index based \"freezing\" instead of just pinning, pinned state needs updating to align with ordering\n if (table.getIsSomeColumnsPinned()) {\n const currentFrozenIndex = table.getState().columnPinning.left?.length ?? -1;\n\n if (currentFrozenIndex > -1) {\n table.setColumnPinning(currentPinning => ({\n ...currentPinning,\n left: nextOrder.slice(0, currentFrozenIndex),\n }));\n }\n }\n };\n\n return (\n <Popover {...popoverProps} anchor={trigger}>\n <Popover.Content>\n <div className=\"flex min-w-[100px] max-w-sm flex-col gap-2\">\n {table.options.enableHiding ? (\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table.columnSettings.search}\n value={query}\n />\n ) : null}\n {tableMeta.columnOrdering.isEnabled && columns.length && !query?.length ? (\n <SortablePrimitive.Container reorder={handleReorder}>\n <SortablePrimitive.List id=\"columns\" className={listClassName}>\n {columns\n .filter(column => !column.getIsGrouped())\n .map(column => (\n <SortablePrimitive.Item\n key={column.id}\n id={column.id}\n disabled={!column.columnDef.meta?.enableOrdering}\n asChild>\n <Column column={column as any} draggable={column.columnDef.meta?.enableOrdering} />\n </SortablePrimitive.Item>\n ))}\n </SortablePrimitive.List>\n </SortablePrimitive.Container>\n ) : (\n <div className={listClassName}>\n {columns.length\n ? columns.map(column => <Column column={column as any} key={column.id} />)\n : texts.table.columnSettings.noResults}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { Menu } from '../../../../../../../components/Menu/Menu';\nimport { HideOrOrderPopover } from './HideOrOrderPopover';\nimport { getSettings } from '../../../../../useTableManager/util/settings';\nimport { FontSizes } from '../../../../../../../types';\nimport { IconName } from '../../../../../../../components/Icon/Icon';\nimport { TableCustomSettingsRenderer } from '../../../../../types';\n\nexport type SettingsProps<TType = unknown> = {\n customSettings?: TableCustomSettingsRenderer;\n table: ReactTable<TType>;\n};\n\nexport function Settings<TType = unknown>(props: SettingsProps<TType>) {\n const { customSettings, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const canHideOrOrder = table.options.enableHiding || tableMeta.columnOrdering.isEnabled;\n const canChangeFontSize = tableMeta.fontSize.isEnabled;\n const canChangeRowHeight = tableMeta.rowHeight.isEnabled;\n\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'columnSettings': {\n if (canHideOrOrder) {\n popoverElement = popoverProps => (\n <HideOrOrderPopover {...popoverProps} open onChange={handleClosePopover} table={table} />\n );\n }\n }\n }\n }\n\n return (\n <IconButton\n aria-label={texts.table.otherOptions.tooltip}\n icon=\"sliders\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <Menu {...menuProps}>\n <Menu.Content align=\"end\">\n {canHideOrOrder ? (\n <Menu.Item icon=\"columns\" onClick={() => setPopover('columnSettings')}>\n {texts.table.columnSettings.button}\n </Menu.Item>\n ) : null}\n {canHideOrOrder && (canChangeRowHeight || canChangeFontSize || customSettings) ? (\n <Menu.Separator />\n ) : null}\n {canChangeRowHeight ? (\n <Menu.Item\n icon={`height-${tableMeta.rowHeight.height}` as IconName}\n subMenu={() => <RowHeightMenuItem tableMeta={tableMeta} />}>\n {texts.table.rowHeight.tooltip}\n </Menu.Item>\n ) : null}\n {canChangeFontSize ? (\n <Menu.Item icon=\"font-size\" subMenu={() => <FontSizeMenuItem tableMeta={tableMeta} />}>\n {texts.table.fontSize.tooltip}\n </Menu.Item>\n ) : null}\n\n {customSettings ? (\n <>\n {canChangeRowHeight || canChangeFontSize ? <Menu.Separator /> : null}\n {customSettings(getSettings(table)).map((item, index) => (\n <React.Fragment key={index}>{item}</React.Fragment>\n ))}\n </>\n ) : null}\n </Menu.Content>\n </Menu>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n tooltip={texts.table.otherOptions.tooltip}\n />\n );\n}\n\nfunction FontSizeMenuItem<TType = unknown>({ tableMeta }: { tableMeta: ReactTableMeta<TType> }) {\n const { texts } = useLocalization();\n\n return (\n <Menu.SubMenu>\n <Menu.RadioGroup onChange={tableMeta.fontSize.setSize as any} value={tableMeta.fontSize.size}>\n <Menu.RadioGroup.Item value={FontSizes.small}>{texts.table.fontSize.sizes.small}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value={FontSizes.medium}>{texts.table.fontSize.sizes.medium}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item disabled={tableMeta.rowHeight.height === 'short'} value={FontSizes.large}>\n {texts.table.fontSize.sizes.large}\n </Menu.RadioGroup.Item>\n </Menu.RadioGroup>\n </Menu.SubMenu>\n );\n}\n\nfunction RowHeightMenuItem<TType = unknown>({ tableMeta }: { tableMeta: ReactTableMeta<TType> }) {\n const { texts } = useLocalization();\n\n return (\n <Menu.SubMenu>\n <Menu.RadioGroup onChange={tableMeta.rowHeight.setHeight as any} value={tableMeta.rowHeight.height}>\n <Menu.RadioGroup.Item value=\"short\">{texts.table.rowHeight.sizes.short}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"medium\">{texts.table.rowHeight.sizes.medium}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"tall\">{texts.table.rowHeight.sizes.tall}</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"extra-tall\">{texts.table.rowHeight.sizes.extraTall}</Menu.RadioGroup.Item>\n </Menu.RadioGroup>\n </Menu.SubMenu>\n );\n}\n","export const isAriaSelectionKey = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Tab') {\n return true;\n }\n\n return false;\n};\n\nexport const isAriaDirectionKey = (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Home' || event.key === 'End') {\n return true;\n }\n\n return false;\n};\n","import React from 'react';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { isAriaDirectionKey } from '../../../utils/aria';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndex: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const lastLengthRef = React.useRef(0);\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector(`[aria-current]`)?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current) {\n if (option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndex = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && options.length !== lastLengthRef.current) {\n let selected = internalRef.current.querySelectorAll(`[aria-current=\"true\"]`);\n\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll(`[aria-selected]`);\n }\n\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n\n lastLengthRef.current = options.length;\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const option = event.target as HTMLElement;\n\n if (option.matches(querySelector)) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options\n .item(activeIndex)\n ?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n } else if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse) {\n if (nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n } else if (nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n","import React from 'react';\nimport { Listbox2Value } from '../types';\n\nexport type Listbox2ContextProps = {\n disabled: boolean;\n readOnly: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nexport const Listbox2Context = React.createContext({} as Listbox2ContextProps);\nexport const useListbox2Context = () => React.useContext(Listbox2Context);\n","import React from 'react';\nimport { useId } from '../../../hooks/useId';\nimport * as CollectionPrimitive from '../../Collection/Collection';\nimport { Listbox2Value } from '../types';\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value) => {\n setValue(value => {\n if (Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n } else if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n } else if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n","import React from 'react';\nimport { useId } from '../../../hooks/useId';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { Listbox2OptionValue } from '../types';\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: Listbox2OptionValue;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Listbox2OptionProps>(function Listbox2Option(props, ref) {\n const { disabled, id: nativeId, title, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n } else {\n setValue(value);\n }\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n // UX requirement: if tab key is pressed and the current option is selected then keydown event is ignored\n else if (event.key === 'Tab' && selected) {\n return;\n } else if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n","import React from 'react';\n\nexport type Listbox2GroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Group = React.forwardRef<HTMLDivElement, Listbox2GroupProps>(function Listbox2Group(props, ref) {\n const [labelledById, setLabelledById] = React.useState<string>();\n\n return (\n <Listbox2GroupContext.Provider value={{ setLabelledById }}>\n <div {...props} aria-labelledby={labelledById} ref={ref} role=\"group\" />\n </Listbox2GroupContext.Provider>\n );\n});\n\nexport type Listbox2GroupContextProps = {\n setLabelledById: (id: string) => void;\n};\n\nexport const Listbox2GroupContext = React.createContext({} as Listbox2GroupContextProps);\nexport const useListbox2GroupContext = () => React.useContext(Listbox2GroupContext);\n","import React from 'react';\nimport { useId } from '../../../hooks/useId';\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName, IconProps } from '../Icon/Icon';\nimport { Color } from '../../types';\nimport { getSubtleColorShadeClasses } from '../../utils/tailwind';\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 getSubtleColorShadeClasses(color),\n props.className\n );\n\n return (\n <span {...otherProps} className={className} ref={ref} data-taco=\"tag\">\n <span className=\"truncate px-2\" ref={textRef}>\n {icon ? (\n typeof icon === 'string' ? (\n <Icon name={icon} className=\"-ml-1 -mt-0.5 mr-1 !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","import cn from 'clsx';\nimport { FontSize, FontSizes } from '../../types';\n\nexport const createOptionClassName = (shouldPauseHoverState = false) =>\n cn(\n 'group mb-px flex w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none !justify-normal',\n\n {\n 'hover:wcag-grey-200': !shouldPauseHoverState,\n }\n );\n\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\n\nexport const getFontSize = (fontSize?: FontSize) => {\n switch (fontSize) {\n case FontSizes.small:\n return 'text-xs';\n\n case FontSizes.large:\n return 'text-base';\n\n case FontSizes.medium:\n default:\n return 'text-sm';\n }\n};\n","import React from 'react';\nimport { CollectionRef } from '../../../primitives/Collection/Collection';\nimport {\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n Select2CreateDialogRenderer,\n} from '../types';\nimport { FontSize } from '../../../types';\n\nexport type Select2ContextProps = {\n createDialog?: Select2CreateDialogRenderer;\n createTriggerText?: string;\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef>;\n multiple: boolean;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: (pause: boolean) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n fontSize?: FontSize;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n","import React from 'react';\nimport cn from 'clsx';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n // Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.\n if (event.key === 'Escape' || event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const popoverContentKeyDown = event => {\n // Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,\n // to avoid 'Tab' key execution on Option component and closing the dropdown.\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps}>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n onKeyDown={popoverContentKeyDown}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n","const mobiles = /iPhone|iPad|iPod|Android/i;\n\nexport const isMobileDevice = (navigator: Navigator | undefined) => !!navigator?.userAgent && mobiles.test(navigator.userAgent);\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createOptionClassName, getFontSize } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { EditPopover } from './Edit';\nimport { isMobileDevice } from '../../../utils/device';\nimport { Color } from '../../../types';\nimport { FontSize } from '../../../types';\n\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children' | 'prefix'> & {\n children: string;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | JSX.Element;\n postfix?: IconName | JSX.Element;\n textValue?: string;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize,\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), getFontSize(fontSize), cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (!multiple) {\n setOpen(false);\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event)) {\n if (!multiple || event.key === 'Tab') {\n setOpen(false);\n }\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? popoverProps => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : null}\n\n {isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? <span className=\"text-grey-700 -mt-1.5 mb-1.5 text-xs\">{description}</span> : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? typeof postfix === 'string' ? <Icon name={postfix} /> : postfix : null}\n </span>\n </span>\n </>\n )}\n {popover ? (\n <IconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'group-aria-current:visible invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black/[.08] focus:!shadow-none group-hover:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndex(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createCollectionClassName } from '../utilities';\nimport { Select2OptionProps } from './Option';\n\nexport type Select2GroupProps = Omit<ListboxPrimitive.Listbox2GroupProps, 'children'> & {\n children: React.ReactElement<Select2OptionProps>[];\n hasSeparator?: boolean;\n heading?: string;\n};\n\nexport const Group = React.forwardRef<HTMLDivElement, Select2GroupProps>(function Select2Group(props, ref) {\n const { children, heading, hasSeparator, ...attributes } = props;\n const className = cn(\n createCollectionClassName(),\n {\n \"last:after:content-none after:content-[''] after:bg-grey-300 after:mx-2 after:my-1 after:h-px\":\n hasSeparator && children.length,\n },\n props.className\n );\n\n return (\n <ListboxPrimitive.Group {...attributes} className={className} ref={ref}>\n <ListboxPrimitive.Title className=\"sticky top-0 bg-white px-2 font-bold leading-8\">{heading}</ListboxPrimitive.Title>\n {children}\n </ListboxPrimitive.Group>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\n\nexport type Select2TitleProps = ListboxPrimitive.Listbox2TitleProps;\n\nexport const Title = React.forwardRef<HTMLDivElement, Select2TitleProps>(function Select2Title(props, ref) {\n const className = cn('flex items-center text-xs pl-2 h-8', props.className);\n return <ListboxPrimitive.Title {...props} className={className} ref={ref} />;\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { getFontSize } from '../utilities';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n emptyValue?: Select2OptionValue;\n placeholder?: string;\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nconst Placeholder = ({ disabled, readOnly, ...props }) => {\n if (readOnly) {\n return null;\n }\n return <div {...props} className={cn({ 'text-grey-700': disabled, 'text-grey-500': !disabled })} />;\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onClick, tabIndex = 0, ...otherProps } = props;\n const { disabled, fontSize, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'px-1.5 h-fit',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly })\n .replace('w-full', '')\n .replace('px-2', ''),\n getFontSize(fontSize),\n {\n 'select-text': readOnly,\n 'w-full': !props.className?.includes('w-'),\n },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n // select the value text if the select is readonly\n const handleFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled ? -1 : tabIndex}\n type=\"button\">\n {children}\n {readOnly ? null : <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"pointer-events-none -mr-1 ml-auto\" />}\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue; placeholder?: string };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, emptyValue, value, placeholder, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (placeholder && currentValue === undefined) {\n output = (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n );\n } else if (currentValue) {\n if (tags && emptyValue !== value) {\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.prefix}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n } else {\n output = (\n <>\n {currentValue.props.prefix ? (\n typeof currentValue.props.prefix === 'string' ? (\n <Icon name={currentValue.props.prefix} className=\"mr-1 !h-5 !w-5\" />\n ) : (\n currentValue.props.prefix\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <div className={contentClassName}>{output}</div>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, emptyValue: _, values = [], placeholder, ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const buttonRef = useMergedRef<HTMLButtonElement>(ref);\n\n const valuesAsChildren = values\n .map(value => children.find(c => c.props.value === value))\n .filter(c => !!c) as React.ReactElement<Select2OptionProps>[];\n\n const forwardClick = event => {\n event.preventDefault();\n buttonRef.current?.click();\n };\n\n let content;\n let { className } = buttonProps;\n\n if (open) {\n className = cn('!absolute z-20 !h-fit', buttonProps.className);\n content = (\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\" onClick={forwardClick}>\n <div className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map(child => (\n <Tag\n key={String(child.props.value)}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n onDelete={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ))\n )}\n </div>\n </ScrollArea>\n );\n } else {\n content = <MultipleValue onClick={forwardClick} valuesAsChildren={valuesAsChildren} placeholder={placeholder} />;\n }\n\n return (\n <div\n className=\"relative inline-flex h-fit flex-grow\"\n data-taco=\"select2-container\"\n style={{ width: open ? buttonRef.current?.offsetWidth : undefined }}>\n <Button {...buttonProps} className={className} ref={buttonRef}>\n {content}\n </Button>\n </div>\n );\n});\n\ntype MultipleValueProps = Omit<Select2TriggerProps, 'value' | 'children'> & {\n valuesAsChildren: React.ReactElement<Select2OptionProps>[];\n placeholder?: string;\n onClick?: (event: any) => void;\n};\n\nconst MultipleValue = ({ onClick, valuesAsChildren, placeholder }: MultipleValueProps) => {\n const { disabled, readOnly, tags } = useSelect2Context();\n const [contentRef, setContentRef] = React.useState<HTMLDivElement | null>(null);\n const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;\n\n return (\n <div className=\"relative flex w-full items-center gap-1 overflow-hidden\" onClick={onClick}>\n <div className=\"flex flex-1 gap-1 truncate\" ref={ref => setContentRef(ref)}>\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map((child, index) => {\n const tag = (\n <Tag\n key={String(child.props.value)}\n className={cn('cursor-pointer', {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n })}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={String(child.props.value)} title={String(child.props.children)}>\n {tag}\n </Tooltip>\n );\n }\n\n return tag;\n })\n )}\n </div>\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(child.props.children) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </div>\n );\n};\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n","import React from 'react';\nimport { usePreviousValue } from '../hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current!;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${v}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n","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","import React from 'react';\nimport cn from 'clsx';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Input, InputProps } from '../../Input/Input';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { isAriaSelectionKey } from '../../../utils/aria';\n\nexport type Select2SearchProps = InputProps & {\n onTabKeyPress: () => void;\n};\n\nexport const Search = React.forwardRef<HTMLInputElement, Select2SearchProps>(function ListboxSearch(props, ref) {\n const { onTabKeyPress, ...otherProps } = props;\n const { listboxRef, searchQuery, setSearchQuery, setValidationError, validationError, setOpen } = useSelect2Context();\n\n const handleChange = event => {\n if (validationError) {\n setValidationError(undefined);\n }\n\n setSearchQuery(event.target.value);\n };\n\n const handleKeyDown = event => {\n // space is an aria selection key, so we have to remove it to allow spaces\n if (event.key === ' ') {\n return;\n }\n\n // Select2 should close dropdown and receive focus, when user press Tab while searching (UX requirement to support better keyboard navigation)\n if (event.key === 'Tab') {\n setOpen(false);\n onTabKeyPress();\n }\n\n if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n // forward navigation events onto the underlying collection - we want arrow keys to work from inside the filter input\n listboxRef?.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n return;\n }\n };\n\n return (\n <Field\n className={cn('mx-1.5 mb-1.5 !min-h-fit ', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n {...otherProps}\n aria-hidden\n autoFocus\n invalid={!!validationError}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={ref}\n value={searchQuery}\n />\n </Field>\n );\n});\n","import React from 'react';\nimport { Select2OptionProps } from '../components/Option';\nimport { Select2GroupProps } from '../Select2';\nimport { Select2Children, Select2OptionValue, Select2Value } from '../types';\n\nexport const isGroup = (\n child: React.ReactElement<Select2OptionProps> | React.ReactElement<Select2GroupProps>\n): child is React.ReactElement<Select2GroupProps> =>\n !!(child.props as Select2GroupProps).heading || !!(child.props as Select2GroupProps).hasSeparator;\n\nexport type useChildrenArgs = {\n children: Select2Children;\n emptyValue?: Select2OptionValue;\n multiple?: boolean;\n open?: boolean;\n setValue: (nextValue: Select2OptionValue) => void;\n value?: Select2Value;\n};\nexport const useChildren = ({ children: initialChildren, emptyValue, multiple, open, setValue, value }: useChildrenArgs) => {\n const [searchQuery, setSearchQuery] = React.useState<string>('');\n\n // flatten children that might be inside groups\n // support empty value - probably a more elegant way to achieve this\n const flattenedChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n const initial: React.ReactElement<Select2OptionProps>[] =\n initialChildren\n ?.map(child => {\n if (isGroup(child)) {\n return (child as React.ReactElement<Select2GroupProps>).props.children;\n }\n // Since we are filtering out groups just above, then casting child to React.ReactElement<Select2OptionProps>, to avoid type inconsistency errors.\n return child as React.ReactElement<Select2OptionProps>;\n })\n .flatMap(c => c) || [];\n\n return initial;\n }, [initialChildren]);\n\n // set an initial value if none is set, we have to trigger state updates for controlled components\n React.useEffect(() => {\n if (!multiple && emptyValue === undefined && value === undefined) {\n setValue(flattenedChildren?.[0]?.props.value);\n }\n }, []);\n\n React.useEffect(() => {\n if (!open) {\n setSearchQuery('');\n }\n }, [open]);\n\n // apply filtering\n const filteredChildren = React.useMemo(() => {\n return initialChildren\n .map(child => {\n if (isGroup(child)) {\n const filteredGroupChildren = (child as React.ReactElement<Select2GroupProps>).props.children.filter(\n groupChild => filterOption(groupChild as React.ReactElement<Select2OptionProps>, searchQuery)\n );\n return filteredGroupChildren.length ? React.cloneElement(child, {}, filteredGroupChildren) : null;\n }\n\n return filterOption(child as React.ReactElement<Select2OptionProps>, searchQuery) ? child : null;\n })\n .filter(child => !!child) as Select2Children;\n }, [flattenedChildren, searchQuery]);\n\n return {\n flattenedChildren,\n filteredChildren,\n searchQuery,\n setSearchQuery,\n };\n};\n\nconst filterOption = (child: React.ReactElement<Select2OptionProps>, searchQuery: string) => {\n if (child.props.textValue?.toLowerCase().includes(searchQuery.toLowerCase())) {\n return true;\n }\n\n if (child.props.description?.toLowerCase().includes(searchQuery.toLowerCase())) {\n return true;\n }\n\n return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { Tag } from '../../Tag/Tag';\nimport { createOptionClassName } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS } from '../../../utils/tailwind';\nimport { Select2CreateHandler } from '../types';\nimport { Icon } from '../../Icon/Icon';\nimport { Button } from '../../Button/Button';\n\nexport type CreateProps = {\n onCreate: Select2CreateHandler;\n options: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const getNextColor = (options: React.ReactElement<Select2OptionProps>[]): Color | undefined => {\n let occurrences = {};\n AVAILABLE_COLORS.filter(color => color !== 'transparent').forEach((color: Color) => {\n occurrences = { ...occurrences, [color]: 0 };\n });\n\n options.reduce((occurrences, option) => {\n if (option.props.color) {\n occurrences[option.props.color] = occurrences[option.props.color] ? occurrences[option.props.color] + 1 : 1;\n }\n return occurrences;\n }, occurrences);\n\n const colors = Object.keys(occurrences);\n\n if (colors.length) {\n return colors.sort((a, b) => occurrences[a] - occurrences[b])[0] as Color;\n }\n\n return undefined;\n};\n\nexport const Create = (props: CreateProps) => {\n const { onCreate: handleCreate, options } = props;\n const { multiple, searchQuery, setOpen, setSearchQuery, setValidationError, setValue, createDialog, createTriggerText } =\n useSelect2Context();\n const { texts } = useLocalization();\n\n // determine what the next color tag should be based on color occurences\n const nextColor = React.useMemo(() => getNextColor(options), [options]);\n\n const onCreateDialogClose = React.useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n if (!createDialog && !searchQuery) {\n return null;\n }\n\n const create = async (value?: string | unknown) => {\n try {\n const item = await handleCreate(value, nextColor);\n setValue(item.value);\n\n if (multiple) {\n setSearchQuery('');\n } else {\n setOpen(false);\n }\n } catch (error) {\n setValidationError(error as Error);\n }\n };\n\n const handleKeyDown = event => {\n if (isAriaSelectionKey(event)) {\n event.currentTarget.click();\n }\n };\n\n const className = cn(createOptionClassName(), {\n '!w-[calc(100%_-_theme(spacing.3))] ml-1.5': !createDialog,\n 'leading-normal border-grey-300 h-9 border-t py-2.5 px-4 !-mb-1.5': !!createDialog,\n });\n\n const creationOptions = createDialog\n ? {\n dialog: props => createDialog({ ...props, onClose: onCreateDialogClose }, searchQuery, create),\n }\n : {\n onClick: () => create(searchQuery),\n };\n\n const createText = createTriggerText || texts.select2.create;\n\n return (\n <Button\n className={className}\n {...creationOptions}\n onKeyDown={handleKeyDown}\n appearance={createDialog ? 'discrete' : 'default'}>\n <span className=\"flex items-center gap-1.5\">\n {createDialog ? (\n <>\n <Icon className=\"text-xs\" name=\"circle-plus\" /> {createText}\n </>\n ) : (\n <>\n {createText}\n <Tag color={nextColor} className=\"cursor-pointer\">\n {searchQuery}\n </Tag>\n </>\n )}\n </span>\n </Button>\n );\n};\n","import React from 'react';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { Select2GroupProps } from './Group';\nimport { Select2OptionProps } from './Option';\n\nexport type Select2CollectionProps = {\n children: Array<React.ReactElement<Select2OptionProps> | React.ReactElement<Select2GroupProps>>;\n};\n\nexport const Collection = (props: Select2CollectionProps) => {\n const { children } = props;\n\n // max-h-[11.5rem] = is 5.5 options + spacing between them. Option height is 2rem, spacing 0.125. In total it's 11.5.\n return <ScrollArea className=\"flex max-h-[11.5rem] w-full flex-col gap-y-0.5 px-1.5\">{children}</ScrollArea>;\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport {\n Select2Children,\n Select2CreateHandler,\n Select2CreateDialogRenderer,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { Option, Select2OptionProps } from './components/Option';\nimport { Group, Select2GroupProps } from './components/Group';\nimport { Select2TitleProps, Title } from './components/Title';\nimport { Select2Context } from './components/Context';\nimport { createCollectionClassName, getFontSize } from './utilities';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { Trigger } from './components/Trigger';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport { Search } from './components/Search';\nimport { isGroup, useChildren } from './hooks/useChildren';\n\nimport { Create } from './components/Create';\nimport { Collection } from './components/Collection';\nimport { CollectionRef } from '../../primitives/Collection/Collection';\nimport { useLocalization } from '../Provider/Localization';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { getNextFocussableElement, isElementInsideTable3OrReport } from '../../utils/dom';\nimport { FontSize, FontSizes } from '../../types';\nimport { Button } from '../Button/Button';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: Select2Value;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Select2OptionValue;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 is loading the data **/\n loading?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: Select2Value) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: Select2Value;\n /** Create dialog component, if specified, then create button will become always visible in the bottom of options dropdown,\n * when clicked, it will open create dialog and wait for 'onCreate' handler to be triggered from the dialog */\n createDialog?: Select2CreateDialogRenderer;\n /** Create button text */\n createTriggerText?: string;\n};\ntype Select2PropsWithStatics = React.ForwardRefExoticComponent<Select2Props & React.RefAttributes<HTMLButtonElement>> & {\n Option: React.ForwardRefExoticComponent<Select2OptionProps>;\n Group: React.ForwardRefExoticComponent<Select2GroupProps>;\n Title: React.ForwardRefExoticComponent<Select2TitleProps>;\n};\n\nconst Select2 = React.forwardRef<HTMLButtonElement, Select2Props>(function Select2(props, ref) {\n const {\n children: initChildren,\n defaultValue: defaultProp,\n disabled = false,\n emptyValue = undefined,\n fontSize,\n highlighted = false,\n invalid = false,\n loading,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n placeholder,\n readOnly = false,\n tags = false,\n value: prop,\n createDialog,\n createTriggerText,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n if (emptyOption) {\n return [emptyOption, ...initChildren] as Select2Children;\n }\n return initChildren;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [tabTriggeredClose, setTabTriggeredClose] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControllableState<Select2Value>({\n // uncontrolled\n defaultProp,\n // controlled\n onChange,\n prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(multiple, _setValue);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n createDialog,\n createTriggerText,\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (isElementInsideTable3OrReport(event.currentTarget)) {\n return;\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n };\n\n let handleBlur;\n\n if (otherProps.onBlur) {\n // we might be focusing on an input or something inside the dropdown that was triggered by the select\n // so see if the element gaining focus is inside a portal and look up its controller\n // if we don't do this, things like validate on blur occur while simply opening the select\n handleBlur = (event: React.FocusEvent<HTMLButtonElement>) => {\n const elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (!portalId || event.currentTarget.getAttribute(`aria-controls`) !== portalId) {\n otherProps.onBlur?.(event);\n }\n };\n }\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n }\n };\n\n const handleCloseAutoFocus = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (tabTriggeredClose) {\n const nextFocussableElement = getNextFocussableElement(internalRef.current);\n\n if (nextFocussableElement) {\n // UX requirement: move focus to the next focussable element when tab key is pressed to select the value\n nextFocussableElement.focus();\n // Reset the tabTriggeredClose state\n setTabTriggeredClose(false);\n }\n } else {\n internalRef.current?.focus();\n }\n };\n\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.props.value)\n : filteredChildren\n .map(child =>\n isGroup(child)\n ? Array.isArray(child.props.children) && child.props.children.map(subChild => subChild.props.value)\n : child.props.value\n )\n .flatMap(c => c) || [];\n\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option as string));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n } else {\n return texts.select2.selectAll;\n }\n } else if (areAllSelected) {\n return texts.select2.deselectAllResults;\n } else {\n return texts.select2.selectAllResults;\n }\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue as string));\n setValue(nextValue);\n }\n };\n\n const className = cn('border-grey-300 rounded border bg-white py-1.5 shadow-md outline-none', createCollectionClassName());\n const isInlineCreation = onCreate && !createDialog;\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger asChild data-taco=\"Select2\">\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n emptyValue={emptyValue}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={internalRef}>\n {flattenedChildren}\n </Trigger>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n asChild\n align=\"start\"\n onOpenAutoFocus={() => {\n internalRef.current?.focus();\n }}\n onCloseAutoFocus={handleCloseAutoFocus}\n sideOffset={4}\n tabIndex={-1}>\n <div className={className} style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}>\n {flattenedChildren.length > 0 || isInlineCreation ? (\n <>\n <Search\n placeholder={isInlineCreation ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n onTabKeyPress={() => setTabTriggeredClose(true)}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <Button\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </Button>\n <div className=\"border-grey-300 mx-3 rounded border-t\" />\n </>\n )}\n </>\n ) : null}\n {loading ? (\n <span className={cn('text-grey-700 flex items-center italic', fontSize && getFontSize(fontSize))}>\n <span>\n <Spinner\n delay={0}\n className={cn('ml-3 mr-2 mt-1.5 h-5 w-5', {\n '!mt-1 !h-3.5 !w-3.5': fontSize === FontSizes.small,\n '!h-4 !w-4': fontSize === FontSizes.medium,\n '!h-5 !w-5': fontSize === FontSizes.large,\n })}\n />\n </span>\n <span>{texts.listbox.loading}</span>\n </span>\n ) : flattenedChildren.length <= 0 ? (\n <div className=\"text-grey-700 -mt-0.5 flex h-8 items-center px-2\" role=\"presentation\">\n {texts.listbox.empty}\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n tabIndex={-1}\n value={value}>\n {searchQuery === '' ? (\n <Collection>{initialChildren}</Collection>\n ) : (\n <Collection>{filteredChildren}</Collection>\n )}\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}) as Select2PropsWithStatics;\nSelect2.Option = Option;\nSelect2.Group = Group;\nSelect2.Title = Title;\n\nconst ControlledHiddenField = props => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} value={bubbleValue}>\n {emptyValue !== undefined ? <option value={emptyValue} /> : null}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\nSelect2.displayName = 'Select2';\n\nexport { Select2 };\n\nexport type {\n Select2Texts,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n};\n","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.current]);\n\n return isFormControl;\n};\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\nimport { Dialog } from '../../../../../../../components/Dialog/Dialog';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { Checkbox } from '../../../../../../../components/Checkbox/Checkbox';\nimport { Group } from '../../../../../../../components/Group/Group';\nimport { Button } from '../../../../../../../components/Button/Button';\nimport { Field } from '../../../../../../../components/Field/Field';\nimport { Select2, Select2Value } from '../../../../../../../components/Select2/Select2';\nimport { RadioGroup, RadioGroupItemValue } from '../../../../../../../components/RadioGroup/RadioGroup';\nimport { Alert } from '../../../../../../../components/Alert/Alert';\n\nconst SAFE_PRINT_CELL_COUNT = 10000;\n\nexport type PrintDialogProps<TType = unknown> = {\n table: ReactTable<TType>;\n onAccept: () => void;\n orientation: Select2Value;\n setOrientation: (orientation: Select2Value) => void;\n size: Select2Value;\n setSize: (size: Select2Value) => void;\n allRows: RadioGroupItemValue;\n setAllRows: (allRows: RadioGroupItemValue) => void;\n splitGroups: boolean;\n setSplitGroups: (splitGroups: boolean) => void;\n};\n\nexport function PrintDialog<TType = unknown>(props: PrintDialogProps<TType>) {\n const {\n onAccept,\n table,\n orientation,\n setOrientation,\n size,\n setSize,\n allRows,\n setAllRows,\n splitGroups,\n setSplitGroups,\n ...dialogProps\n } = props;\n const { texts } = useLocalization();\n\n const columns = table.getVisibleFlatColumns();\n const cellCount = table.getRowModel().rows.length * columns.length;\n const rowGroupingColumnName = table.getState().grouping.length\n ? columns.find(column => column.id === table.getState().grouping[0])?.columnDef.meta?.header\n : undefined;\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table.print.warningDialog.title}>\n {({ close }) => (\n <>\n <Dialog.Title>{texts.table.print.settingsDialog.title}</Dialog.Title>\n <div className=\"mt-4 flex flex-col gap-2\">\n <div className=\"grid grid-cols-2 gap-4\">\n <Field>\n {texts.table.print.settingsDialog.size}\n <Select2 onChange={setSize} value={size}>\n <Select2.Option value=\"A5\">{texts.table.print.settingsDialog.sizeA5}</Select2.Option>\n <Select2.Option value=\"A4\">{texts.table.print.settingsDialog.sizeA4}</Select2.Option>\n <Select2.Option value=\"A3\">{texts.table.print.settingsDialog.sizeA3}</Select2.Option>\n <Select2.Option value=\"letter\">\n {texts.table.print.settingsDialog.sizeLetter}\n </Select2.Option>\n <Select2.Option value=\"legal\">\n {texts.table.print.settingsDialog.sizeLegal}\n </Select2.Option>\n </Select2>\n </Field>\n <Field>\n {texts.table.print.settingsDialog.orientation}\n <Select2 onChange={setOrientation} value={orientation}>\n <Select2.Option value=\"landscape\">\n {texts.table.print.settingsDialog.orientationLandscape}\n </Select2.Option>\n <Select2.Option value=\"portrait\">\n {texts.table.print.settingsDialog.orientationPortrait}\n </Select2.Option>\n </Select2>\n </Field>\n </div>\n {table.options.enableRowSelection && table.getIsSomeRowsSelected() ? (\n <Field>\n {texts.table.print.settingsDialog.rows}\n <RadioGroup onChange={setAllRows} value={allRows}>\n <RadioGroup.Item value={true}>{texts.table.print.settingsDialog.rowsAll}</RadioGroup.Item>\n <RadioGroup.Item value={false}>\n {texts.table.print.settingsDialog.rowsSelected}\n </RadioGroup.Item>\n </RadioGroup>\n </Field>\n ) : undefined}\n {rowGroupingColumnName ? (\n <Field>\n {texts.table.print.settingsDialog.layout}\n <Checkbox\n label={texts.table.print.settingsDialog.layoutSplitGroups.replace(\n '[COLUMN]',\n rowGroupingColumnName\n )}\n checked={splitGroups}\n onChange={setSplitGroups}\n />\n </Field>\n ) : null}\n\n {cellCount > SAFE_PRINT_CELL_COUNT ? (\n <Alert state=\"warning\">{texts.table.print.warningDialog.description}</Alert>\n ) : null}\n </div>\n <Dialog.Footer>\n <Group>\n <Dialog.Close>\n <Button>{texts.table.print.warningDialog.cancelButtonText}</Button>\n </Dialog.Close>\n <Button\n appearance=\"primary\"\n autoFocus\n onClick={() => {\n close();\n setTimeout(() => onAccept(), 1);\n }}>\n {texts.table.print.warningDialog.printButtonText}\n </Button>\n </Group>\n </Dialog.Footer>\n </>\n )}\n </Dialog.Content>\n </Dialog>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { useToast } from '../../../../../../../components/Toast/Toaster';\nimport { TableRef } from '../../../../../types';\nimport { PrintDialog } from './PrintDialog';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\n\nexport type PrintProps<TType = unknown> = {\n table: ReactTable<TType>;\n tableId: string;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Print<TType = unknown>(props: PrintProps<TType>) {\n const { table, tableId, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const lastScrollTopRef = React.useRef<number>();\n const toast = useToast();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { allRows, orientation, size, splitGroups } = tableMeta.printing.settings;\n\n const togglePrinting = React.useCallback(\n enabled => {\n tableMeta.printing.setIsPrinting(enabled);\n\n if (tableRef.current) {\n if (enabled) {\n lastScrollTopRef.current = tableRef.current.scrollTop;\n } else if (lastScrollTopRef.current !== undefined) {\n tableRef.current.scrollTop = lastScrollTopRef.current;\n lastScrollTopRef.current = undefined;\n }\n }\n },\n [tableRef.current]\n );\n\n React.useEffect(() => {\n const afterPrint = () => {\n togglePrinting(false);\n };\n\n window.addEventListener('afterprint', afterPrint);\n\n return () => {\n window.removeEventListener('afterprint', afterPrint);\n };\n }, []);\n\n const print = async () => {\n const toastRef = toast.loading(texts.table.print.loading);\n\n if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {\n try {\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters);\n } catch (error) {\n const errorMessage = `${texts.table.print.error}: ${error}`;\n console.error(errorMessage);\n toastRef.error(errorMessage);\n }\n }\n\n // this might close immediately if the dataset is small - this is okay\n toastRef.close();\n\n // use a timeout to let the toast close, otherwise it freezes mid animation when the print dialog opens\n setTimeout(() => {\n // do this here because Safari doesn't support the beforeprint event\n togglePrinting(true);\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n try {\n // Try using document.execCommand for printing in Safari\n document.execCommand('print', false, undefined);\n } catch (error) {\n // If document.execCommand fails or throws an error, fallback to window.print()\n window.print();\n }\n } else {\n // Execute window.print() for all other browsers\n window.print();\n }\n });\n });\n }, 150);\n };\n\n const printStyle = [`@page { size: ${size} ${orientation}; }`];\n\n if (!allRows) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr:not([data-row-selected=\"true\"]) { display: none; }`);\n }\n\n if (splitGroups) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr[data-row-group]:not(:first-child) { break-before: page; }`);\n }\n\n const shortcut = { key: 'p', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table.print.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <>\n <style media=\"print\">{printStyle.join('\\n')}</style>\n <IconButton\n icon=\"print\"\n aria-label={texts.table.print.tooltip}\n dialog={dialogProps => (\n <PrintDialog\n {...dialogProps}\n table={table}\n onAccept={print}\n orientation={orientation}\n setOrientation={value => tableMeta.printing.setSetting('orientation', value)}\n size={size}\n setSize={value => tableMeta.printing.setSetting('size', value)}\n allRows={allRows}\n setAllRows={value => tableMeta.printing.setSetting('allRows', value)}\n splitGroups={splitGroups}\n setSplitGroups={value => tableMeta.printing.setSetting('splitGroups', value)}\n />\n )}\n ref={ref}\n shortcut={shortcut}\n tooltip={tooltip}\n />\n </>\n );\n}\n","import React from 'react';\n\nexport const useMatchMedia = (query: string, defaultMatches = false): boolean => {\n const [matches, setMatches] = React.useState<boolean>(defaultMatches);\n\n const handleChange = React.useCallback((event: MediaQueryList | MediaQueryListEvent) => setMatches(event.matches), []);\n\n React.useEffect(() => {\n const mediaQuery = window.matchMedia(query);\n setMatches(mediaQuery.matches);\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n\n return matches;\n};\n","import { useMatchMedia } from './useMatchMedia';\n\nexport const useIsLargeScreen = () => useMatchMedia('(min-width: 1024px)', window.innerWidth > 1024);\n","import { Column as ReactTableColumn, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { TableFilter, TableFilterComparator } from '../../../../../types';\nimport React from 'react';\n\nexport function sortByHeader<TType = unknown>(a: ReactTableColumn<TType>, b: ReactTableColumn<TType>) {\n return (a.columnDef.meta?.header as string)?.localeCompare?.(b.columnDef.meta?.header as string);\n}\n\nexport function isEmptyFilter(filter: TableFilter) {\n return !filter.value.hasOwnProperty('value'); // eslint-disable-line no-prototype-builtins\n}\n\nexport function guessComparatorsBasedOnControl<TType = unknown>(column?: ReactTableColumn<TType>): TableFilterComparator[] {\n const columnMeta = (column?.columnDef.meta ?? {}) as ReactTableColumnMeta<TType, unknown>;\n\n if (Array.isArray(columnMeta.filters)) {\n return columnMeta.filters;\n }\n\n if (typeof columnMeta.control === 'function') {\n const renderedControl = columnMeta.control({\n onBlur: () => undefined,\n onFocus: () => undefined,\n setValue: () => undefined,\n value: undefined,\n disabled: false,\n readOnly: false,\n ref: undefined as any,\n });\n\n if (React.isValidElement(renderedControl)) {\n const { props, type } = renderedControl as any;\n\n if (type.displayName === 'Select2') {\n if (props.multiple) {\n return [\n TableFilterComparator.HasAnyOf,\n TableFilterComparator.HasAllOf,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.HasNoneOf,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ];\n }\n\n return [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ];\n }\n }\n }\n\n if (columnMeta.dataType === 'number') {\n return [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ];\n }\n\n if (columnMeta.control === 'datepicker' || columnMeta.dataType === 'datetime') {\n return [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n ];\n }\n\n if (columnMeta.control === 'switch') {\n return [TableFilterComparator.IsEqualTo];\n }\n\n return [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ];\n}\n","import React from 'react';\nimport { Column as ReactTableColumn } from '@tanstack/react-table';\nimport { Select2, Select2Props } from '../../../../../../../../components/Select2/Select2';\nimport { Icon } from '../../../../../../../../components/Icon/Icon';\nimport { Tooltip } from '../../../../../../../../components/Tooltip/Tooltip';\nimport { useLocalization } from '../../../../../../../../components/Provider/Localization';\nimport { Field } from '../../../../../../../../components/Field/Field';\nimport { TableFilter } from '../../../../../../types';\n\nexport type FilterColumnProps<TType = unknown> = Omit<Select2Props, 'children'> & {\n allColumns: ReactTableColumn<TType, unknown>[];\n filters: TableFilter[];\n};\n\nexport const FilterColumn = React.forwardRef<HTMLButtonElement, FilterColumnProps>((props, ref) => {\n const { allColumns, filters, onChange: handleChange, value = null, ...attributes } = props;\n const { texts } = useLocalization();\n const selectedColumn = allColumns.find(column => column.id === value);\n const warning = selectedColumn && !selectedColumn.getIsVisible();\n\n return (\n <div className=\"flex flex-col\">\n <Field\n message={warning ? texts.table.filters.hiddenColumn : undefined}\n warning={warning}\n className=\"min-h-[theme(spacing.8)]\">\n <Select2\n {...attributes}\n ref={ref}\n className=\"focus:yt-focus !w-32 flex-shrink-0 \"\n emptyValue={null}\n onChange={handleChange}\n value={value}>\n {allColumns.map(column => (\n <Select2.Option\n key={column.id}\n value={column.id}\n postfix={\n !column.getIsVisible() || column.getIsGrouped() ? (\n <Tooltip\n title={\n column.getIsGrouped()\n ? texts.table.filters.hiddenGroupedColumn\n : texts.table.filters.hiddenColumn\n }>\n <Icon name=\"eye-off\" className=\"text-grey-500 !h-5 !w-5\" />\n </Tooltip>\n ) : undefined\n }\n disabled={column.id !== value && (!column.getCanFilter() || !!filters.find(f => f.id === column.id))}>\n {(column.columnDef.meta?.header as string) +\n (column.parent ? ` (${column.parent?.columnDef.meta?.header})` : '')}\n </Select2.Option>\n ))}\n </Select2>\n </Field>\n </div>\n );\n});\n","import React from 'react';\nimport { Column as ReactTableColumn } from '@tanstack/react-table';\nimport { Select2, Select2Props } from '../../../../../../../../components/Select2/Select2';\nimport { LocalizationTexts, useLocalization } from '../../../../../../../../components/Provider/Localization';\nimport { TableFilterComparator } from '../../../../../../types';\nimport { guessComparatorsBasedOnControl } from '../util';\n\nexport type FilterComparatorProps<TType = unknown> = Omit<Select2Props, 'children'> & {\n column?: ReactTableColumn<TType, unknown>;\n};\n\nexport function FilterComparator<TType = unknown>(props: FilterComparatorProps<TType>) {\n const { column, onChange: handleChange, value, ...attributes } = props;\n const { texts } = useLocalization();\n\n const validComparators = guessComparatorsBasedOnControl(column);\n\n return (\n <Select2 {...attributes} className=\"!w-32 flex-shrink-0\" disabled={!column} onChange={handleChange} value={value}>\n {validComparators.map(comparator => (\n <Select2.Option key={comparator} value={comparator}>\n {getComparatorText(comparator, texts, column)}\n </Select2.Option>\n ))}\n </Select2>\n );\n}\n\nfunction getComparatorText<TType = unknown>(\n comparator: TableFilterComparator,\n texts: LocalizationTexts,\n column?: ReactTableColumn<TType, unknown>\n) {\n const isDate = column?.columnDef?.meta?.control === 'datepicker';\n\n switch (comparator) {\n case TableFilterComparator.Contains:\n return texts.table.filters.comparators.contains;\n\n case TableFilterComparator.DoesNotContain:\n return texts.table.filters.comparators.doesNotContain;\n\n case TableFilterComparator.IsEqualTo:\n return texts.table.filters.comparators.isEqualTo;\n\n case TableFilterComparator.IsNotEqualTo:\n return texts.table.filters.comparators.isNotEqualTo;\n\n case TableFilterComparator.IsGreaterThan:\n return isDate ? texts.table.filters.comparators.isAfter : texts.table.filters.comparators.isGreaterThan;\n\n case TableFilterComparator.IsLessThan:\n return isDate ? texts.table.filters.comparators.isBefore : texts.table.filters.comparators.isLessThan;\n\n case TableFilterComparator.IsBetween:\n return texts.table.filters.comparators.isBetween;\n\n case TableFilterComparator.IsEmpty:\n return texts.table.filters.comparators.isEmpty;\n\n case TableFilterComparator.IsNotEmpty:\n return texts.table.filters.comparators.isNotEmpty;\n\n case TableFilterComparator.IsLessThanOrEqualTo:\n return isDate ? texts.table.filters.comparators.isOnOrBefore : texts.table.filters.comparators.isLessThanOrEqualTo;\n\n case TableFilterComparator.IsGreaterThanOrEqualTo:\n return isDate ? texts.table.filters.comparators.isOnOrAfter : texts.table.filters.comparators.isGreaterThanOrEqualTo;\n\n case TableFilterComparator.HasAnyOf:\n return texts.table.filters.comparators.hasAnyOf;\n\n case TableFilterComparator.HasAllOf:\n return texts.table.filters.comparators.hasAllOf;\n\n case TableFilterComparator.HasNoneOf:\n return texts.table.filters.comparators.hasNoneOf;\n\n default:\n return '';\n }\n}\n","import React, { useEffect } from 'react';\nimport { Column as ReactTableColumn } from '@tanstack/react-table';\nimport { Input } from '../../../../../../../../components/Input/Input';\nimport { Datepicker } from '../../../../../../../../components/Datepicker/Datepicker';\nimport { Switch } from '../../../../../../../../components/Switch/Switch';\nimport { useLocalization } from '../../../../../../../../components/Provider/Localization';\nimport { TableFilterComparator } from '../../../../../../types';\n\nexport type FilterValueProps<TType = unknown> = {\n column?: ReactTableColumn<TType, unknown>;\n comparator: TableFilterComparator;\n onChange: (value: any) => void;\n value: any;\n};\n\nconst querySelector = 'filter-value';\n\nexport function FilterValue<TType = unknown>(props: FilterValueProps<TType>) {\n const { column, comparator, onChange: handleChange, value } = props;\n const { texts } = useLocalization();\n\n if (comparator === TableFilterComparator.IsEmpty || comparator === TableFilterComparator.IsNotEmpty) {\n return null;\n }\n\n if (comparator === TableFilterComparator.IsBetween) {\n const fromValue = Array.isArray(value) ? value[0] : undefined;\n const toValue = Array.isArray(value) ? value[1] : undefined;\n\n if (column === undefined) {\n return (\n <Input\n aria-label={texts.table.filters.emptyFilter.value}\n className=\"flex-grow\"\n data-query-selector={querySelector}\n disabled\n value={texts.table.filters.emptyFilter.value}\n />\n );\n }\n\n if (column.columnDef.meta?.dataType === 'datetime') {\n return (\n <div className=\"flex flex-grow items-center gap-2\">\n <Control\n column={column}\n data-query-selector={querySelector}\n onChange={value => handleChange([value, toValue])}\n value={fromValue}\n />\n <Control\n column={column}\n data-query-selector={querySelector}\n onChange={value => handleChange([fromValue, value])}\n value={toValue}\n />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-grow items-center gap-2\">\n <Control\n column={column}\n data-query-selector={querySelector}\n onChange={value => handleChange([isNaN(value) ? undefined : value, toValue])}\n placeholder=\"from\"\n value={fromValue ?? ''}\n />\n <Control\n column={column}\n data-query-selector={querySelector}\n onChange={value => handleChange([fromValue, isNaN(value) ? undefined : value])}\n placeholder=\"to\"\n value={toValue ?? ''}\n />\n </div>\n );\n }\n return (\n <Control\n comparator={comparator}\n column={column}\n data-query-selector={querySelector}\n onChange={handleChange}\n value={value}\n />\n );\n}\n\nfunction Control(props) {\n const { column, comparator, onChange, value, ...attributes } = props;\n const controlRenderer = column?.columnDef.meta?.control;\n const dataType = column?.columnDef.meta?.dataType;\n\n useEffect(() => {\n // Set value to false only after first render of the control (when it's undefined) after setting the FilterColumn value, because we don't want to change then the value every time filter is opened\n if (controlRenderer === 'switch' && value === undefined) {\n onChange(false);\n }\n }, [controlRenderer]);\n\n if (typeof controlRenderer === 'function') {\n return React.cloneElement(\n controlRenderer({\n ...attributes,\n setValue: value => onChange(value),\n value,\n }),\n { ['data-query-selector']: querySelector, className: 'focus:yt-focus' }\n );\n } else if (controlRenderer === 'datepicker' || dataType === 'datetime') {\n return <Datepicker {...attributes} onChange={event => onChange((event as any).detail)} value={value as Date} />;\n } else if (controlRenderer === 'switch') {\n return <Switch {...attributes} className=\"m-1.5\" checked={Boolean(value)} onChange={onChange} />;\n } else if ((controlRenderer === 'input' || controlRenderer === undefined) && dataType === 'number') {\n return (\n <Input\n {...attributes}\n className=\"flex-grow\"\n type=\"number\"\n onChange={event => onChange(event.target.valueAsNumber)}\n value={String(value ?? '')}\n />\n );\n }\n\n return (\n <Input\n disabled={!column}\n {...attributes}\n className=\"flex-grow\"\n onChange={event => onChange(event.target.value)}\n value={String(value ?? '')}\n />\n );\n}\n","import React from 'react';\nimport { Column as ReactTableColumn } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../../components/Provider/Localization';\nimport { FilterColumn } from './FilterColumn';\nimport { FilterComparator } from './FilterComparator';\nimport { FilterValue } from './FilterValue';\nimport { TableFilter, TableFilterComparator } from '../../../../../../types';\nimport { guessComparatorsBasedOnControl } from '../util';\n\nexport type FilterProps<TType = unknown> = {\n allColumns: ReactTableColumn<TType, unknown>[];\n filter: TableFilter;\n filters: TableFilter[];\n position: number;\n onChange: (position: number, value: TableFilter) => void;\n onRemove?: (position: number) => void;\n};\n\nexport function Filter<TType = unknown>(props: FilterProps<TType>) {\n const { allColumns, filter, filters, onChange: handleChange, onRemove, position } = props;\n const { texts } = useLocalization();\n const column = allColumns.find(c => c.id === filter.id);\n const ref = React.useRef<HTMLButtonElement>(null);\n\n const {\n id,\n value: { comparator, value },\n } = filter;\n\n const handleChangeColumn = (columnId: string) => {\n const previousColumn = allColumns.find(column => column.id === id);\n const nextColumn = allColumns.find(column => column.id === columnId);\n // UX requirement: if old column data type is the same as next column data type,\n // then we applying the same filter value for the next column,\n // but when data types are different, we're reseting comparator ans value for the next column\n if (\n previousColumn?.columnDef.meta?.dataType &&\n previousColumn?.columnDef.meta?.dataType === nextColumn?.columnDef.meta?.dataType\n ) {\n handleChange(position, { id: columnId, value: filter.value });\n return;\n }\n const validComparators = guessComparatorsBasedOnControl(nextColumn);\n\n const value = {\n comparator: validComparators[0],\n value: undefined,\n };\n\n handleChange(position, { id: columnId, value });\n };\n\n const handleChangeComparator = (comparator: TableFilterComparator) => {\n let nextValue = filter.value.value;\n\n if (comparator === TableFilterComparator.IsEmpty || comparator === TableFilterComparator.IsNotEmpty) {\n nextValue = undefined;\n }\n handleChange(position, { id, value: { comparator, value: nextValue } });\n };\n\n const handleChangeValue = (value: any) => {\n handleChange(position, { id, value: { ...filter.value, value } });\n };\n\n const handleRemove = () => onRemove?.(position);\n\n React.useEffect(() => {\n if (ref.current && !id) {\n ref.current.focus(); // after adding a new filter placeholder, we want to focus it right way.\n }\n }, [id]);\n\n return (\n <div className=\"flex items-start gap-2\">\n <div className=\"flex min-h-[theme(spacing.8)] w-14 flex-shrink-0 items-center justify-end pr-2 text-right\">\n {position > 0 ? texts.table.filters.conditions.and : texts.table.filters.conditions.where}\n </div>\n <FilterColumn\n allColumns={allColumns as any}\n filters={filters}\n onChange={handleChangeColumn as any}\n value={id}\n ref={ref}\n />\n <FilterComparator column={column} onChange={handleChangeComparator as any} value={comparator} />\n <FilterValue column={column} comparator={comparator} onChange={handleChangeValue} value={value} />\n {onRemove ? <IconButton appearance=\"discrete\" className=\"ml-auto\" icon=\"close\" onClick={handleRemove} /> : null}\n </div>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\nimport { Popover } from '../../../../../../../components/Popover/Popover';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { Button } from '../../../../../../../components/Button/Button';\nimport { Group } from '../../../../../../../components/Group/Group';\nimport { isEmptyFilter, sortByHeader } from './util';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport { TableFilter, TableFilterComparator, TableFilterValue } from '../../../../../types';\nimport { Filter } from './components/Filter';\n\nexport type ManageFiltersPopoverProps<TType = unknown> = {\n length: number;\n table: ReactTable<TType>;\n};\n\nconst placeholderFilter: TableFilter = { id: '', value: { comparator: TableFilterComparator.Contains, value: undefined } };\n\nexport function ManageFiltersPopover<TType = unknown>(props: ManageFiltersPopoverProps<TType>) {\n const { length, table, ...popoverProps } = props;\n const { locale, texts } = useLocalization();\n\n const allColumns = table\n .getAllLeafColumns()\n .filter(column => !isInternalColumn(column.id))\n .sort(sortByHeader);\n\n const columnFilters = table.getState().columnFilters as TableFilter[];\n\n // state, since we \"apply\" filters - our filter values have a special shape, so we force to our type\n const [filters, setFilters] = React.useState<TableFilter[]>(columnFilters.length ? columnFilters : [placeholderFilter]);\n\n // this runs if filters are set outside (e.g. through column header)\n React.useEffect(() => {\n setFilters(columnFilters.length === 0 ? [placeholderFilter] : columnFilters);\n\n // focus the filter value, as we preset the column/comparator.\n requestAnimationFrame(() => {\n const filterValues = document.querySelectorAll('[data-query-selector=\"filter-value\"]');\n const lastFilter = filterValues.length ? filterValues[filterValues.length - 1] : undefined;\n\n (lastFilter as HTMLElement)?.focus();\n });\n }, [columnFilters]);\n\n // filters\n const handleChangeFilter = (position: number, filter: { id: string; value: TableFilterValue }) => {\n setFilters(currentFilters => {\n return currentFilters.map((current, index) => {\n if (index === position) {\n return filter;\n }\n return current;\n });\n });\n };\n\n const handleRemoveFilter = position => {\n if (filters.length === 1) {\n setFilters([placeholderFilter]);\n return;\n }\n\n setFilters(currentFilters => currentFilters.filter((_, index) => index !== position));\n };\n\n const handleCreate = () => {\n setFilters(filters.concat(placeholderFilter));\n };\n\n //\n const handleApply = () => {\n table.setColumnFilters(() => {\n const newFilters = filters.filter(f => {\n if (f.id === null || f.id === '') {\n return false;\n }\n\n const controlRenderer = allColumns.find(c => c.id === f.id)?.columnDef.meta?.control;\n\n if (\n f.value.comparator === TableFilterComparator.IsEmpty ||\n f.value.comparator === TableFilterComparator.IsNotEmpty ||\n controlRenderer === 'switch'\n ) {\n return true;\n }\n\n const value = f.value.value;\n\n return value !== undefined && value !== null && value !== '';\n });\n\n return newFilters;\n });\n };\n\n const handleClear = () => {\n table.resetColumnFilters();\n setFilters([placeholderFilter]);\n };\n\n const handleClose = (open: boolean) => {\n if (!open) {\n const nonEmptyFilters = columnFilters.filter(f => !isEmptyFilter(f));\n table.setColumnFilters(nonEmptyFilters);\n setFilters(nonEmptyFilters.length === 0 ? [placeholderFilter] : nonEmptyFilters);\n }\n };\n\n return (\n <Popover {...popoverProps} onChange={handleClose}>\n <Popover.Content>\n <div className=\"flex w-[40rem] flex-col gap-4\">\n <div className=\"flex h-8\">\n <div className=\"flex w-full items-center gap-2\">\n <h4 className=\"mb-0 inline-flex\">{texts.table.filters.button}</h4>\n <p className=\"text-grey-700 mb-0 mr-auto mt-px inline-flex\">\n {texts.table.filters.total\n .replace(\n '[CURRENT]',\n new Intl.NumberFormat(locale).format(table.getFilteredRowModel().rows.length)\n )\n .replace('[TOTAL]', new Intl.NumberFormat(locale).format(length))}\n </p>\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n {filters.map((filter, index) => (\n <Filter\n key={`filter_${index}`}\n allColumns={allColumns}\n filter={filter}\n filters={filters}\n position={index}\n onChange={handleChangeFilter}\n onRemove={\n (filters.length > 0 && filters.some(f => f.id)) || filters.length > 1\n ? handleRemoveFilter\n : undefined\n }\n />\n ))}\n <div className=\"justify-start\">\n <Button appearance=\"discrete\" onClick={handleCreate}>\n + {texts.table.filters.buttons.addFilter}\n </Button>\n </div>\n </div>\n <Group className=\"ml-auto\">\n <Popover.Close>\n <Button>{texts.table.filters.buttons.cancel}</Button>\n </Popover.Close>\n <Button onClick={handleClear}>{texts.table.filters.buttons.clear}</Button>\n <Button appearance=\"primary\" onClick={handleApply}>\n {texts.table.filters.buttons.apply}\n </Button>\n </Group>\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\nimport { useIsLargeScreen } from '../../../../../../../hooks/useIsLargeScreen';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { Button } from '../../../../../../../components/Button/Button';\nimport { Icon } from '../../../../../../../components/Icon/Icon';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\nimport { ManageFiltersPopover } from './ManageFiltersPopover';\nimport { TableFilter } from '../../../../../types';\nimport { isEmptyFilter } from './util';\n\nexport type FiltersProps<TType = unknown> = {\n length: number;\n table: ReactTable<TType>;\n};\n\nexport function Filters<TType = unknown>(props: FiltersProps<TType>) {\n const { length, table } = props;\n const { texts } = useLocalization();\n const isLargeScreen = useIsLargeScreen();\n const columnFilters = table.getState().columnFilters as TableFilter[];\n const appliedFilters = columnFilters.filter(f => !isEmptyFilter(f));\n const ref = React.useRef<HTMLButtonElement>(null);\n\n const shortcut = { key: 'f', meta: true, shift: true };\n\n const buttonProps = {\n 'aria-label': texts.table.filters.tooltip,\n className: appliedFilters.length ? '!wcag-blue-100' : undefined,\n popover: popoverProps => <ManageFiltersPopover {...popoverProps} length={length} table={table} />,\n shortcut,\n ref,\n tooltip: (\n <>\n {texts.table.filters.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n ),\n };\n\n React.useEffect(() => {\n const emptyFilter = columnFilters.find(isEmptyFilter);\n\n // we set an empty filter when adding a filter through a column header.\n if (emptyFilter) {\n ref.current?.click();\n }\n }, [columnFilters]);\n\n if (!isLargeScreen && !appliedFilters.length) {\n return <IconButton {...buttonProps} icon=\"filter\" />;\n }\n\n return (\n <Button {...buttonProps}>\n <Icon className={!isLargeScreen ? '-mr-1.5' : undefined} name={appliedFilters.length ? 'filter-solid' : 'filter'} />\n {isLargeScreen ? texts.table.filters.button : ''}\n {appliedFilters.length ? `(${appliedFilters.length})` : ''}\n </Button>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { Group } from '../../../../../components/Group/Group';\nimport { Search } from './components/Search/Search';\nimport { Settings } from './components/Settings/Settings';\nimport { Print } from './components/Print/Print';\nimport { Filters } from './components/Filters/Filters';\nimport { TableCustomSettingsRenderer } from '../../../types';\nimport { useTableReturnValue } from '../../useTable';\n\nexport type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n children?: JSX.Element | null;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>) {\n const { children: customTools, table, ...attributes } = props;\n\n if (!isToolbarVisible<TType>(table, !!customTools)) {\n return null;\n }\n\n const canFilter = table.instance.options.enableColumnFilters;\n const canPrint = table.meta.printing.isEnabled;\n const canSettings = canChangeSettings(table.instance, table.props.customSettings);\n const canSearch = table.meta.search.isEnabled;\n\n return (\n <>\n <div\n {...attributes}\n className=\"mb-4 flex flex-shrink flex-grow-0 flex-wrap gap-2 print:hidden\"\n data-taco=\"table-toolbar\">\n {table.props.toolbarLeft}\n <Group className=\"ml-auto flex-shrink-0 items-center print:hidden\">\n {customTools}\n {canFilter ? <Filters length={table.meta.length} table={table.instance} /> : null}\n {table.props.toolbarRight}\n {canPrint ? <Print table={table.instance} tableId={table.id} tableRef={table.ref} /> : null}\n {canSettings ? <Settings customSettings={table.props.customSettings} table={table.instance} /> : null}\n {canSearch ? (\n <Search scrollToIndex={table.renderer.scrollToIndex} table={table.instance} tableRef={table.ref} />\n ) : null}\n </Group>\n </div>\n {table.props.toolbarPanel ? <div className=\"mb-4\">{table.props.toolbarPanel}</div> : undefined}\n </>\n );\n}\n\nfunction canChangeSettings<TType = unknown>(table: ReactTable<TType>, customSettings?: TableCustomSettingsRenderer) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n return (\n table.options.enableHiding ||\n tableMeta.columnOrdering.isEnabled ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n typeof customSettings === 'function'\n );\n}\n\nfunction isToolbarVisible<TType = unknown>(table: useTableReturnValue<TType>, customTools: boolean) {\n const hasInternalToolbar =\n customTools ||\n table.instance.options.enableColumnFilters ||\n table.meta.printing.isEnabled ||\n canChangeSettings(table.instance, table.props.customSettings) ||\n table.meta.search.isEnabled;\n\n return hasInternalToolbar || !!table.props.toolbarLeft || !!table.props.toolbarRight;\n}\n","import React from 'react';\nimport { FocusScope } from '@react-aria/focus';\nimport { Header } from './components/Header/Header';\nimport { Body } from './components/Body/Body';\nimport { Foot } from './components/Footer/Footer';\nimport { EmptyStateBody } from './components/Body/EmptyStateBody';\nimport { useTableReturnValue } from './useTable';\nimport { TableToolbar } from './components/Toolbar/Toolbar';\nimport './style.css';\nimport { TableEmptyStateReason } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from './util/rows';\n\ntype TableProps = {\n children: JSX.Element | Array<JSX.Element | null>;\n};\n\nexport function Table(props: TableProps) {\n return <>{props.children}</>;\n}\nTable.Toolbar = TableToolbar;\nTable.Grid = TableGrid;\n\nexport type TableGridProps<TType = unknown> = React.TableHTMLAttributes<HTMLTableElement> & {\n 'data-taco': string;\n enableHorizontalArrowKeyNavigation?: boolean;\n table: useTableReturnValue<TType>;\n};\n\nfunction getFilterReason<TType = unknown>(table: useTableReturnValue<TType>): TableEmptyStateReason | null {\n if (table.instance.getFilteredRowModel().rows.length === 0 && table.instance.getCoreRowModel().rows.length !== 0) {\n const state = table.instance.getState();\n\n if (table.meta.search.enableGlobalFilter && !!state.globalFilter) {\n return 'searching';\n }\n\n return 'filtering';\n }\n if (table.instance.getCoreRowModel().rows.length === 0) {\n return 'empty';\n }\n\n return null;\n}\n\nexport function TableGrid<TType = unknown>(props: TableGridProps<TType>) {\n const { enableHorizontalArrowKeyNavigation, table, ...attributes } = props;\n const handleFocus =\n table.meta.rowActive.rowActiveIndex === undefined\n ? (event: React.FocusEvent) => {\n table.meta.rowActive.handleFocus(event, table.meta.length, table.renderer.scrollToIndex);\n }\n : undefined;\n const filterReason = getFilterReason(table);\n\n return (\n <>\n <style>{table.stylesheet}</style>\n <FocusScope>\n <table\n {...attributes}\n id={table.id}\n data-table-font-size={table.meta.fontSize.size}\n data-table-grouped={!!table.state.grouping?.length}\n data-table-horizontally-scrolled={table.meta.columnFreezing.isHorizontallyScrolled ? true : undefined}\n data-table-status={table.meta.server.isEnabled ? (table.meta.server.isReady ? 'ready' : undefined) : 'ready'}\n data-table-pause-hover={table.meta.rowActive.isHoverStatePaused ? true : undefined}\n data-table-resizing={table.state.columnSizingInfo.isResizingColumn ? true : undefined}\n data-table-row-height={table.meta.rowHeight.height}\n onFocus={handleFocus}\n onScroll={table.meta.columnFreezing.handleScroll}\n ref={table.ref}\n style={table.style}\n tabIndex={-1}>\n <thead>\n {table.instance.getHeaderGroups().map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map(props => (\n <Header key={props.id} header={props} scrollToIndex={table.renderer.scrollToIndex} />\n ))}\n </tr>\n ))}\n </thead>\n {filterReason ? (\n <EmptyStateBody emptyState={props.table.props.emptyState} reason={filterReason} />\n ) : (\n <>\n <Body\n enableHorizontalArrowKeyNavigation={enableHorizontalArrowKeyNavigation}\n table={table.instance}\n tableElement={table.ref.current}\n scrollToIndex={table.renderer.scrollToIndex}\n style={\n props.children\n ? {\n ...table.renderer.style,\n height:\n (table.renderer.style.height as number) +\n ROW_HEIGHT_ESTIMATES[table.meta.rowHeight.height],\n }\n : table.renderer.style\n }>\n {table.renderer.rows}\n {props.children}\n </Body>\n {table.meta.footer.isEnabled ? <Foot table={table.instance} /> : null}\n </>\n )}\n </table>\n </FocusScope>\n </>\n );\n}\n","import React from 'react';\nimport { fixedForwardRef } from '../../types';\nimport { useReport } from './useReport';\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n\nfunction Column<TType = unknown>(_: ReportColumnProps<TType>) {\n return null;\n}\n\nfunction Group(_: ReportGroupProps) {\n return null;\n}\n\nconst BaseReport = fixedForwardRef(function BaseReport<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const report = useReport<TType>(props, ref);\n\n return (\n <Table>\n <Table.Toolbar<TType> table={report} />\n <Table.Grid<TType> data-taco=\"table-report\" table={report} />\n </Table>\n );\n});\n\nexport const Report = fixedForwardRef(function Report<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseReport<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nReport.Column = Column;\nReport.Group = Group;\n\nexport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n","import React from 'react';\nimport { LegacyTableRow, LegacyTableCell, LegacyTableChildren, InternalTableRow, InternalTableColumn, SortRule } from './types';\nimport { SortingRule } from 'react-table';\n\nexport const sanitizeRowProps = (row: InternalTableRow, rowExpansionRenderer: any): LegacyTableRow<any> => {\n const props: LegacyTableRow<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: LegacyTableChildren<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: LegacyTableCell<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","import { SortTypes, LegacyTableRow } 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: LegacyTableRow<T>, rowB: LegacyTableRow<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","import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n","import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Localization';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, LegacyTableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: LegacyTableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x && typeof x !== 'boolean') as RowAction<any>[];\n\n if (row) {\n visibleActions = visibleActions.filter(action => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach(action => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: LegacyTableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.key === 'Escape' && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.legacyTable.newSubRow}\n tooltip={texts.legacyTable.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.legacyTable.edit}\n tooltip={texts.legacyTable.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.legacyTable.copy}\n tooltip={texts.legacyTable.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.legacyTable.del}\n tooltip={texts.legacyTable.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.legacyTable.actions}\n tooltip={texts.legacyTable.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}>\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n","import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-700 invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n","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 LegacyTableProps,\n LegacyTableRef,\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: LegacyTableProps<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<LegacyTableRef>): 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: LegacyTableProps<T> & { windowed?: boolean },\n ref: React.RefObject<LegacyTableRef>\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","// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"!mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n","import React from 'react';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { getNextIndexFromKey } from '../../../utils/hooks/useListKeyboardNavigation';\nimport { sanitizeRowProps } from '../util';\nimport { LegacyTableProps } from '../types';\n\nexport const useTableKeyboardNavigation = <T extends {}>(\n props: LegacyTableProps<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 document.activeElement?.getAttribute('role') !== 'dialog'\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","import React from 'react';\nimport cn from 'clsx';\nimport { FocusScope } from '@react-aria/focus';\nimport { InternalTableCell, LegacyTableRow } from '../types';\nimport { sanitizeRowProps } from '../util';\n\nconst renderCell = (cell: InternalTableCell, row: LegacyTableRow<any>): JSX.Element => {\n const props = {\n ...cell.getCellProps(),\n className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {\n 'justify-start text-left': cell.column.align === 'left',\n 'justify-end text-right': cell.column.align === 'right',\n 'text-center': !cell.column.align,\n }),\n style: {\n ...cell.column.style,\n flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex,\n },\n };\n return (\n <div {...props} role=\"gridcell\" data-taco=\"table-cell\">\n {cell.render('Cell') || null}\n </div>\n );\n};\n\nexport const Row = React.forwardRef(function TableRow({ row, index, instance, headerGroups, ...rowProps }: any, ref: any) {\n const {\n activeIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n setActiveIndex,\n style,\n inlineEditingUniqueId,\n } = rowProps;\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n\n const props = {\n ...row.getRowProps(),\n style: {\n ...style,\n minHeight: rowHeight ? `${rowHeight}px` : undefined,\n paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined,\n },\n className: cn(\n 'yt-table__row border-grey-300 flex border-b min-h-[2.5rem] hover:bg-grey-100',\n {\n 'yt-table__row--active bg-grey-200 hover:bg-grey-200': activeIndex === index,\n 'yt-table__row--clickable': !!onRowClick,\n 'yt-table__row--dragging': !!row.isDragging,\n 'yt-table__row--editing': !!row.isEditing,\n },\n typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName\n ),\n onClick: onRowClick\n ? (event: React.MouseEvent<HTMLElement>) => {\n if (\n event.target === event.currentTarget ||\n (event.target as HTMLElement).classList.contains('yt-table__cell')\n ) {\n event.preventDefault();\n event.persist();\n setActiveIndex(index);\n onRowClick(sanitizedRow);\n }\n }\n : () => {\n setActiveIndex(index);\n },\n };\n\n let cells = row.cells;\n\n if (row.depth > 0) {\n cells = row.cells.filter((cell: any) => !cell.column.hiddenOnSubRows);\n }\n\n const expandedRow = rowExpansionRenderer && row.isExpanded && <div>{rowExpansionRenderer(sanitizedRow, instance)}</div>;\n const rowContent = React.useMemo(() => {\n return (\n <>\n <FocusScope key={row.original._createKey} contain restoreFocus autoFocus>\n <div {...props} role=\"row\" ref={ref}>\n <input type=\"hidden\" name=\"_rowIndexPath\" value={row.id} />\n <input type=\"hidden\" name=\"_inlineEditingUniqueId\" value={row.original[inlineEditingUniqueId]} />\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n </FocusScope>\n {expandedRow}\n </>\n );\n }, [row.original._createKey]);\n\n if (row.isEditing) {\n return rowContent;\n }\n\n return (\n <>\n <div {...props} role=\"row\" ref={ref}>\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n {expandedRow}\n </>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon } from '../../Icon/Icon';\n\nexport const Column = ({ cell }: any): any => {\n const props = {\n ...cell.getHeaderProps(),\n ...(cell.getSortByToggleProps && cell.getSortByToggleProps({ title: undefined })),\n className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-700 hover:text-black', cell.className, {\n 'yt-table__cell__group': !!cell.columns,\n 'cursor-pointer': !cell.disableSorting,\n 'justify-start text-left': cell.align === 'left',\n 'justify-end text-right': cell.align === 'right',\n 'justify-center text-center': cell.align === 'center' || !cell.align,\n }),\n style: { ...cell.style, flex: cell.flex },\n };\n\n if (cell.isSorted) {\n props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';\n }\n\n return (\n <div {...props} key={cell.id} data-taco=\"table-column\">\n <span className=\"truncate\">{cell.render('Header')}</span>\n {cell.isSorted ? (\n <Icon name={cell.isSortedDesc ? 'chevron-down-solid' : 'chevron-up-solid'} className=\"-mt-0.5\" />\n ) : null}\n </div>\n );\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { HeaderGroup } from 'react-table';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { InternalBaseTable } from '../types';\nimport './Table.css';\nimport { Column } from '../util/renderColumn';\n\nexport const DefaultEmptyState = (): React.ReactNode => null;\n\nexport const BaseTable = React.forwardRef(function BaseTable(props: InternalBaseTable, ref: React.Ref<HTMLDivElement>) {\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const { autoFocus, children, disableSorting: _, headerGroups, headerRef, bodyRef, ...otherProps } = props;\n\n React.useEffect(() => {\n if (autoFocus && tableRef.current) {\n tableRef.current.focus();\n }\n }, []);\n\n const className = cn('yt-table flex flex-col focus:yt-focus focus:rounded-sm', props.className);\n\n return (\n <div {...otherProps} role=\"table\" className={className} ref={tableRef}>\n <div role=\"rowgroup\" className=\"yt-table__head\" ref={headerRef}>\n {headerGroups?.map((headerGroup: HeaderGroup<object>, index: number) => (\n <div\n key={index}\n role=\"row\"\n className=\"border-grey-300 flex h-auto min-h-[2.5rem] w-full select-none border-b-2 border-t-0 font-bold\">\n {headerGroup.headers.map((cell: any, index: number) => (\n <Column key={index} index={index} cell={cell} />\n ))}\n </div>\n ))}\n </div>\n\n <div role=\"rowgroup\" className=\"yt-table__body\" ref={bodyRef}>\n {children}\n </div>\n </div>\n );\n});\n","import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { LegacyTableProps, InternalTableRow, ForwardedGenericTableWithStatics, LegacyTableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { Pagination } from '../../Pagination/Pagination';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\n\nexport const Table = React.forwardRef(function Table<T extends {}>(\n props: LegacyTableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<LegacyTableRef>\n) {\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\n\n let paginationElement;\n\n if (pagination) {\n paginationElement = (\n <Pagination\n className=\"my-4 w-full\"\n length={pagination.length}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n setPageIndex={pagination.setPageIndex}\n setPageSize={pagination.setPageSize}\n showPageControls={pagination.length > pagination.pageSize}\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\n />\n );\n }\n\n return (\n <>\n {paginationElement}\n <BaseTable {...tableProps} ref={tableRef}>\n {rows.length\n ? rows.map((row: InternalTableRow, index: number) => {\n prepareRow(row, index);\n return (\n <Row\n {...rowProps}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n />\n );\n })\n : emptyStateRenderer()}\n </BaseTable>\n {paginationElement}\n </>\n );\n}) as ForwardedGenericTableWithStatics;\n\nTable.Column = () => null;\nTable.Group = () => null;\n","import React from 'react';\nimport { ForwardedGenericTableWithStatics, LegacyTableProps, LegacyTableRef } from '../types';\nimport { Table } from './Table';\n\nexport const PaginatedTable = React.forwardRef(function PaginatedTable<T extends {}>(\n props: LegacyTableProps<T>,\n ref: React.Ref<LegacyTableRef>\n) {\n return <Table {...props} disablePagination={false} ref={ref} />;\n}) as ForwardedGenericTableWithStatics;\n\nPaginatedTable.Column = () => null;\nPaginatedTable.Group = () => null;\n","import React from 'react';\nimport cn from 'clsx';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { LegacyTableProps, ForwardedGenericTableWithStatics, LegacyTableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-300\">{texts.legacyTable.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T extends {}>(\n props: LegacyTableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<LegacyTableRef>\n) {\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}>\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}>\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n","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","import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, LegacyTableRef } from '../types';\n\nexport const insertChildTableRow = <TRow extends {}>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow extends {}>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow extends {}> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow extends {}>(\n data: Row<TRow>[],\n tableRef: React.RefObject<LegacyTableRef>\n): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n","import { Cell as ReactTableCell, Row as ReactTableRow, Table as ReactTable } from '@tanstack/react-table';\nimport { TableFilterValue } from '../../../primitives/Table/types';\nimport { columnFilterFn, globalFilterFn } from '../../../primitives/Table/useTableManager/util/filtering';\nimport { setDataFocusAttribute } from '../../../utils/dom';\n\nexport function willRowMove<TType = unknown>(cell: ReactTableCell<TType, unknown>, change: unknown, rowIndex: number) {\n const { table } = cell.getContext();\n\n if (willRowMoveAfterSearch<TType>(cell, change, table)) {\n return 'search';\n } else if (willRowMoveAfterFilter<TType>(cell, change)) {\n return 'filter';\n } else if (willRowMoveAfterSorting<TType>(cell, change, rowIndex)) {\n return 'sorting';\n }\n\n return undefined;\n}\n\nfunction willRowMoveAfterSearch<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n change: unknown,\n table: ReactTable<TType>\n) {\n const searchQuery = table.getState().globalFilter;\n\n if (!table.options.enableGlobalFilter || !searchQuery) {\n return false;\n }\n\n const rowWithChange = { ...cell.row, original: { ...cell.row.original, [cell.column.id]: change } };\n return !globalFilterFn(rowWithChange, cell.column.id, searchQuery);\n}\n\nfunction willRowMoveAfterFilter<TType = unknown>(cell: ReactTableCell<TType, unknown>, change: unknown) {\n if (!cell.column.getIsFiltered()) {\n return false;\n }\n\n return !columnFilterFn(change, cell.column.getFilterValue() as TableFilterValue);\n}\n\nfunction willRowMoveAfterSorting<TType = unknown>(cell: ReactTableCell<TType, unknown>, change: unknown, rowIndex: number) {\n if (!cell.column.getIsSorted()) {\n return false;\n }\n\n const { table } = cell.getContext();\n const rows = table.getRowModel().rows;\n\n const miniSortRows: ReactTableRow<TType>[] = [\n {\n ...cell.row,\n original: {\n ...cell.row.original,\n [cell.column.id]: change,\n },\n getValue: () => change as any,\n },\n ];\n\n let index = 0;\n\n if (rowIndex > 0) {\n miniSortRows.unshift(rows[rowIndex - 1]);\n index = 1;\n }\n\n if (rowIndex < rows.length - 1) {\n miniSortRows.push(rows[rowIndex + 1]);\n }\n\n const resortedRows = [...miniSortRows].sort((rowA, rowB) => {\n const sortFn = cell.column.getSortingFn();\n const sortUndefined = cell.column.columnDef.sortUndefined;\n\n if (!table.options.manualSorting && sortUndefined) {\n const aValue = rowA.getValue(cell.column.id);\n const bValue = rowB.getValue(cell.column.id);\n\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n\n return sortFn(rowA, rowB, cell.column.id);\n });\n\n if (cell.column.getIsSorted() === 'desc') {\n resortedRows.reverse();\n }\n\n return resortedRows[index]?.id !== cell.row.id;\n}\n\nexport function animateCreateRow(id) {\n const templateRow = document.querySelector(`[data-row-id=\"${id}\"]`);\n\n if (templateRow) {\n const firstCell = templateRow.querySelector(':first-child') as HTMLElement;\n const checkbox = firstCell?.querySelector('[data-taco=\"checkbox\"]');\n firstCell?.focus();\n\n if (checkbox) {\n setDataFocusAttribute(checkbox);\n }\n\n templateRow.scrollIntoView();\n\n const keyframes = [{ background: '#b2c7ef' }, { background: '#ebebeb' }];\n\n for (const child of templateRow.children) {\n child.animate(keyframes, { duration: 1000, easing: 'ease-out' });\n }\n }\n}\n","import React from 'react';\nimport {\n Cell as ReactTableCell,\n Row as ReactTableRow,\n Table as ReactTable,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport { Table3EditingChangeHandler, Table3EditingSaveHandler, Table3EditingValidatorFn } from '../types';\nimport { useGlobalKeyDown } from '../../../hooks/useGlobalKeyDown';\nimport { willRowMove } from '../util/editing';\nimport { TableRef } from '../../../primitives/Table/types';\nimport { debounce } from 'lodash';\n\nexport function useTableEditing<TType = unknown>(\n isEnabled = false,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n // used to switch the table into editing mode\n const [isEditing, toggleEditing] = React.useState(false);\n\n // used to switch the editing between \"detailed\" mode\n const [isDetailedMode, toggleDetailedMode] = React.useState(false);\n\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const [lastFocusedCellIndex, setLastFocusedCellIndex] = useLastFocusedCellIndex();\n\n // store pending changes for each row\n // changes are saved as soon as the active row changes, so in most cases this will only contain the active row's changes\n // but not always - if validation or server requests fail when saving, those rows remain until the failure is resolved\n const pendingChangesFns = usePendingChanges<TType>(isEnabled, handleSave, handleChange, validator);\n\n useGlobalKeyDown(isEnabled && isEditing ? { key: 's', meta: true, shift: false } : undefined, event => {\n event.preventDefault();\n pendingChangesFns.saveChanges();\n });\n\n return {\n isEnabled,\n isEditing,\n isDetailedMode,\n toggleDetailedMode: isEnabled ? toggleDetailedMode : () => undefined,\n toggleEditing: isEnabled ? toggleEditing : () => undefined,\n lastFocusedCellIndex,\n setLastFocusedCellIndex,\n ...pendingChangesFns,\n };\n}\n\ntype SaveState = 'pending' | 'complete';\ntype PendingChange<TType = unknown> = Partial<TType> & {\n _meta: {\n original: TType;\n moveReason: Record<string, 'search' | 'sorting' | 'filter'>;\n errors: {\n row: string;\n cells: Record<string, string>;\n hasShownErrorAlert: boolean;\n };\n status?: SaveState;\n };\n};\n\ntype PendingChanges<TType = unknown> = Record<string, PendingChange<TType>>;\nfunction usePendingChanges<TType = unknown>(\n isEnabled: boolean,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n const [pendingChanges, setPendingChanges] = React.useState<PendingChanges<TType>>({});\n // we maintain save status as separate state because 'complete' needs to briefly show after pendingChanges are deleted\n const [saveStates, setSaveState] = React.useState<Record<string, SaveState>>({});\n\n function getCellValue<T extends TType>(cell: ReactTableCell<T, unknown>): unknown | undefined {\n return pendingChanges[cell.row.id]?.[cell.column.id];\n }\n\n function getCellError<T extends TType>(cell: ReactTableCell<T, unknown>): string | undefined {\n return pendingChanges[cell.row.id]?._meta.errors?.cells?.[cell.column.id];\n }\n\n async function addCreatedRowChangeset(row) {\n const cells = row.getAllCells();\n\n setPendingChanges(currentChanges => {\n return cells.reduce((changes, cell) => {\n if (cell.getValue()) {\n return {\n ...changes,\n [cell.row.id]: {\n ...changes[cell.row.id],\n [cell.column.id]: cell.getValue(),\n _meta: {\n ...currentChanges[cell.row.id]?._meta,\n original: cell.row.original,\n moveReason: {\n ...currentChanges[cell.row.id]?._meta.moveReason,\n },\n errors: {\n ...currentChanges[cell.row.id]?._meta.errors,\n },\n },\n },\n };\n } else {\n return changes;\n }\n }, currentChanges);\n });\n }\n const pendingChangesUpdater = usePendingChangesUpdater(handleChange, setPendingChanges);\n\n async function setCellValue<T extends TType>(cell: ReactTableCell<T, unknown>, change: unknown, rowIndex: number) {\n const changes = {\n [cell.column.id]: change,\n } as Partial<T>;\n\n setPendingChanges(currentChanges => {\n const nextChanges = createPendingChangesSetter<T>(currentChanges as PendingChanges<T>, cell.row, rowIndex, changes);\n pendingChangesUpdater.syncCellChanges(nextChanges);\n return nextChanges;\n });\n pendingChangesUpdater.runCellUpdates<T>(changes, cell, rowIndex);\n }\n\n async function validateCell<T extends TType>(cell: ReactTableCell<T, unknown>) {\n if (!validator || !isEnabled) {\n return;\n }\n\n const changeSet = getChangesetFromChanges(pendingChanges[cell.row.id]);\n\n // only validate if the cell being blurred actually has any changes\n if (cell.column.id in changeSet) {\n const errors = ((await validator(changeSet)) ?? {}) as Record<string, string>;\n\n setPendingChanges(currentChanges => {\n const nextChanges = { ...currentChanges };\n nextChanges[cell.row.id]._meta = {\n ...nextChanges[cell.row.id]._meta,\n errors: {\n ...nextChanges[cell.row.id]._meta.errors,\n cells: errors,\n hasShownErrorAlert:\n Object.keys(errors).length && !nextChanges[cell.row.id]._meta.errors.hasShownErrorAlert\n ? false\n : nextChanges[cell.row.id]._meta.errors.hasShownErrorAlert,\n },\n };\n return nextChanges;\n });\n }\n }\n\n function hasRowErrors(rowId: string) {\n if (!isEnabled) {\n return false;\n }\n\n return (\n !!pendingChanges[rowId]?._meta.errors?.row || !!Object.keys(pendingChanges[rowId]?._meta.errors?.cells ?? {}).length\n );\n }\n\n function hasRowErrorsSeen(rowId: string) {\n if (!isEnabled) {\n return false;\n }\n\n return hasRowErrors(rowId) && !!pendingChanges[rowId]._meta.errors?.hasShownErrorAlert;\n }\n\n function setRowErrorsSeen(rowId: string) {\n if (pendingChanges[rowId]._meta.errors?.hasShownErrorAlert === false) {\n setPendingChanges(currentChanges => {\n const nextChanges = { ...currentChanges };\n nextChanges[rowId]._meta.errors = {\n ...nextChanges[rowId]._meta.errors,\n hasShownErrorAlert: true,\n };\n return nextChanges;\n });\n }\n }\n\n function getRowSaveStatus(rowId: string) {\n if (!isEnabled) {\n return false;\n }\n\n return saveStates[rowId];\n }\n\n function setRowSaveStatus(rowId: string, status: 'pending' | 'complete' | undefined) {\n setSaveState(currentStates => {\n const nextStates = { ...currentStates };\n\n if (status) {\n nextStates[rowId] = status;\n } else {\n delete nextStates[rowId];\n }\n\n return nextStates;\n });\n }\n\n function getRowMoveReason(rowId: string) {\n return pendingChanges[rowId]?._meta.moveReason ? Object.values(pendingChanges[rowId]._meta.moveReason)[0] : undefined;\n }\n\n function hasChanges(rowId?: string) {\n if (!isEnabled) {\n return false;\n }\n\n return rowId ? !!pendingChanges[rowId] : !!Object.keys(pendingChanges).length;\n }\n\n function hasErrors<T extends TType>(table: ReactTable<T>, tableRef: React.RefObject<TableRef>) {\n if (!isEnabled) {\n return false;\n }\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const focusIsInsideTable = tableRef.current?.contains(document.activeElement);\n\n let activeRow;\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n activeRow = table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex];\n }\n\n return Object.keys(\n getErrors().filter(error => {\n if (activeRow?.id && focusIsInsideTable) {\n return error.rowId === activeRow?.id ? error.pendingChange._meta.errors?.hasShownErrorAlert : true;\n }\n\n return true;\n })\n ).length;\n }\n\n function getErrors<T extends TType>() {\n return Object.keys(pendingChanges)\n .filter(hasRowErrors)\n .map(rowId => ({ rowId, pendingChange: pendingChanges[rowId] as PendingChange<T> }));\n }\n\n function resetChanges(rowId: string) {\n setPendingChanges(currentChanges => {\n const nextChanges = { ...currentChanges };\n delete nextChanges[rowId];\n return nextChanges;\n });\n }\n\n async function saveChanges(rowId: string | undefined = undefined) {\n if (!handleSave) {\n console.warn('Tried to save, but Table has no onEditingSave handler');\n return;\n }\n\n // we save back to pendingChanges, so make a copy of it's state when save was triggered\n const changesToSave = rowId ? { [rowId]: pendingChanges[rowId] } : { ...pendingChanges };\n const changes = Object.keys(changesToSave);\n\n if (changes.length) {\n for (const rowId of changes) {\n const pendingChange = changesToSave[rowId];\n\n const changeSet = getChangesetFromChanges(pendingChange);\n try {\n if (getRowSaveStatus(rowId) === 'pending') return;\n\n // set saving = true\n setRowSaveStatus(rowId, 'pending');\n\n // re-run validation, maybe a cell is already invalid but has never been blurred\n if (validator) {\n const errors = await validator(changeSet);\n\n if (errors && Object.keys(errors).length) {\n throw errors;\n }\n }\n // send new data to the server\n await handleSave(changeSet);\n\n // cleanup changes, we don't need them after saving\n resetChanges(rowId);\n setRowSaveStatus(rowId, 'complete');\n } catch (error) {\n // the onEditingSave handler should throw errors when something fails, e.g. validation, network errors etc\n // this code handles those errors and maps them either to row errors or cell specific errors\n let rowError;\n let cellErrors;\n\n if (typeof error === 'string') {\n rowError = error;\n } else if (error instanceof Error) {\n rowError = error.message;\n\n // most of our apis return error objects within this shape\n if (typeof (error as any).response?.data === 'object') {\n cellErrors = (error as any).response?.data;\n }\n } else if (typeof error === 'object') {\n cellErrors = error;\n }\n\n if (rowError || cellErrors) {\n setPendingChanges(currentChanges => {\n const nextChanges = { ...currentChanges };\n nextChanges[rowId]._meta.errors = {\n row: rowError,\n cells: cellErrors,\n hasShownErrorAlert: nextChanges[rowId]._meta.errors?.hasShownErrorAlert ?? false,\n };\n return nextChanges;\n });\n }\n\n setRowSaveStatus(rowId, undefined);\n }\n }\n }\n }\n\n return {\n getCellValue,\n getCellError,\n setCellValue,\n validateCell,\n addCreatedRowChangeset,\n hasChanges,\n hasErrors,\n getErrors,\n saveChanges,\n resetChanges,\n hasRowErrors,\n hasRowErrorsSeen,\n setRowErrorsSeen,\n getRowSaveStatus,\n setRowSaveStatus,\n getRowMoveReason,\n };\n}\n\nfunction useLastFocusedCellIndex(): [number | undefined, (index: number | undefined) => void] {\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const lastFocusedCellIndexRef = React.useRef<number | undefined>(undefined);\n const setLastFocusedCellIndex = React.useCallback((index: number | undefined) => {\n lastFocusedCellIndexRef.current = index;\n }, []);\n\n return [lastFocusedCellIndexRef.current, setLastFocusedCellIndex];\n}\n\nfunction usePendingChangesUpdater<TType = unknown>(\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n setPendingChanges: React.Dispatch<React.SetStateAction<PendingChanges<TType>>>\n) {\n const updatersRef = React.useRef<PendingChanges<TType>>({});\n\n const runCellUpdates = React.useCallback(\n debounce(async function <T extends TType>(changes: Partial<T>, cell: ReactTableCell<T, unknown>, rowIndex: number) {\n if (typeof handleChange === 'function') {\n const previousValues = {\n ...cell.row.original,\n ...getChangesetFromChanges(updatersRef.current[cell.row.id]),\n };\n const nextValues = {\n ...previousValues,\n ...changes,\n };\n const updates = await handleChange(cell.column.id, changes[cell.column.id], nextValues, previousValues);\n\n if (updates && Object.keys(updates).length) {\n setPendingChanges(currentChanges => createPendingChangesSetter(currentChanges, cell.row, rowIndex, updates));\n }\n }\n }, 250),\n []\n ) as unknown as <T extends TType>(changes: Partial<T>, cell: ReactTableCell<T, unknown>, rowIndex: number) => Promise<void>;\n\n function syncCellChanges<T extends TType>(changes: PendingChanges<T>) {\n updatersRef.current = changes;\n }\n\n return {\n syncCellChanges,\n runCellUpdates,\n };\n}\n\nfunction createPendingChangesSetter<TType = unknown>(\n currentChanges: PendingChanges<TType>,\n row: ReactTableRow<TType>,\n rowIndex: number,\n changes: Partial<TType>\n) {\n // prepare\n const nextChanges: PendingChanges<TType> = { ...currentChanges };\n const rowChanges = {\n ...currentChanges[row.id],\n _meta: {\n ...currentChanges[row.id]?._meta,\n original: row.original,\n moveReason: {\n ...currentChanges[row.id]?._meta.moveReason,\n },\n errors: {\n ...currentChanges[row.id]?._meta.errors,\n },\n },\n } as PendingChange<TType>;\n\n // run changes\n const cells = row._getAllCellsByColumnId();\n\n for (const [accessor, change] of Object.entries(changes)) {\n // update if the change is different to the original (saved) value,\n // otherwise remove any change - no point saving the same value\n if (change !== row.original[accessor]) {\n rowChanges[accessor] = change;\n\n // determine if the row will move position based on this change, and save why it will move\n const reason = willRowMove(cells[accessor], change, rowIndex);\n\n if (reason) {\n rowChanges._meta.moveReason[accessor] = reason;\n } else {\n delete rowChanges._meta.moveReason[accessor];\n }\n } else {\n delete rowChanges[accessor];\n delete rowChanges._meta.moveReason[accessor];\n }\n }\n\n // set changes\n // or delete if there are no changes left, so that we don't store changes with unchanged data\n if (Object.keys(rowChanges).filter(k => k !== '_meta').length) {\n nextChanges[row.id] = rowChanges;\n } else {\n delete nextChanges[row.id];\n }\n\n return nextChanges;\n}\n\nfunction getChangesetFromChanges<TType = unknown>(changes: PendingChange<TType>): TType {\n // extract the original data from the row changes\n const { _meta, ...changeset } = changes ?? {};\n // and mix them in with the changes, ready to send to the server\n return { ..._meta?.original, ...changeset };\n}\n","import React from 'react';\nimport { Cell as ReactTableCell, TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { Tooltip } from '../../../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../../../Provider/Localization';\nimport { Icon } from '../../../../../Icon/Icon';\n\ntype TableRowMoveIndicatorProps<TType = unknown> = {\n cell: ReactTableCell<TType, unknown>;\n cellRef: React.RefObject<HTMLTableCellElement>;\n isActiveRow: boolean;\n};\n\nexport function RowMoveIndicator<TType = unknown>(props: TableRowMoveIndicatorProps<TType>) {\n const { cell, cellRef, isActiveRow } = props;\n const { texts } = useLocalization();\n const [show, setShow] = React.useState(false);\n const tableMeta = cell.getContext().table.options.meta as ReactTableMeta<TType>;\n const columnMeta = (cell.column.columnDef.meta ?? {}) as ReactTableColumnMeta<TType, unknown>;\n const moveReason = tableMeta.editing.getRowMoveReason(cell.row.id);\n\n React.useEffect(() => {\n if (cellRef.current) {\n if (isActiveRow && !!moveReason) {\n const firstChild = cellRef.current.parentElement?.querySelector(`td[data-taco=\"cell-control\"]`);\n\n if (cellRef.current === firstChild) {\n setShow(true);\n cellRef.current.parentElement?.setAttribute('data-row-editing-move', 'true');\n }\n } else {\n setShow(false);\n cellRef.current.parentElement?.removeAttribute('data-row-editing-move');\n }\n }\n\n return () => {\n if (cellRef.current) {\n cellRef.current.parentElement?.removeAttribute('data-row-editing-move');\n }\n };\n }, [cellRef, isActiveRow, moveReason]);\n\n if (!show) {\n return null;\n }\n\n const className =\n 'wcag-blue-500 absolute left-0 top-full ml-1 whitespace-nowrap rounded-b-md px-1 py-1 text-xs font-bold z-10';\n\n const { title, description } = getMessageFromReason(texts, moveReason);\n\n return (\n <Tooltip placement=\"bottom\" title={description.replace('[COLUMN]', columnMeta.header)}>\n <span className={className}>\n <Icon name=\"info\" className=\"-mt-0.5 mr-1 !h-4 !w-4 rounded-full bg-white !p-0 text-blue-500\" />\n {title}\n </span>\n </Tooltip>\n );\n}\n\nfunction getMessageFromReason(texts, reason) {\n let title = '';\n let description = '';\n\n switch (reason) {\n case 'filter':\n title = texts.table3.editing.rowIndicator.rowWillBeHidden;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonFilter;\n break;\n\n case 'search':\n title = texts.table3.editing.rowIndicator.rowWillBeHidden;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonSearch;\n break;\n\n case 'sorting':\n title = texts.table3.editing.rowIndicator.rowWillMove;\n description = texts.table3.editing.rowIndicator.rowWillMoveReasonSorting;\n break;\n }\n\n return { title, description };\n}\n","import * as React from 'react';\nimport cn from 'clsx';\nimport { getInputClasses } from '../Input/util';\nimport { isPressingMetaKey } from '../../utils/keyboard';\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\n /** Draws attention to the textarea by changing its style and making it visually prominent */\n highlighted?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /** Value of the textarea */\n value?: string;\n};\n\nexport const Textarea = React.forwardRef(function Textarea(props: TextareaProps, ref: React.Ref<HTMLTextAreaElement>) {\n const { defaultValue: _, highlighted, invalid, onKeyDown, ...otherProps } = props;\n const classNames = cn(\n getInputClasses(props),\n 'pt-[5px] pb-[7px] min-h-[75px] disabled:resize-none !leading-5',\n props.className\n );\n\n // home and end keys only navigate to the start/end of textarea value if the textarea container does not scroll\n // if it has scroll height then the browser reverts to native scrolling behaviour only\n // so we manually override it to ensure _our_ desired behaviour remains intact\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // prevent any external keyboard shortcuts from executing while typing single characters in textarea\n if (event.key.length === 1 && !isPressingMetaKey(event)) {\n event.stopPropagation();\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n const position = event.key === 'End' ? event.currentTarget.value.length : 0;\n event.currentTarget.setSelectionRange(position, position);\n event.currentTarget.scrollTop = event.key === 'End' ? event.currentTarget.scrollHeight : 0;\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n return <textarea {...otherProps} className={classNames} data-taco=\"textarea\" onKeyDown={handleKeyDown} ref={ref} />;\n});\n","import React from 'react';\nimport { Textarea, TextareaProps } from '../../../../../Textarea/Textarea';\nimport { TableFontSize } from '../../../../../../primitives/Table/types';\nimport { useMergedRef } from '../../../../../../hooks/useMergedRef';\n\ntype TextareaWithAutosizingProps = TextareaProps & {\n fontSize: TableFontSize;\n isTruncated: boolean;\n};\n\nexport const TextareaWithAutosizing = React.forwardRef<HTMLTextAreaElement, TextareaWithAutosizingProps>(\n function TextareaWithAutosizing(props, ref) {\n const { fontSize, isTruncated, ...attributes } = props;\n const internalRef = useMergedRef<HTMLTextAreaElement>(ref);\n const initialHeightRef = React.useRef<number>(0);\n\n React.useLayoutEffect(() => {\n if (internalRef.current) {\n initialHeightRef.current = internalRef.current.getBoundingClientRect().height;\n\n if (!isTruncated) {\n toggleHeight();\n }\n }\n }, [fontSize]);\n\n const toggleHeight = (reset = false) => {\n if (internalRef.current) {\n if (reset) {\n if (isTruncated) {\n internalRef.current.style.height = `${initialHeightRef.current}px`;\n }\n } else {\n internalRef.current.style.height = 'inherit';\n\n if (isTruncated) {\n internalRef.current.style.height = `${Math.min(\n internalRef.current.scrollHeight,\n initialHeightRef.current * 3\n )}px`;\n } else {\n internalRef.current.style.height = `${internalRef.current.scrollHeight}px`;\n }\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n toggleHeight();\n props.onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n if (isTruncated) {\n toggleHeight(true);\n }\n event.target.scrollTop = 0;\n props.onBlur?.(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n toggleHeight();\n props.onChange?.(event);\n };\n\n const textarea = (\n <Textarea\n {...attributes}\n rows={1}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={internalRef}\n />\n );\n\n if (isTruncated) {\n return (\n <div className=\"relative inline-flex w-full focus-within:z-30\" data-taco=\"input-container\">\n {textarea}\n </div>\n );\n }\n\n return textarea;\n }\n);\n","import React from 'react';\nimport { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useAugmentedFocusManager } from '../../../../../primitives/Table/Core/components/Body/util';\nimport { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport { RowContext } from '../../../../../primitives/Table/Core/components/Row/RowContext';\nimport { hasFocusableElement } from '../../../../../utils/dom';\n\nexport function useEditingCellAutofocus<TType = unknown>(props: TableCellRendererProps<TType>) {\n const focusManager = useAugmentedFocusManager();\n const { rowIndex } = React.useContext(RowContext);\n const table = props.cell.getContext().table;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n\n const autoFocus = props.index === tableMeta.editing.lastFocusedCellIndex && isActiveRow;\n\n // focus the cell so that we trigger it's handle focus\n React.useEffect(() => {\n if (props.cellRef.current) {\n const isFocusedElementInCurrentRow = props.cellRef.current.closest('tr')?.contains(document.activeElement);\n const isFocusedElementSearch = document.activeElement?.getAttribute('name') === 'table-search';\n const isFocusedElementMenu = document.activeElement?.getAttribute('role') === 'menu';\n\n if (autoFocus && !isFocusedElementInCurrentRow && !isFocusedElementSearch && !isFocusedElementMenu) {\n props.cellRef.current?.focus();\n }\n }\n }, [autoFocus]);\n\n // when the cell receives focus we actually want to focus the control inside it...\n const handleFocus = (event: React.FocusEvent<HTMLTableCellElement>) => {\n const tableElement = props.cellRef.current?.closest('table');\n\n if (tableElement && table.getIsSomeColumnsPinned() && !props.cell.column.getIsPinned()) {\n const columnFreezingOffset = table.getLeftTotalSize();\n const targetRect = event.currentTarget.getBoundingClientRect();\n const tableRect = tableElement.getBoundingClientRect();\n const leftOffsetFromScrollContainer = targetRect.left - tableRect.left;\n const scrollbarWidth = tableElement.offsetWidth - tableElement.clientWidth; // the width of table vertical scrollbar\n\n if (\n // When pinned column overlaps the focused cell\n leftOffsetFromScrollContainer < columnFreezingOffset ||\n // When focused cell goes behidn the edge of the table\n leftOffsetFromScrollContainer + targetRect.width > tableRect.width - scrollbarWidth\n ) {\n tableElement.scrollTo(props.cell.column.getStart() - columnFreezingOffset, tableElement.scrollTop);\n }\n }\n\n if (event.target === event.currentTarget && hasFocusableElement(event.currentTarget)) {\n focusManager.focusNext();\n }\n };\n\n return handleFocus;\n}\n","import React from 'react';\nimport { TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { isDate } from 'date-fns';\nimport { Datepicker } from '../../../../Datepicker/Datepicker';\nimport { Switch } from '../../../../Switch/Switch';\nimport { Input } from '../../../../Input/Input';\nimport { TableColumnDataType, TableColumnRendererControl, TableFontSize } from '../../../../../primitives/Table/types';\nimport { isWeakEqual as isWeakEqualDate } from '../../../../../utils/date';\nimport { RowMoveIndicator } from './Editing/RowMoveIndicator';\nimport { TextareaWithAutosizing } from './Editing/TextareaWithAutosizing';\nimport { Field } from '../../../../Field/Field';\nimport { isElementInsideOrTriggeredFromContainer } from '../../../../../utils/dom';\nimport { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport { RowContext } from '../../../../../primitives/Table/Core/components/Row/RowContext';\nimport { getCellAttributes } from '../../../../../primitives/Table/Core/components/Columns/Cell/util';\nimport { useEditingCellAutofocus } from './util';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\n\nexport function EditingControlCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, isHighlighted, index } = props;\n const { rowIndex } = React.useContext(RowContext);\n const tableMeta = cell.getContext().table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n\n const handleFocus = useEditingCellAutofocus<TType>(props);\n\n const handleBlur = () => {\n tableMeta.editing.toggleDetailedMode(false);\n tableMeta.editing.validateCell(cell);\n };\n\n // ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)\n React.useEffect(() => {\n const ref = cellRef.current;\n\n return () => {\n if (document.activeElement === ref || isElementInsideOrTriggeredFromContainer(document.activeElement, ref)) {\n handleBlur();\n }\n };\n }, []);\n\n const error = tableMeta.editing.getCellError<TType>(cell);\n\n const controlProps = {\n dataType: columnMeta.dataType,\n fontSize: tableMeta.fontSize.size,\n id: cell.column.id,\n invalid: !!error,\n isDetailedMode: tableMeta.editing.isDetailedMode,\n isTruncated: !!columnMeta.enableTruncate,\n onBlur: handleBlur,\n onChange: (value: unknown) => tableMeta.editing.setCellValue(cell, value, rowIndex),\n row: cell.row.original,\n tabIndex: isActiveRow ? 0 : -1,\n toggleEditing: tableMeta.editing.toggleEditing,\n toggleDetailedMode: tableMeta.editing.toggleDetailedMode,\n type: columnMeta.control ?? 'input',\n value: cell.getValue(),\n };\n\n const cellAttributes = {\n ...getCellAttributes(cell, index, isHighlighted),\n 'data-cell-editing-invalid': error ? true : undefined,\n 'data-taco': 'cell-control',\n onFocus: handleFocus,\n ref: cellRef,\n tabIndex: -1,\n };\n\n return (\n <td {...cellAttributes}>\n <Field invalid={!!error} message={error}>\n <MemoedEditingCell<TType> {...controlProps} />\n </Field>\n {\n // we show row move indicator here within the cell rather than the row because it is\n // an editing only feature, and we don't want to leak editing into the shared row component\n }\n <RowMoveIndicator cell={cell} cellRef={cellRef} isActiveRow={isActiveRow} />\n </td>\n );\n}\n\ntype MemoedEditingCellProps<TType = unknown, TValue = unknown> = {\n dataType?: TableColumnDataType;\n fontSize: TableFontSize;\n id: string;\n invalid: boolean;\n isDetailedMode: boolean;\n isTruncated: boolean;\n onBlur: () => void;\n onChange: (value: TValue) => void;\n row: TType;\n tabIndex?: number;\n toggleEditing: (editing: React.SetStateAction<boolean>) => void;\n toggleDetailedMode: (detailed: React.SetStateAction<boolean>) => void;\n type: TableColumnRendererControl<TType>;\n value: TValue;\n};\n\nconst MemoedEditingCell = React.memo(function MemoedEditingCell<TType = unknown>(props: MemoedEditingCellProps<TType>) {\n const {\n dataType,\n fontSize,\n id,\n invalid,\n isDetailedMode,\n isTruncated,\n onBlur,\n onChange,\n row,\n tabIndex = -1,\n toggleEditing,\n toggleDetailedMode,\n type = 'input',\n value,\n } = props;\n const controlRef = React.useRef<HTMLElement>(null);\n const currentValue = row[id];\n const commonProps = {\n onBlur,\n ref: controlRef,\n tabIndex,\n };\n\n if (typeof type === 'function') {\n const controlFnProps = {\n ...commonProps,\n invalid,\n setValue: onChange,\n value,\n };\n return type(controlFnProps, row);\n }\n\n if (type === 'switch') {\n return (\n <Switch\n {...commonProps}\n checked={Boolean(value)}\n onChange={onChange}\n ref={controlRef as React.RefObject<HTMLButtonElement>}\n />\n );\n }\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n if (target.readOnly) {\n return;\n }\n\n // prevent active row navigation while in detailed mode\n if (\n isDetailedMode &&\n (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n\n // enter or exit detail mode when pressing enter\n if (event.key === 'Enter') {\n // textareas support shift and enter, don't prevent default in that case\n if (event.shiftKey && isDetailedMode) {\n return;\n }\n\n event.preventDefault();\n\n if (isDetailedMode) {\n target.select?.();\n } else {\n target.setSelectionRange?.(target.value?.length, target.value?.length);\n }\n\n toggleDetailedMode(editing => !editing);\n return;\n }\n\n // reset the value, or exit edit mode when pressing escape\n if (event.key === 'Escape') {\n event.preventDefault();\n\n if (isDetailedMode) {\n toggleDetailedMode(false);\n\n if (value !== currentValue) {\n props.onChange(currentValue);\n }\n\n // have to let onChange run before selecting, otherwise the value changes\n requestAnimationFrame(() => target.select?.());\n } else {\n toggleEditing(false);\n }\n\n return;\n }\n\n // toggle into detailed mode when actually inputting something\n if (!isPressingMetaKey(event) && (/^[a-z0-9]$/i.test(event.key) || event.key === 'Backspace')) {\n toggleDetailedMode(true);\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (!isDetailedMode) {\n event.target.select();\n }\n };\n\n if (type === 'datepicker') {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDate = (event as any).detail;\n\n if (!value || !newDate || (isDate(value) && isDate(newDate) && !isWeakEqualDate(value as Date, newDate as Date))) {\n props.onChange((event as any).detail);\n }\n };\n\n return (\n <Datepicker\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n value={value as Date}\n />\n );\n }\n\n if (type === 'textarea') {\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange(event.target.value);\n };\n\n return (\n <TextareaWithAutosizing\n {...commonProps}\n fontSize={fontSize}\n invalid={invalid}\n isTruncated={isTruncated}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n ref={controlRef as React.RefObject<HTMLTextAreaElement>}\n value={String(value ?? '')}\n />\n );\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange(dataType === 'number' && event.target.value ? Number.parseInt(event.target.value) : event.target.value);\n };\n\n return (\n <Input\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n type={dataType === 'number' ? 'number' : undefined}\n value={dataType === 'number' ? (value as number) : String(value ?? '')}\n />\n );\n}) as <TType = unknown>(props: MemoedEditingCellProps<TType>) => JSX.Element;\n","import React from 'react';\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport { useEditingCellAutofocus } from './util';\n\nexport const EditingDisplayCell = React.memo(function EditingDisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const handleFocus = useEditingCellAutofocus<TType>(props);\n return <DisplayCell<TType> {...props} onFocus={handleFocus} tabIndex={-1} />;\n}) as <TType = unknown>(props: TableCellRendererProps<TType>) => JSX.Element;\n","import React from 'react';\nimport { IconButton } from '../../../../IconButton/IconButton';\nimport { Menu } from '../../../../Menu/Menu';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Dialog, DialogProps } from '../../../../Dialog/Dialog';\nimport { Group } from '../../../../Group/Group';\nimport { Button } from '../../../../Button/Button';\n\ntype EditingActionMenuProps = {\n hasChanges: boolean;\n hasErrors: boolean;\n onClear: () => void;\n onExit: () => void;\n onEditingSave: () => Promise<void>;\n isLastRow: boolean;\n};\n\nexport function EditingActionMenu(props: EditingActionMenuProps) {\n const { hasChanges, hasErrors, onClear: handleClear, onExit: handleExit, onEditingSave: handleSave, isLastRow } = props;\n const { texts } = useLocalization();\n\n const handleKeyDown = event => {\n // normally we handle this on change of active row, but when tabbing out of the last row the active row state stays on the last one.\n if (isLastRow && hasChanges && event.key === 'Tab') {\n handleSave();\n }\n };\n\n return (\n <IconButton\n appearance=\"transparent\"\n aria-label={texts.table3.editing.actions.tooltip}\n className=\"group-[[data-row-editing-status]]/row:hidden\"\n icon=\"more\"\n onKeyDown={handleKeyDown}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n <Menu.Item icon=\"tick\" disabled={!hasChanges || hasErrors} onClick={handleSave}>\n {texts.table3.editing.actions.save}\n </Menu.Item>\n <Menu.Item\n icon=\"close\"\n disabled={!hasChanges}\n dialog={props => <ConfirmClearChangesDialog {...props} onClear={handleClear} />}>\n {texts.table3.editing.actions.clear}\n </Menu.Item>\n <Menu.Item icon=\"undo\" onClick={handleExit}>\n {texts.table3.editing.actions.exit}\n </Menu.Item>\n </Menu.Content>\n </Menu>\n )}\n />\n );\n}\n\ntype ConfirmClearChangesDialogProps = Partial<DialogProps> & {\n onClear: () => void;\n};\n\nfunction ConfirmClearChangesDialog(props: ConfirmClearChangesDialogProps) {\n const { onClear: handleClear, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps}>\n <Dialog.Content aria-label={texts.table3.editing.clearChangesConfirmationDialog.title}>\n <Dialog.Title>{texts.table3.editing.clearChangesConfirmationDialog.title}</Dialog.Title>\n\n <p>{texts.table3.editing.clearChangesConfirmationDialog.description}</p>\n\n <Dialog.Footer>\n <Group>\n <Dialog.Close>\n <Button tabIndex={0}>{texts.table3.editing.clearChangesConfirmationDialog.cancel}</Button>\n </Dialog.Close>\n <Dialog.Close>\n <Button tabIndex={0} appearance=\"primary\" autoFocus onClick={handleClear}>\n {texts.table3.editing.clearChangesConfirmationDialog.confirm}\n </Button>\n </Dialog.Close>\n </Group>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport clsx from 'clsx';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Icon } from '../../../../Icon/Icon';\nimport { Spinner } from '../../../../Spinner/Spinner';\n\nconst COMPLETE_INDICATOR_DELAY = 3000;\n\ntype SaveStatusProps<TType = unknown> = {\n rowId: string;\n table: ReactTable<TType>;\n};\n\nexport function SaveStatus<TType = unknown>(props: SaveStatusProps<TType>) {\n const { rowId, table } = props;\n const { texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const status = tableMeta.editing.getRowSaveStatus(rowId);\n\n React.useEffect(() => {\n let timeout;\n\n if (status === 'complete') {\n timeout = setTimeout(() => {\n tableMeta.editing.setRowSaveStatus(rowId, undefined);\n }, COMPLETE_INDICATOR_DELAY);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, [status]);\n\n const className = clsx(\n 'col-span-full sticky ml-auto right-0 top-0 -mb-[100%] z-10 h-8 bg-[inherit] flex items-center px-1.5 shadow-[-6px_0px_6px_var(--table-row-actions-shadow)]',\n {\n 'mt-0.5': tableMeta.rowHeight.height === 'short',\n 'mt-1': tableMeta.rowHeight.height === 'medium',\n 'mt-1.5': tableMeta.rowHeight.height === 'tall',\n 'mt-2': tableMeta.rowHeight.height === 'extra-tall',\n }\n );\n\n return (\n <td className=\"!contents\">\n <span className={className}>\n {status === 'pending' ? (\n <Tooltip title={texts.table3.editing.saving.progress}>\n <Spinner delay={0} className=\"!text-grey-700 mr-1 !h-5 !w-5\" />\n </Tooltip>\n ) : (\n <Tooltip title={texts.table3.editing.saving.complete}>\n <Icon name=\"tick\" className=\"!text-grey-700 mr-1 !h-5 !w-5\" />\n </Tooltip>\n )}\n </span>\n </td>\n );\n}\n","import React from 'react';\nimport { RowData } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\n\nconst RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.validator);\n const creationEnabled = editing.isEnabled && !!props.onEditingCreate;\n\n const extendedProps: Table3Props<TType> = {\n ...props,\n enableRowActions: editing.isEditing ? true : props.enableRowActions,\n rowActions: editing.isEditing\n ? ([\n (_, rowId) => (\n <EditingActionMenu\n hasChanges={editing.hasChanges(rowId)}\n hasErrors={editing.hasRowErrors(rowId)}\n onClear={() => editing.resetChanges(rowId)}\n onEditingSave={() => editing.saveChanges(rowId)}\n onExit={() => editing.toggleEditing(false)}\n isLastRow={!creationEnabled && table.meta.rowActive.rowActiveIndex === table.meta.length - 1}\n />\n ),\n ] as TableRowActionRenderer<TType>[])\n : props.rowActions,\n };\n const meta = { editing };\n const table = useTable<TType, Table3Meta>(extendedProps, ref, RENDERERS, meta);\n\n // listeners\n useTableEditingListener<TType>(table.instance, table.ref);\n\n React.useEffect(() => {\n if (table.ref.current) {\n (table.ref.current as Table3Ref).instance.toggleEditing = (enabled: boolean | undefined) =>\n table.meta.editing.toggleEditing(enabled ?? (editing => !editing));\n }\n }, [table.ref.current]);\n\n return table;\n}\n","import React from 'react';\nimport { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { DisplayRow, DisplayRowProps } from '../../../../primitives/Table/Core/components/Row/BuiltIns/DisplayRow';\nimport { SaveStatus } from './Editing/SaveStatus';\nimport { useAugmentedFocusManager } from '../../../../primitives/Table/Core/components/Body/util';\nimport { setDataFocusAttribute } from '../../../../utils/dom';\n\nexport function Row<TType = unknown>(props: DisplayRowProps<TType>) {\n const { row, index, table } = props;\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === index;\n\n React.useEffect(() => {\n if (tableMeta.editing.isEditing && isActiveRow && tableMeta.editing.lastFocusedCellIndex === undefined) {\n setDataFocusAttribute(focusManager.focusFirst());\n }\n }, [tableMeta.editing.isEditing, tableMeta.rowActive.rowActiveIndex, tableMeta.editing.lastFocusedCellIndex]);\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLTableRowElement>) => {\n if (tableMeta.editing.isEditing) {\n const cellIndex = Number(event.target.closest('td')?.getAttribute('data-cell-index') ?? undefined);\n\n if (!isNaN(cellIndex)) {\n tableMeta.editing.setLastFocusedCellIndex(Number(cellIndex));\n }\n }\n },\n [tableMeta.editing.isEditing, isActiveRow]\n );\n\n const attributes = {\n 'data-row-editing-invalid':\n tableMeta.editing.isEnabled && tableMeta.editing.hasRowErrors(row.id)\n ? !tableMeta.editing.hasRowErrorsSeen(row.id)\n ? 'unseen'\n : true\n : undefined,\n 'data-row-editing-status':\n tableMeta.editing.isEnabled && tableMeta.editing.getRowSaveStatus(row.id)\n ? tableMeta.editing.getRowSaveStatus(row.id)\n : undefined,\n onFocus: handleFocus,\n };\n\n return (\n <DisplayRow<TType> {...props} {...attributes}>\n {tableMeta.editing.getRowSaveStatus(row.id) ? <SaveStatus rowId={row.id} table={table} /> : null}\n </DisplayRow>\n );\n}\n","import React from 'react';\nimport { TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport { RowContext } from '../../../../../primitives/Table/Core/components/Row/RowContext';\nimport { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport { EditingControlCell } from './EditingControlCell';\nimport { EditingDisplayCell } from './EditingDisplayCell';\n\nexport function Cell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell } = props;\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const tableMeta = cell.getContext().table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n if (tableMeta.editing.isEditing) {\n if (columnMeta.control) {\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const cellError = tableMeta.editing.getCellError(cell);\n const hasErrorAndIsEditing = cellError ? tableMeta.editing.isEditing : true;\n\n // saves may be pending when not currently editing, but we want to show the \"changed\" data\n // otherwise the unsaved value flashes in while the request completes, which looks a bit shit\n const changedValue = tableMeta.editing.getCellValue(cell);\n\n if (changedValue !== undefined && changedValue !== cell.getValue() && hasErrorAndIsEditing) {\n // a little hacky, but it seems to work without side effects\n cell.getValue = () => changedValue as any;\n }\n\n if (isActiveRow || !!cellError || (isHovered && !isActiveRow && !tableMeta.rowActive.isHoverStatePaused)) {\n return <EditingControlCell<TType> {...props} />;\n }\n }\n\n return <EditingDisplayCell<TType> {...props} />;\n }\n\n return <DisplayCell<TType> {...props} />;\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport { Alert as BaseAlert, AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { TableRef } from '../../../../primitives/Table/types';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Dialog, DialogProps } from '../../../Dialog/Dialog';\nimport { Group } from '../../../Group/Group';\nimport { Button } from '../../../Button/Button';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n\n const pendingChangesWithErrors = tableMeta.editing.getErrors<TType>();\n\n const activeRow = React.useMemo(\n () => (tableMeta.rowActive.rowActiveIndex ? table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex] : undefined),\n [tableMeta.rowActive.rowActiveIndex]\n );\n\n // mark errors being rendered as seen\n React.useEffect(() => {\n pendingChangesWithErrors.forEach(error => {\n if (activeRow && error.rowId === activeRow.id) {\n return;\n }\n\n tableMeta.editing.setRowErrorsSeen(error.rowId);\n });\n }, [pendingChangesWithErrors]);\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const rowIdentityColumn = tableMeta.rowIdentityColumnId ? table.getColumn(tableMeta.rowIdentityColumnId) : undefined;\n\n pendingChangesWithErrors.forEach((error, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);\n\n const handleClick = () => {\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n } else {\n setShowFilterResetDialog(error.rowId);\n }\n };\n\n let tooltip;\n\n if (error.pendingChange._meta.errors.row) {\n tooltip = error.pendingChange._meta.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(error.pendingChange._meta.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n tooltip = `${columnName}: ${error.pendingChange._meta.errors.cells[firstCellErrorColumnId]}`;\n }\n\n links.push(\n <Tooltip key={error.rowId} title={tooltip}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] : rowIndex + 1}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n requestAnimationFrame(() => {\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === showFilterResetDialog);\n\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n }\n\n setShowFilterResetDialog(false);\n });\n };\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>&nbsp;{message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label=\"Create a new account\">\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n\n <Dialog.Footer>\n <Group>\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button appearance=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Group>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions } from '@tanstack/react-virtual';\nimport { Button } from '../../../../Button/Button';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { animateCreateRow } from '../../../util/editing';\n\ntype Props<TType = unknown> = {\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n onEditingCreate: (() => (row: Partial<TType>) => boolean) | undefined;\n scrollToIndex: (index: number, options?: ScrollToOptions) => void;\n};\n\nexport default function CreateNewRowButton<TType = unknown>(props: Props<TType>) {\n const { onEditingCreate, scrollToIndex, table, tableMeta } = props;\n const { texts } = useLocalization();\n const rows = table.getCoreRowModel().rows;\n const [rowCreated, setRowCreated] = React.useState<{ rowFinder: ((row: Partial<TType>) => boolean) | undefined }>({\n rowFinder: undefined,\n });\n\n const handleKeyDown = event => {\n if (!tableMeta.editing.hasChanges() && event.key === 'Tab') {\n !tableMeta.editing.saveChanges();\n }\n };\n\n const handleCreate = async () => {\n if (!onEditingCreate) {\n return;\n }\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n await tableMeta.editing.saveChanges();\n\n if (!tableMeta.editing.hasRowErrors(createdRow.id)) {\n const rowFinder = onEditingCreate();\n\n setRowCreated({ rowFinder });\n }\n } else {\n const rowFinder = onEditingCreate();\n setRowCreated({ rowFinder });\n }\n };\n\n React.useEffect(() => {\n if (typeof rowCreated?.rowFinder === 'function') {\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n const rowInTable = table.getRowModel().rows.find(row => rowCreated?.rowFinder?.(row.original));\n if (rowInTable) {\n tableMeta.editing.toggleEditing(true);\n tableMeta.rowActive.setRowActiveIndex(createdRow.index);\n scrollToIndex(createdRow.index);\n requestAnimationFrame(() => animateCreateRow(createdRow.id));\n }\n requestAnimationFrame(() => tableMeta.editing.addCreatedRowChangeset(createdRow));\n }\n }\n }, [rowCreated]);\n\n return (\n <tr\n onClick={handleCreate}\n className=\"border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t\">\n <td className=\"!border-t-0 !bg-transparent\">\n <Button onKeyDown={handleKeyDown} className=\"group-hover:bg-grey-200 sticky left-0\" appearance=\"transparent\">\n + {texts.table3.editing.buttons.create.label}\n </Button>\n </td>\n </tr>\n );\n}\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\nimport { ModeSwitch } from '../../../../ModeSwitch/ModeSwitch';\nimport { useGlobalKeyDown } from '../../../../../hooks/useGlobalKeyDown';\nimport { Shortcut } from '../../../../Shortcut/Shortcut';\n\ntype EditingProps<TType = unknown> = React.HTMLAttributes<HTMLButtonElement> & {\n scrollToIndex: any;\n table: ReactTable<TType>;\n};\n\nexport function Editing<TType = unknown>(props: EditingProps<TType>) {\n const { scrollToIndex, table } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const shortcut = { key: 'e', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table3.editing.buttons.edit.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n event.preventDefault();\n ref.current?.click();\n });\n\n const handleChange = (enabled: boolean) => {\n tableMeta.editing.toggleEditing(enabled);\n requestAnimationFrame(() => scrollToIndex(tableMeta.rowActive.rowActiveIndex ?? 0));\n };\n\n return (\n <Tooltip title={tooltip}>\n <ModeSwitch checked={tableMeta.editing.isEditing} onChange={handleChange} ref={ref} />\n </Tooltip>\n );\n}\n","import React from 'react';\nimport { fixedForwardRef } from '../../types';\nimport { useTable3 } from './useTable3';\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { Alert } from './components/Editing/Alert';\nimport CreateNewRowButton from './components/Row/Editing/CreateRowButton';\nimport { Table3Props, Table3Ref, Table3ColumnProps, Table3GroupProps } from './types';\nimport { Editing } from './components/Toolbar/Editing/Editing';\nimport './style.css';\n\nfunction Column<TType = unknown>(_: Table3ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table3Column';\n\nfunction Group(_: Table3GroupProps) {\n return null;\n}\nGroup.displayName = 'Table3Group';\n\nconst BaseTable3 = fixedForwardRef(function BaseTable3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const table3 = useTable3<TType>(props, ref);\n\n const gridAttributes = {\n 'data-table-editing-mode': table3.meta.editing?.isEditing\n ? table3.meta.editing?.isDetailedMode\n ? 'detailed'\n : 'normal'\n : undefined,\n enableHorizontalArrowKeyNavigation: table3.meta.editing.isEditing,\n };\n\n const hasValidationErrors = table3.meta.editing.hasErrors(table3.instance, table3.ref);\n const showCreateRowButton = table3.meta.editing.isEnabled && props.onEditingCreate;\n\n return (\n <Table>\n <Table.Toolbar<TType> table={table3}>\n {table3.meta.editing.isEnabled ? (\n <Editing scrollToIndex={table3.renderer.scrollToIndex} table={table3.instance} />\n ) : null}\n </Table.Toolbar>\n {hasValidationErrors ? (\n <Alert\n className=\"mb-4\"\n scrollToIndex={table3.renderer.scrollToIndex}\n table={table3.instance}\n tableRef={table3.ref}\n />\n ) : null}\n <Table.Grid<TType> {...gridAttributes} data-taco=\"table3\" table={table3}>\n {showCreateRowButton && (\n <CreateNewRowButton\n table={table3.instance}\n tableMeta={table3.meta}\n onEditingCreate={props.onEditingCreate}\n scrollToIndex={table3.renderer.scrollToIndex}\n />\n )}\n </Table.Grid>\n </Table>\n );\n});\n\nexport const Table3 = fixedForwardRef(function Table3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseTable3<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: Table3Props<TType> & React.RefAttributes<Table3Ref>) => JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nTable3.Column = Column;\nTable3.Group = Group;\n\nexport type {\n Table3Props,\n Table3Ref,\n Table3ColumnProps,\n Table3GroupProps,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n Table3FeatureProps,\n Table3Texts,\n} from './types';\n","import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../hooks/useLazyEffect';\nimport { isElementInsideOrTriggeredFromContainer } from '../../../utils/dom';\nimport { TableRef } from '../../../primitives/Table/types';\n\nexport function useTableEditingListener<TType = unknown>(table: ReactTable<TType>, tableRef: React.RefObject<TableRef>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const saveChanges = () => {\n requestAnimationFrame(() => {\n tableMeta.editing.saveChanges();\n });\n };\n\n // save when the row changes\n useLazyEffect(() => {\n if (tableMeta.editing.isEditing) {\n saveChanges();\n }\n }, [tableMeta.rowActive.rowActiveIndex]);\n\n useLazyEffect(() => {\n if (tableMeta.editing.isEditing) {\n if (tableMeta.rowActive.rowActiveIndex === undefined) {\n tableMeta.rowActive.setRowActiveIndex(0);\n }\n } else {\n // save\n saveChanges();\n // reset detailed mode\n tableMeta.editing.toggleDetailedMode(false);\n // reset the last index back to the first focusable element, when editing gets turned off\n tableMeta.editing.setLastFocusedCellIndex(undefined);\n }\n }, [tableMeta.editing.isEditing]);\n\n // show a warning if the user navigates away without triggering save, such as using the browser back/forward button\n const hasChanges = tableMeta.editing.hasChanges();\n\n React.useEffect(() => {\n function showUnsavedChangesWarning(event: BeforeUnloadEvent) {\n if (tableMeta.editing.isEditing && hasChanges) {\n event.returnValue = true;\n return true;\n }\n\n return false;\n }\n\n window.addEventListener('beforeunload', showUnsavedChangesWarning);\n\n return () => {\n window.removeEventListener('beforeunload', showUnsavedChangesWarning);\n };\n }, [tableMeta.editing.isEditing, hasChanges]);\n\n React.useEffect(() => {\n const onClickOutside = (event: MouseEvent) => {\n if (tableMeta.editing.isEditing) {\n const element = (event.target as Element)?.getAttribute('data-taco') ?? '';\n\n const insideTable =\n isElementInsideOrTriggeredFromContainer(event.target as Element, tableRef.current) || element === 'backdrop';\n\n if (!insideTable) {\n saveChanges();\n }\n }\n };\n\n document.addEventListener('click', onClickOutside);\n\n return () => document.removeEventListener('click', onClickOutside);\n }, [saveChanges, tableMeta.editing.isEditing]);\n}\n","import * as React from 'react';\nimport cn from 'clsx';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { Orientation } from '../../types';\nimport { getButtonClasses } from '../Button/util';\nimport { Tooltip } from '../Tooltip/Tooltip';\n\nexport type TabsProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | JSX.Element;\n};\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n};\n\nexport type ForwardedTabsWithStatics = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n return (\n <TabsPrimitive.Root\n {...otherProps}\n className={className}\n data-taco=\"tabs\"\n defaultValue={defaultId}\n dir=\"ltr\"\n onValueChange={onChange}\n orientation={orientation}\n ref={ref}\n value={id}>\n {children}\n </TabsPrimitive.Root>\n );\n}) as ForwardedTabsWithStatics;\n\nconst TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn(\n 'border-grey-300 flex flex-row m-0 mb-4 print:hidden',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:border-r aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col',\n props.className\n );\n\n return <TabsPrimitive.List {...props} className={className} ref={ref} />;\n});\n\nconst TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n\n const triggerClassName = cn(\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // horizontal\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'group-focus-visible:yt-focus-inset group-enabled:group-hover:wcag-grey-200 pointer-events-none rounded px-3'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:rounded-t-sm [[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:-mb-px [[aria-orientation=\"horizontal\"]_&]:h-0.5',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:rounded-l-sm [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:-mr-px [[aria-orientation=\"vertical\"]_&]:w-0.5'\n );\n\n const trigger = (\n <TabsPrimitive.Trigger {...otherProps} className={triggerClassName} disabled={disabled} ref={ref} value={id}>\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </TabsPrimitive.Trigger>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n\nconst TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, ...otherProps } = props;\n const className = cn('[&[data-orientation=\"vertical\"]]:grow outline-none', props.className);\n\n return <TabsPrimitive.Content {...otherProps} className={className} ref={ref} value={id} />;\n});\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabContent;\n","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 const 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.300\n primaryColor: '#6ba4ff',\n },\n }}\n disableCloseOnEsc\n />\n );\n};\n\nTour.Step = TourStep;\n","import React from 'react';\nimport cn from 'clsx';\nimport { IconButton, IconButtonProps } from '../../IconButton/IconButton';\n\nexport type ButtonProps = Omit<IconButtonProps, 'appearance' | 'aria-label'> & {\n 'aria-label': string;\n};\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(props, ref) {\n const { ...attributes } = props;\n const className = cn(getButtonClasses(), props.className);\n\n return <IconButton {...attributes} appearance=\"discrete\" className={className} data-taco=\"header-button\" ref={ref} />;\n});\n\nexport const getButtonClasses = (rounded = true) =>\n cn(\n '!h-9 !w-9 flex-shrink-0 flex-grow-0 cursor-pointer relative',\n 'focus:!outline-none focus:!shadow-none focus-visible:!yt-focus-dark ',\n 'bg-transparent enabled:hover:bg-white/[.08] focus:bg-white/[.08] aria-current-page:bg-white/[.08]',\n 'text-white',\n {\n '!rounded-full': rounded,\n }\n );\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Badge } from '../../Badge/Badge';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type BaseLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n tooltip?: string;\n};\n\ninterface LinkPropsWithoutIcon extends BaseLinkProps {\n children: JSX.Element | string;\n icon?: never;\n isNew?: never;\n}\n\ninterface LinkPropsWithIcon extends Omit<BaseLinkProps, 'aria-label'> {\n 'aria-label': string;\n children?: never;\n icon: IconName;\n isNew?: boolean;\n}\n\nexport type LinkProps = LinkPropsWithoutIcon | LinkPropsWithIcon;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) {\n const { children, icon, isNew, tooltip, ...otherProps } = props;\n const { texts } = useLocalization();\n const className = cn(getLinkClasses(icon), 'relative', props.className);\n\n const link = (\n <a {...otherProps} className={className} data-taco=\"header-link\" ref={ref} tabIndex={0}>\n {icon ? <Icon name={icon} /> : null}\n {children}\n {isNew ? (\n <Badge\n color=\"blue\"\n small\n className=\"absolute right-0 top-0 -mr-2.5 -mt-1.5 !h-3 !px-0.5 text-[0.55rem] font-normal\">\n {texts.header.new}\n </Badge>\n ) : null}\n </a>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{link}</Tooltip>;\n }\n\n return link;\n});\n\nexport const getLinkClasses = (icon: IconName | undefined = undefined) =>\n cn(\n 'flex h-8 flex-shrink-0 flex-grow-0 cursor-pointer items-center justify-center ',\n 'focus:!shadow-none focus:!outline-none focus-visible:!yt-focus-dark',\n 'bg-transparent hover:bg-white/[.08] focus:bg-white/[.08] aria-current-page:bg-white/[.08]',\n 'text-white hover:text-white focus:text-white',\n {\n '!rounded-full !h-9 !w-9': icon,\n 'whitespace-nowrap px-3 rounded text-sm hidden lg:flex': !icon,\n }\n );\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type LogoProps = React.SVGAttributes<SVGSVGElement>;\n\nexport const Logo = React.forwardRef<SVGSVGElement, LogoProps>(function Logo(props, ref) {\n const className = cn('h-7 w-7 m-1 self-center justify-self-center flex-shrink-0 flex-grow-0', props.className);\n\n return (\n <svg {...props} className={className} ref={ref} viewBox=\"0 0 28 28\" xmlns=\"http://www.w3.org/2000/svg\">\n <g className=\"fill-brand-sunsetOrange\">\n <path d=\"M3.2496172 16.0366c-1.44938-.2893-2.857854.6517-3.1442248 2.1011-.2863702 1.4493.6516388 2.8578 2.1010248 3.1442 1.44938.2893 2.85786-.6517 3.14423-2.101.28929-1.4465-.65164-2.855-2.10103-3.1443z\" />\n <path d=\"M18.9911672 19.1692c-2.4137-.4792-4.7602 1.0871-5.2423 3.5037-.4793 2.4137 1.087 4.7602 3.5036 5.2423 2.4137.4793 4.7602-1.087 5.2424-3.5036.4792-2.4166-1.0871-4.7631-3.5037-5.2424z\" />\n <path d=\"M23.6958672.105135c-2.8988-.578585-5.7157 1.303275-6.2943 4.199125l-.5172 2.62116c-.3828 1.93446-2.2647 3.19098-4.1992 2.80819l-1.7474-.35651c-1.92569-.3828-3.18221-2.25589-2.79941-4.19035l.08766-.43832c.33021-1.68608-.7656-3.33417-2.45168-3.66438-1.69776-.336043-3.33709.75976-3.67606 2.45461-.33897 1.68607.76561 3.3254 2.45168 3.66437l.43833.09058c1.93446.3828 3.19098 2.26467 2.79941 4.19039l-.16948.8737c-.3828 1.9345.87372 3.8163 2.79945 4.1991 1.9344.3828 3.8163-.8737 4.1991-2.8082l.1695-.8737c.3828-1.9257 2.2646-3.1822 4.1903-2.7994l2.63.526c2.8987.5698 5.7157-1.31206 6.2855-4.20791.5844-2.90169-1.2974-5.718636-4.1962-6.288455z\" />\n </g>\n </svg>\n );\n});\n\nexport const LogoLegacy = React.forwardRef<SVGSVGElement, LogoProps>(function Logo(props, ref) {\n const className = cn('-mr-[156px] xs:-mr-14 md:!mr-0 h-9 shrink-0 w-[180px] px-1', props.className);\n\n return (\n <svg {...props} className={className} ref={ref} viewBox=\"0 0 127 13\" xmlns=\"http://www.w3.org/2000/svg\">\n <g className=\"fill-white\">\n <path\n className=\"fill-white\"\n d=\"M5.716016 1.34924242c3.029712.25015152 6.374384 1.74121213 8.2804 3.86060606 2.4384 2.71227273 1.603248 5.42454542-1.877568 6.05681822-3.480816.6322727-8.2804-1.0498485-10.720832-3.76212125C-.471424 5.42848485-.41656 3.35242424 1.27 2.2080303l9.67232 6.92742425-5.226304-7.78621213z\"\n fillRule=\"nonzero\"\n />\n <g className=\"hidden md:flex\">\n <path\n d=\"M53.67528 11.2509091l-1.2192-4.72727274c-.176784-.56333333-.24384-1.12666666-.36576-1.6880303h-.026416c-.107696.57515152-.148336 1.13848485-.308864 1.71363636l-1.22936 4.70954548h-2.101088l2.822448-9.87409093h1.647952l2.942336 9.86424243-2.162048.0019697z\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M21.553424 1.38469697l1.2192 4.72727273c.174752.56333333.241808 1.12469697.363728 1.6880303h.026416c.107696-.57515152.148336-1.13848485.310896-1.71363636l1.2192-4.70954546h2.105152L23.9776 11.2410606h-1.64592l-2.938272-9.85636363h2.160016z\"\n fillRule=\"nonzero\"\n />\n <path fillRule=\"nonzero\" d=\"M28.313888 1.38666667h2.01168v9.86424243h-2.01168z\" />\n <path\n fillRule=\"nonzero\"\n d=\"M41.694608 1.38666667l.983488 5.82045454h.026416l.808736-5.82045454h2.700528l1.0668 9.86424243h-2.064512l-.485648-7.10469698h-.028448l-.323088 2.43257576-.865632 4.67212122h-1.550416l-.98552-4.72333334L40.64 4.32939394v-.18318182h-.026416l-.296672 7.10469698h-2.160016l.890016-9.86424243z\"\n />\n <path\n d=\"M35.310064 1.38469697c-.3577988.27917284-.6303655.64756811-.788416 1.06560606-.526288 1.22909091.036576 2.16666667.534416 3.00575758.073152.12409091.148336.24818181.217424.37227272 1.085088 1.80424243 1.515872 3.13378788.705104 5.02863637-.056896.1339394-.191008.3939394-.191008.3939394h-2.424176c.3204254-.2482168.5741848-.5678542.739648-.9316667.556768-1.30196967-.099568-2.49166664-.735584-3.64393937-.764032-1.37878788-1.552448-2.81863636-.715264-4.78045455.079248-.18712121.254-.50424242.254-.50424242l2.403856-.00590909z\"\n fillRule=\"nonzero\"\n />\n </g>\n </g>\n <g className=\"xs:flex xs:-translate-x-[40px] hidden md:!translate-x-0\">\n <path className=\"stroke-white\" d=\"M61.496448 0v12.8680303\" strokeWidth=\"1.68\" />\n <g className=\"fill-white\">\n <path\n d=\"M70.841616 9.70863636c-.999744 0-1.7888373-.29479798-2.36728-.88439394-.5784427-.58959596-.867664-1.40964646-.867664-2.46015151 0-1.05707071.2709333-1.89681818.8128-2.51924243.5304376-.61728629 1.3256457-.96197654 2.15392-.93363636.7626734-.03509605 1.5014967.26264579 2.013712.81151515.4944533.53969697.7410027 1.25272728.739648 2.13909091v.62833334h-4.659376c.022352.77015151.221488 1.35318181.6096 1.7530303.388112.39984848.916432.59090909 1.607312.59090909.743701-.00293405 1.4788698-.15377248 2.160016-.44318182v.88636364c-.3298144.14174433-.6736336.25063692-1.02616.325-.3855929.07188992-.7778273.1048941-1.170432.09848485m-.27432-5.95242425c-.4900374-.02138848-.9649513.16736328-1.298448.51606061-.3477231.40033357-.5485505.90121019-.570992 1.42409091h3.53568c0-.62636364-.14224-1.1069697-.430784-1.43984849-.3103282-.34233825-.7661196-.52691285-1.235456-.50030303\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M75.053952 6.25575758c-.0151689-.21657791.0536783-.43083638.19304-.60075758.1381463-.1429001.3347885-.21871211.536448-.20681818.2081607-.01140173.4114497.0638378.5588.20681818.2680858.35762602.2680858.84191943 0 1.19954545-.3018073.26987298-.7638609.27916874-1.07696.02166667-.1529999-.17086259-.2265151-.39533511-.2032-.62045454\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M81.586832 9.70863636c-.979424 0-1.73736-.29217171-2.273808-.87651515-.536448-.58434343-.8073813-1.41095959-.8128-2.47984848 0-1.09777778.2709333-1.94540404.8128-2.54287879.5418667-.59747475 1.318768-.89686869 2.330704-.89818182.3279782-.00003668.654999.03430434.97536.10242424.2639542.04817256.5206342.12824173.764032.23833334l-.31496.845c-.2397537-.0929503-.4871838-.16608946-.739648-.21863637-.2330197-.05435362-.4715521-.08342113-.7112-.08666666-1.373632 0-2.060448.84959596-2.060448 2.54878788 0 .80494949.1673013 1.42343434.501904 1.85545454.33528.42939394.83312.64606061 1.491488.64606061.5966181-.00678768 1.1861142-.12655871 1.735328-.35257576v.87848485c-.5339642.24467285-1.120715.3615322-1.710944.34075757\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M90.690192 6.30893939c0 1.06757576-.278384 1.90207071-.835152 2.50348485-.556768.60141414-1.3241867.90146465-2.302256.90015152-.5660565.00980534-1.1238362-.13269357-1.611376-.41166667-.4744234-.28111893-.8520726-.69243374-1.085088-1.18181818-.2674171-.5661279-.3987341-1.18372355-.384048-1.80621212 0-1.06888889.2756747-1.90207071.827024-2.49954546.5513493-.59747474 1.316736-.89555555 2.29616-.89424242.8559447-.03726298 1.6841715.29875604 2.257552.91590909.556768.61060606.8358293 1.43656566.837184 2.47787879m-5.155184 0c0 .83777778.17272 1.47595959.51816 1.91454545.34544.43858586.85344.65787879 1.524.65787879s1.1799147-.21863636 1.528064-.65590909.522224-1.07611111.522224-1.91651515c0-.83515152-.1740747-1.46873738-.522224-1.90075758-.3481493-.4320202-.861568-.64868687-1.540256-.65-.67056 0-1.176528.21469697-1.517904.64015152-.341376.42545454-.512064 1.06363636-.512064 1.91060606\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M96.989392 9.58848485V5.34575758c0-.53444445-.1253067-.9329798-.37592-1.19560606-.251968-.2639394-.644144-.3939394-1.180592-.3939394-.707136 0-1.225296.18580808-1.55448.55742424-.329184.37161617-.493776.98419192-.493776 1.83772728v3.43909091h-1.02616V3.03136364h.83312l.168656.89621212h.048768c.213947-.32669621.5199877-.58712571.881888-.75045455.3956439-.18075251.8285923-.27169306 1.265936-.26590909.8128 0 1.4257867.19040404 1.83896.57121212.4131733.38080808.6163733.99010101.6096 1.82787879v4.27818182h-1.016z\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M105.759504 6.30893939c0 1.06757576-.277707 1.90207071-.83312 2.50348485-.555413.60141414-1.322832.90146465-2.302256.90015152-.566147.01053143-1.124127-.1320188-1.611376-.41166667-.474546-.2815508-.852738-.69268701-1.08712-1.18181818-.2666505-.56630799-.397268-1.18388155-.382016-1.80621212 0-1.06888889.2756747-1.90207071.827024-2.49954546.551349-.59747474 1.316736-.89555555 2.29616-.89424242.948267 0 1.700107.30530303 2.25552.91590909.555413.61060606.834475 1.43525253.837184 2.47393939m-5.155184 0c0 .83777778.17272 1.4759596.51816 1.91454546.34544.43924242.855472.65787879 1.526032.65787879.589088.03526465 1.159066-.20939357 1.528064-.65590909.348149-.43727273.521547-1.07611112.520192-1.91651516-.001355-.84040404-.174752-1.4739899-.520192-1.90075757-.349504-.43333334-.861568-.65-1.540256-.65-.678688 0-1.17856.21469697-1.519936.64015151-.341376.42545455-.512064 1.06363637-.512064 1.91060606\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M116.1796 9.58848485V5.32409091c0-.52525253-.115147-.91919192-.34544-1.18181818-.229616-.26-.58928-.3939394-1.074928-.3939394-.635339 0-1.109472.1779293-1.4224.53378788-.312928.35585859-.465328.90212121-.4572 1.63878788v3.66166667h-1.016V5.32409091c0-.52525253-.115824-.91919192-.347472-1.18181818-.229616-.26-.58928-.3939394-1.078992-.3939394-.642112 0-1.113536.1969697-1.410208.55939394-.296672.36242425-.449072.98484849-.449072 1.83575758v3.43909091h-1.016V3.03136364h.83312l.166624.89621212h.0508c.192326-.31859024.474248-.57752095.8128-.74651515.36534-.18279258.771528-.27547583 1.182624-.26984849 1.05664 0 1.748197.3709596 2.074672 1.11287879h.048768c.20551-.34688729.509496-.62924665.875792-.81348485.403616-.20402984.853472-.30695163 1.308608-.29939394.765387 0 1.338411.19040404 1.719072.57121212.380661.38080808.570992.99010101.570992 1.82787879v4.27818182h-1.02616z\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M119.16664 1.25272727c-.016875-.18221767.045768-.36295537.17272-.49833333.243232-.21393452.614272-.21393452.857504 0 .129279.13353172.194239.31385023.178816.49636364.015568.18371514-.049334.36530074-.178816.50030303-.240531.22061195-.616973.22061195-.857504 0-.125769-.13683457-.188192-.31765204-.17272-.50030303v.00196969zm1.111504 8.33378788h-1.02616V3.03136364h1.02616v6.55515151z\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M125.091952 9.70863636c-.979424 0-1.738037-.29217171-2.27584-.87651515-.537803-.58434343-.808736-1.41095959-.8128-2.47984848 0-1.09777778.270933-1.94540404.8128-2.54287879.541867-.59747475 1.318768-.89686869 2.330704-.89818182.327978-.00003668.654999.03430434.97536.10242424.264596.04821437.521943.12827865.766064.23833334l-.31496.845c-.239852-.09267891-.487258-.16581103-.739648-.21863637-.233047-.05421-.471563-.08327549-.7112-.08666666-1.373632 0-2.061125.84959596-2.06248 2.54878788 0 .80494949.167979 1.42343434.503936 1.85545454.33528.42939394.83312.64606061 1.491488.64606061.595961-.00679074 1.184792-.12656681 1.733296-.35257576v.87848485c-.533172.24487796-1.119318.3617557-1.708912.34075757\"\n fillRule=\"nonzero\"\n />\n </g>\n </g>\n </svg>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { getLinkClasses } from './Link';\nimport { useLocalization } from '../../Provider/Localization';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Button } from '../../Button/Button';\nimport { OverflowGroup } from '../../OverflowGroup/OverflowGroup';\n\nexport type PrimaryNavigationProps = React.HTMLAttributes<HTMLElement>;\n\nexport const PrimaryNavigation = React.forwardRef<HTMLElement, PrimaryNavigationProps>(function PrimaryNavigation(props, ref) {\n const { texts } = useLocalization();\n const internalRef = useMergedRef<HTMLDivElement>(ref);\n\n const className = cn(\n 'flex h-full w-full flex-grow items-center overflow-hidden active:outline-none relative',\n props.className\n );\n\n const moreButton = () => (\n <Button className={cn(getLinkClasses(), '!bg-transparent aria-expanded:!bg-white/[.08]')}>{texts.header.more}</Button>\n );\n return (\n <nav {...props} className={className} ref={internalRef}>\n <OverflowGroup className=\"h-full flex-grow items-center gap-1 px-1\" moreButton={moreButton}>\n {props.children}\n </OverflowGroup>\n </nav>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type SecondaryNavigationProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SecondaryNavigation = React.forwardRef<HTMLDivElement, SecondaryNavigationProps>(function SecondaryNavigation(\n props,\n ref\n) {\n const className = cn('flex h-full items-center gap-2 mb-0 flex-shrink-0 mr-2', props.className);\n return <div {...props} className={className} ref={ref} />;\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { getButtonClasses } from './Button';\n\nexport type MenuButtonProps = {\n onClick: () => void;\n};\n\nexport const MenuButton = React.forwardRef<HTMLButtonElement, MenuButtonProps>(function MenuButton(props, ref) {\n const className = cn(\n getButtonClasses(false),\n 'mr-1 !bg-transparent hover:!bg-white/[.08] focus:!bg-white/[.08]] lg:hidden z-[2] !text-white'\n );\n\n return <IconButton {...props} className={className} data-taco=\"header-toggle-sidebar\" icon=\"menu\" ref={ref} />;\n});\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type AgreementAvatarProps = React.ImgHTMLAttributes<HTMLImageElement> & { fallbackSrc: string };\n\nexport const AgreementAvatar = React.forwardRef<HTMLImageElement, AgreementAvatarProps>(function AgreementAvatar(props, ref) {\n const { src, fallbackSrc, ...otherProps } = props;\n const [loaded, setLoaded] = React.useState(false);\n const handleLoad = () => setLoaded(true);\n const handleError = event => {\n event.target.src = fallbackSrc;\n };\n\n const className = cn(\n 'h-9 w-9 rounded-full shrink-0 group-focus:yt-focus-dark xl:group-focus:shadow-none',\n {\n visible: loaded,\n },\n props.className\n );\n\n return <img {...otherProps} className={className} src={src} onLoad={handleLoad} onError={handleError} ref={ref} />;\n});\n","import React from 'react';\nimport { Badge } from '../../../Badge/Badge';\nimport { Agreement } from './types';\n\nexport type AgreementBadgeProps = React.HTMLAttributes<HTMLSpanElement> & {\n agreement: Agreement;\n};\n\nexport const AgreementBadge = ({ agreement, ...props }: AgreementBadgeProps) => {\n if (agreement.isAdministrator) {\n return (\n <Badge {...props} color=\"blue\" small>\n Admin\n </Badge>\n );\n } else if (agreement.isDeveloper) {\n return (\n <Badge {...props} color=\"blue\" small>\n Developer\n </Badge>\n );\n }\n\n return null;\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon } from '../../../Icon/Icon';\nimport { AgreementAvatar } from './Avatar';\nimport { Agreement } from './types';\nimport { AgreementBadge } from './Badge';\n\nexport type AgreementItemProps = Agreement & {\n children?: JSX.Element | null;\n className?: string;\n fallbackImageSrc: string;\n};\n\nexport const AgreementItem = (props: AgreementItemProps) => {\n const { children, className: customClassName, fallbackImageSrc, ...agreement } = props;\n const className = cn('w-full rounded flex px-2 gap-2 overflow-hidden text-left items-center', customClassName);\n\n return (\n <span className={className}>\n <AgreementAvatar\n fallbackSrc={fallbackImageSrc}\n src={agreement.imageSrc}\n title={`${agreement.name} - ${agreement.number} ${agreement.userId}`}\n />\n <span className=\"flex flex-col overflow-hidden\">\n <span className=\"flex truncate text-white\" title={agreement.name}>\n <span className=\"truncate\">{agreement.name}</span>{' '}\n {agreement.secure ? (\n <Icon name=\"secure-tick\" className=\"mb-0.5 ml-1 mt-0.5 !h-4 !w-4 flex-shrink-0 flex-grow-0\" />\n ) : null}\n </span>\n <span className=\"text-grey-100 whitespace-nowrap text-xs\">\n {agreement.number} {agreement.userId} <AgreementBadge agreement={agreement} />\n </span>\n </span>\n {children}\n </span>\n );\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { Agreement } from './types';\nimport { AgreementAvatar } from './Avatar';\nimport { AgreementItem } from './Item';\nimport { AgreementBadge } from './Badge';\nimport { useMatchMedia } from '../../../../hooks/useMatchMedia';\n\nexport type AgreementDisplayProps = {\n children?: JSX.Element | null;\n className?: string;\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n};\n\nexport const AgreementDisplay = (props: AgreementDisplayProps) => {\n const { children, currentAgreement, fallbackImageSrc } = props;\n const isXlScreen = useMatchMedia('(min-width: 1280px)', window.innerWidth > 1280);\n\n if (isXlScreen) {\n const className = cn('h-12 flex-grow xl:[button>&]:hover:bg-white/[0.16]', props.className);\n return (\n <AgreementItem {...currentAgreement} children={children} className={className} fallbackImageSrc={fallbackImageSrc} />\n );\n }\n\n return (\n <span className=\"relative flex h-12 flex-grow items-center pr-2\">\n <AgreementAvatar\n fallbackSrc={fallbackImageSrc}\n src={currentAgreement.imageSrc}\n title={`${currentAgreement.name} - ${currentAgreement.number} ${currentAgreement.userId}`}\n />\n <AgreementBadge agreement={currentAgreement} className=\"absolute right-0 top-0 -mr-1 w-8 !justify-start\" />\n </span>\n );\n};\n","import React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as CollectionPrimitive from '../../../primitives/Collection/Collection';\nimport { AgreementItem } from './Agreement/Item';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Icon } from '../../Icon/Icon';\nimport { SearchInput } from '../../SearchInput/SearchInput';\nimport { Button } from '../../Button/Button';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Agreement } from './Agreement/types';\nimport { AgreementDisplay as Display } from './Agreement/Display';\n\nconst Container = props => {\n return (\n <div\n className=\"-ml-2 flex flex-shrink-0 flex-grow-0 items-center gap-2 pr-2 xl:ml-auto xl:w-64\"\n data-taco=\"header-agreements\">\n <span className=\"hidden h-8 w-px flex-shrink-0 flex-grow-0 bg-white/[0.3] xl:flex\" />\n {props.children}\n </div>\n );\n};\n\nexport type AgreementSelectorProps = {\n agreements: Agreement[];\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n filterAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;\n filterClientAgreement: (agreement: Agreement, searchValue: string, filter: (agreement: Agreement) => boolean) => void;\n onAddAgreement?: () => void;\n onChangeAgreement: (agreement: Agreement) => void;\n onLogout: () => void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n};\n\nexport function AgreementSelector(props: AgreementSelectorProps) {\n const {\n agreements,\n currentAgreement,\n fallbackImageSrc,\n filterAgreement = () => true,\n filterClientAgreement = () => true,\n onAddAgreement: handleAddAgreement,\n onChangeAgreement,\n onLogout: handleLogout,\n open: prop,\n setOpen: onChange,\n } = props;\n const { texts } = useLocalization();\n const collectionRef = React.useRef<CollectionPrimitive.CollectionRef | null>(null);\n const [open, setOpen] = useControllableState<boolean>({\n onChange,\n prop,\n });\n const [search, setSearch] = React.useState('');\n\n React.useEffect(() => {\n setSearch('');\n }, [open]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n event.preventDefault();\n collectionRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n }\n };\n\n const handleChangeAgreement = (agreement: Agreement) => {\n onChangeAgreement(agreement);\n setOpen(false);\n };\n\n return (\n <Container>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger className=\"xl:focus-visible:yt-focus-dark [&:focus-visible_img]:yt-focus-dark w-full rounded outline-none xl:[&:focus-visible_img]:shadow-none\">\n <Display currentAgreement={currentAgreement} fallbackImageSrc={fallbackImageSrc}>\n {agreements ? (\n <Icon\n className=\"ml-auto hidden flex-shrink-0 flex-grow-0 text-white xl:flex\"\n name={open ? 'chevron-up' : 'chevron-down'}\n />\n ) : null}\n </Display>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content className=\"z-[996] mt-2 flex h-[calc(100vh_-_theme(spacing.16))] w-64 flex-col gap-1 bg-blue-900\">\n <SearchInput\n autoFocus\n className=\"focus-visible:!yt-focus-dark mx-2 !border-transparent !bg-white/[0.08] !text-white hover:!bg-white/[0.16] hover:!shadow-none focus:!bg-white/[0.16] active:!bg-white/[0.16] [&+div>button]:!text-white\"\n onChange={event => setSearch(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={texts.header.search}\n />\n <CollectionPrimitive.Root\n querySelector=\"button\"\n className=\"-my-1 flex w-full flex-grow flex-col gap-1 overflow-auto px-2 py-1 outline-none\"\n ref={collectionRef}\n tabIndex={-1}>\n {agreements\n ?.filter(agreement => filterAgreement(agreement, filterBySearchValue(search)))\n .map(agreement => {\n const button = createAgreementButton(\n agreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(agreement, currentAgreement)\n );\n\n if (agreement.clients) {\n return (\n <span\n className=\"flex flex-col gap-px [&>*:first-child>span]:!rounded-t [&>*:last-child>span]:!rounded-b [&>*>span]:!rounded-none\"\n key={`${agreement.number}_${agreement.userId}_clients`}>\n {filterBySearchValue(search)(agreement) ? button : null}\n {agreement.clients\n .filter(agreement =>\n filterClientAgreement(agreement, search, filterBySearchValue(search))\n )\n .map(clientAgreement =>\n createAgreementButton(\n clientAgreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(clientAgreement, currentAgreement)\n )\n )}\n </span>\n );\n }\n\n return button;\n })}\n </CollectionPrimitive.Root>\n {handleAddAgreement ? (\n <Button\n className=\"focus-visible:!yt-focus-dark my-1 mx-2 !h-9 shrink-0 !bg-white/[0.08] !text-white hover:!bg-white/[0.16]\"\n onClick={handleAddAgreement}>\n {texts.header.addAgreement}\n </Button>\n ) : null}\n <hr className=\"my-0 h-px w-full bg-white/[0.08]\" />\n <a\n className=\"focus-visible:yt-focus-dark mx-2 mb-2 flex h-8 shrink-0 items-center justify-center rounded text-white hover:cursor-pointer hover:text-white hover:underline focus-visible:outline-none\"\n onClick={handleLogout}\n tabIndex={0}>\n {texts.header.logout}\n </a>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Root>\n </Container>\n );\n}\n\nconst filterBySearchValue = (search: string) => (agreement: Agreement) => {\n if (!search || !search.length) {\n return true;\n }\n\n const matchesAgreementNumber = String(agreement.number).indexOf(search) > -1;\n const matchesCompanyName = agreement.name.toLowerCase().indexOf(search.toLowerCase()) > -1;\n\n return matchesAgreementNumber || matchesCompanyName;\n};\n\nconst isCurrentAgreement = (agreement: Agreement, currentAgreement: Agreement) => {\n return agreement.number === currentAgreement.number && agreement.userId === currentAgreement.userId;\n};\n\nconst createAgreementButton = (\n agreement: Agreement,\n fallbackImageSrc: string,\n onChangeAgreement: (agreement: Agreement) => void,\n isCurrentAgreement = false\n) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n onChangeAgreement(agreement);\n }\n };\n\n return (\n <button\n aria-current={isCurrentAgreement ? 'true' : undefined}\n className=\"focus:yt-focus-dark w-full rounded outline-none\"\n data-taco=\"header-agreements-agreement\"\n key={`${agreement.number}_${agreement.userId}`}\n onClick={() => onChangeAgreement(agreement)}\n onKeyDown={handleKeyDown}\n tabIndex={0}>\n <AgreementItem\n {...agreement}\n className=\"h-14 bg-white/[0.08] xl:hover:bg-white/[0.16] [[aria-current='true']>&]:bg-white/[0.16]\"\n fallbackImageSrc={fallbackImageSrc}\n />\n </button>\n );\n};\n\nexport type AgreementDisplayProps = React.HTMLAttributes<HTMLDivElement> & {\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n};\n\nexport function AgreementDisplay(props: AgreementDisplayProps) {\n const { currentAgreement, fallbackImageSrc } = props;\n\n return (\n <Container>\n <Display currentAgreement={currentAgreement} fallbackImageSrc={fallbackImageSrc} />\n </Container>\n );\n}\n","import React from 'react';\nimport cn from 'clsx';\nimport { Button } from './components/Button';\nimport { Link } from './components/Link';\nimport { Logo, LogoLegacy } from './components/Logo';\nimport { PrimaryNavigation } from './components/PrimaryNavigation';\nimport { SecondaryNavigation } from './components/SecondaryNavigation';\nimport { MenuButton } from './components/MenuButton';\nimport { AgreementSelector, AgreementDisplay } from './components/AgreementSelector';\n\nexport * from './components/Agreement/types';\n\nexport type HeaderTexts = {\n addAgreement: string;\n logout: string;\n more: string;\n new: string;\n search: string;\n};\n\ntype HeaderProps = React.HTMLAttributes<HTMLElement>;\n\nexport type ForwardedHeaderWithStatics = React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLDivElement>> & {\n AgreementDisplay: typeof AgreementDisplay;\n AgreementSelector: typeof AgreementSelector;\n Button: typeof Button;\n Link: typeof Link;\n Logo: typeof Logo;\n LogoLegacy: typeof LogoLegacy;\n PrimaryNavigation: typeof PrimaryNavigation;\n SecondaryNavigation: typeof SecondaryNavigation;\n MenuButton: typeof MenuButton;\n};\n\nexport const Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(props, ref) {\n const className = cn(\n 'bg-blue-900 flex h-16 w-full shrink-0 items-center gap-2 pl-4',\n '[&>*:focus-visible]:yt-focus-dark [&>*]:rounded', // styles for logo wrapped inside an anchor\n props.className\n );\n\n return <header {...props} className={className} ref={ref} />;\n}) as ForwardedHeaderWithStatics;\n\nHeader.AgreementDisplay = AgreementDisplay;\nHeader.AgreementSelector = AgreementSelector;\nHeader.Button = Button;\nHeader.Link = Link;\nHeader.Logo = Logo;\nHeader.LogoLegacy = LogoLegacy;\nHeader.PrimaryNavigation = PrimaryNavigation;\nHeader.SecondaryNavigation = SecondaryNavigation;\nHeader.MenuButton = MenuButton;\n","import React from 'react';\n\nexport type LayoutContextValue = {\n sidebarOpen: boolean;\n setSidebarOpen: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const LayoutContext = React.createContext<LayoutContextValue>({ sidebarOpen: false, setSidebarOpen: () => undefined });\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type LayoutContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Content = React.forwardRef<HTMLDivElement, LayoutContentProps>(function LayoutContent(props, ref) {\n const className = cn(\n 'flex-grow overflow-y-auto print:overflow-visible print:h-full print:!p-0 bg-white flex flex-shrink flex-col relative',\n props.className\n );\n return <main {...props} className={className} ref={ref} />;\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { LayoutContext } from './Context';\nimport { useIsLargeScreen } from '../../../hooks/useIsLargeScreen';\nimport { Backdrop, BackdropProps } from '../../Backdrop/Backdrop';\n\nconst SidebarBackdrop = motion<BackdropProps>(Backdrop);\n\nexport type LayoutSidebarProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, LayoutSidebarProps>(function LayoutSidebar(props, ref) {\n const { children, ...attributes } = props;\n const { sidebarOpen, setSidebarOpen } = React.useContext(LayoutContext);\n const isLargeScreen = useIsLargeScreen();\n const isSmallScreen = !isLargeScreen;\n\n // if it's a large screen we override the open state and make it always visible\n const isVisible = isLargeScreen || sidebarOpen;\n\n // ensures the menu is always closed by default when resizing to a smaller window size\n React.useEffect(() => {\n setSidebarOpen(isLargeScreen);\n }, [isLargeScreen]);\n\n React.useEffect(() => {\n const handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setSidebarOpen(false);\n }\n };\n\n if (isSmallScreen && sidebarOpen) {\n window.addEventListener('keydown', handleEscapeKey);\n }\n\n return () => {\n window.removeEventListener('keydown', handleEscapeKey);\n };\n }, [isSmallScreen, sidebarOpen]);\n\n const showBackdrop = isSmallScreen && sidebarOpen === true;\n\n const [ready, setReady] = React.useState(isSmallScreen);\n\n const className = cn(\n 'bg-grey-50 h-full w-64 flex-shrink-0 flex-grow-0 print:hidden',\n {\n 'absolute z-10 aria-hidden:-translate-x-64 ': isSmallScreen,\n // prevent animation when crossing the boundary from large to small screen,\n // this prevents awkward animation in the edge case (resizing the browser, instead of starting at a given size)\n invisible: isSmallScreen && !ready,\n 'transition-[transform] duration-300 visible': isSmallScreen && ready,\n 'border-r-2 border-black/[.08] ': !showBackdrop,\n },\n props.className\n );\n\n React.useEffect(() => {\n // ensure state is updated in the next cpu tick so that the animation definitely doesn't run\n setTimeout(() => {\n setReady(isSmallScreen);\n }, 1);\n }, [isSmallScreen]);\n\n const toggleSidebar = () => setSidebarOpen(open => !open);\n const content = typeof children === 'function' ? children({ isLargeScreen, open: sidebarOpen, toggleSidebar }) : children;\n\n if (!content) {\n return null;\n }\n\n return (\n <>\n <nav {...attributes} data-responsive={isSmallScreen} aria-hidden={!isVisible} className={className} ref={ref}>\n {content}\n </nav>\n <AnimatePresence>\n {showBackdrop && (\n <SidebarBackdrop\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"z-[1]\"\n onClick={() => setSidebarOpen(false)}\n />\n )}\n </AnimatePresence>\n </>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\n\nexport type LayoutPageProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Page = React.forwardRef<HTMLDivElement, LayoutPageProps>(function LayoutPage(props, ref) {\n const className = cn('flex flex-grow overflow-hidden print:overflow-visible print:h-full relative', props.className);\n return <div {...props} className={className} ref={ref} />;\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { LayoutContext } from './components/Context';\nimport { Content } from './components/Content';\nimport { Sidebar } from './components/Sidebar';\nimport { Top } from './components/Top';\nimport { Page } from './components/Page';\n\nexport type LayoutProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Layout = React.forwardRef<HTMLDivElement, LayoutProps>(function Layout(props, ref) {\n const [sidebarOpen, setSidebarOpen] = React.useState(false);\n const className = cn(\n 'flex h-screen w-screen flex-col overflow-hidden print:overflow-visible print:h-full relative',\n props.className\n );\n\n return (\n <LayoutContext.Provider value={{ sidebarOpen, setSidebarOpen }}>\n <div {...props} className={className} ref={ref} />\n </LayoutContext.Provider>\n );\n}) as React.ForwardRefExoticComponent<LayoutProps> & {\n Top: typeof Top;\n Page: typeof Page;\n Sidebar: typeof Sidebar;\n Content: typeof Content;\n};\n\nLayout.Top = Top;\nLayout.Page = Page;\nLayout.Sidebar = Sidebar;\nLayout.Content = Content;\n\nexport type { LayoutContentProps } from './components/Content';\nexport type { LayoutPageProps } from './components/Page';\nexport type { LayoutSidebarProps } from './components/Sidebar';\nexport type { LayoutTopProps } from './components/Top';\n","import React from 'react';\nimport { LayoutContext } from './Context';\n\nexport type LayoutTopProps = {\n children: React.ReactNode | React.ReactNode[] | (({ toggleSidebar }) => React.ReactNode | React.ReactNode[]);\n};\n\nexport const Top = (props: LayoutTopProps) => {\n const { setSidebarOpen } = React.useContext(LayoutContext);\n const toggleSidebar = () => setSidebarOpen(open => !open);\n\n return typeof props.children === 'function' ? props.children({ toggleSidebar }) : props.children;\n};\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon } from '../../Icon/Icon';\n\nexport type Navigation2GroupProps = Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onClick'> & {\n defaultExpanded?: boolean;\n heading: string | JSX.Element;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nexport const Group = React.forwardRef<HTMLLIElement, Navigation2GroupProps>(function Group(props, ref) {\n const { children, defaultExpanded = false, heading, onClick, ...attributes } = props;\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n const className = cn(\n 'flex w-full cursor-pointer items-center rounded px-3 font-bold text-left leading-8 hover:bg-black/[.06] focus-visible:yt-focus-dark',\n attributes.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setExpanded(!expanded);\n\n if (onClick) {\n onClick(event);\n }\n };\n\n return (\n <li {...attributes} role=\"none\" className=\"[[role=menubar]>&]:px-3\" ref={ref}>\n <button\n aria-haspopup=\"true\"\n aria-expanded={expanded}\n data-taco=\"navigation2-group\"\n className={className}\n onClick={handleClick}\n role=\"menuitem\">\n <Icon className=\"-ml-2 !h-5 !w-5\" name={expanded ? 'chevron-down-solid' : 'chevron-right-solid'} />\n <span className=\"flex-grow truncate\">{heading}</span>\n </button>\n <ul className={cn('mb-0 flex flex-col gap-y-px pt-px', { hidden: !expanded })} role=\"menu\">\n {children}\n </ul>\n </li>\n );\n});\n","import cn from 'clsx';\n\nexport const getAdjacentClasses = () =>\n cn(\n // styling if the element is proceeded by a link item\n '[[role=menubar]>[data-taco=navigation2-link-item]+&]:mt-2',\n \"[[role=menubar]>[data-taco='navigation2-link-item']+&]:border-t-2\",\n \"[[role=menubar]>[data-taco='navigation2-link-item']+&]:pt-2 \",\n // styling if the element is proceeded by content\n \"[[role=menubar]>[data-taco='navigation2-content']+&]:border-t-2\",\n \"[[role=menubar]>[data-taco='navigation2-content']+&]:pt-2\",\n // styling if the element is proceeded by a section\n \"[[role=menubar]>[data-taco='navigation2-section']+&]:border-t-2\",\n \"[[role=menubar]>[data-taco='navigation2-section']+&]:pt-2\"\n );\n","import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { useDropTarget } from '../../../utils/hooks/useDropTarget';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Badge } from '../../Badge/Badge';\nimport { MenuProps } from '../../Menu/Menu';\nimport { getAdjacentClasses } from './util';\n\nexport const getNavigationLinkClasses = (isDraggedOver = false) =>\n cn(\n 'group relative flex w-full items-center rounded leading-8 !text-black px-2 focus-visible:yt-focus-dark',\n // override styles for links that are children of collapsible menus\n 'font-bold [[role=menu]>li>&]:font-normal [[role=menu]>li>&]:pl-5',\n // override styles to adjust icons included in menu links\n '[&_[data-taco=\"icon\"]]:!h-5 [&_[data-taco=\"icon\"]]:!w-5',\n // override styles to adjust badges included in menu links\n '[&>span_[data-taco=\"badge\"]]:mr-2.5 [[role=menu]>li>&>span_[data-taco=\"badge\"]]:mr-2',\n {\n 'hover:bg-black/[.06] aria-current-page:bg-blue-500/[.1]': !isDraggedOver,\n '!bg-blue-500 !text-white [&>*]:!text-white': isDraggedOver,\n }\n );\n\nexport type Navigation2LinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n active?: boolean;\n icon?: IconName;\n /** Menu component associated with the button. */\n menu?: (props: Partial<MenuProps>) => JSX.Element;\n /** Handler to be used when dropping a dragged element over the Navigation2 link */\n onDrop?: React.DragEventHandler;\n /** Total shown inside a Badge component */\n total?: number;\n};\n\nexport const Link = React.forwardRef<HTMLAnchorElement, Navigation2LinkProps>(function Link(props, ref) {\n const { active, children, icon, menu, onDrop, total, ...attributes } = props;\n const [isDraggedOver, dropTargetProps] = useDropTarget(onDrop);\n\n const className = cn(getNavigationLinkClasses(isDraggedOver), attributes.className);\n\n const listClassName = cn('[[role=menubar]>&]:px-3 border-grey-200', getAdjacentClasses(), {\n '[&>*]:pointer-events-none': isDraggedOver,\n });\n\n return (\n <li {...dropTargetProps} className={listClassName} data-taco=\"navigation2-link-item\" role=\"none\">\n <a\n {...attributes}\n aria-current={active ? 'page' : undefined}\n className={className}\n data-taco=\"navigation2-link\"\n ref={ref}\n role=\"menuitem\"\n tabIndex={0}>\n {icon ? <Icon className=\"mr-1.5 [[role=menu]>li>a>&]:-ml-1.5 [[role=menu]>li>a>&]:mr-0.5\" name={icon} /> : null}\n <span className=\"flex flex-grow items-center truncate\">{children}</span>\n {menu ? (\n <IconButton\n appearance=\"discrete\"\n icon=\"more\"\n aria-label=\"More\"\n rounded\n className={cn(\n '-mr-1.5 hidden flex-shrink-0 flex-grow-0 transition-none group-hover:flex aria-expanded:flex',\n {\n 'absolute right-0 !mr-0.5': total !== undefined,\n }\n )}\n menu={menu}\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n }}\n />\n ) : null}\n {total !== undefined ? (\n <Badge\n className={cn('flex-shrink-0 flex-grow-0 !font-normal', {\n 'group-hover:hidden [[aria-expanded=\"true\"]+&]:hidden ': menu,\n })}\n color=\"transparent\">\n {total}\n </Badge>\n ) : null}\n </a>\n </li>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { getAdjacentClasses } from './util';\n\nexport type Navigation2SectionProps = React.LiHTMLAttributes<HTMLLIElement> & {\n heading?: string;\n};\n\nexport const Section = React.forwardRef<HTMLLIElement, Navigation2SectionProps>(function Navigation2(props, ref) {\n const { children, heading, ...attributes } = props;\n const className = cn(\n 'w-full overflow-auto px-3 py-2 flex-grow border-grey-200 bg-grey-50 [[role=menubar]>&:first-child]:pt-0',\n getAdjacentClasses(),\n props.className\n );\n\n return (\n <li {...attributes} className={className} data-taco=\"navigation2-section\" ref={ref} role=\"none\">\n {heading ? (\n <span className=\"text-grey-500 mb-px truncate pl-5 text-xs font-bold uppercase leading-8 lg:hidden\">\n {heading}\n </span>\n ) : null}\n <ul className=\"mb-0 flex flex-col gap-y-px\">{children}</ul>\n </li>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { getAdjacentClasses } from './util';\n\nexport type Navigation2ContentProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const Content = React.forwardRef<HTMLLIElement, Navigation2ContentProps>(function Navigation2(props, ref) {\n const { children, ...attributes } = props;\n const className = cn(\n 'w-full overflow-auto p-3 mt-auto border-grey-200 flex-shrink-0 z-10 bg-grey-50 [[role=menubar]>&:last-child]:pb-0',\n getAdjacentClasses(),\n props.className\n );\n\n return (\n <li {...attributes} className={className} data-taco=\"navigation2-content\" ref={ref} role=\"none\">\n {children}\n </li>\n );\n});\n","import React from 'react';\nimport cn from 'clsx';\nimport { Group } from './components/Group';\nimport { Link } from './components/Link';\nimport { Section } from './components/Section';\nimport { Content } from './components/Content';\n\nexport type Navigation2Props = React.HTMLAttributes<HTMLUListElement>;\n\nexport const Navigation2 = React.forwardRef<HTMLUListElement, Navigation2Props>(function Navigation2(props, ref) {\n const { children, ...attributes } = props;\n const className = cn('m-0 py-2 flex flex-col gap-y-px overflow-auto h-full w-full bg-grey-50', props.className);\n\n return (\n <ul {...attributes} className={className} data-taco=\"navigation2\" ref={ref} role=\"menubar\" style={{ opacity: 0.999 }}>\n {children}\n </ul>\n );\n}) as React.ForwardRefExoticComponent<Navigation2Props> & {\n Group: typeof Group;\n Link: typeof Link;\n Section: typeof Section;\n Content: typeof Content;\n};\n\nNavigation2.Group = Group;\nNavigation2.Link = Link;\nNavigation2.Section = Section;\nNavigation2.Content = Content;\n\nexport { getNavigationLinkClasses } from './components/Link';\n\nexport type { Navigation2ContentProps } from './components/Content';\nexport type { Navigation2GroupProps } from './components/Group';\nexport type { Navigation2LinkProps } from './components/Link';\nexport type { Navigation2SectionProps } from './components/Section';\n","import React from 'react';\nimport cn from 'clsx';\nimport './Progress.css';\n\nexport type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {\n /**\n * Indicates how long (in milliseconds) a progress bar will take to progress through.\n * By default, progress bar has no duration\n */\n duration?: number;\n};\n\nexport const Progress = ({ duration = undefined, ...props }: ProgressProps): JSX.Element => {\n let style;\n\n if (duration) {\n style = {\n animationDuration: `${duration}ms`,\n };\n }\n\n const className = cn('bg-grey-100 rounded block h-1 overflow-hidden w-full', props.className);\n\n const progressClassName = cn('yt-progress__bar block h-1', {\n \"w-full before:h-1 before:bg-grey-300 before:block before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:content-[' ']\":\n !duration,\n [`w-0 bg-grey-300 animate-[progress_linear]`]: duration,\n });\n\n return (\n <span {...props} data-taco=\"progress\" className={className}>\n <span className={progressClassName} data-taco=\"progress-bar\" style={style} />\n </span>\n );\n};\n","import React from 'react';\nimport { getIndexOfFirstChildOverflowingParent } from '../utils/dom';\nimport { useBoundingClientRectListener } from './useBoundingClientRectListener';\n\nexport const useBoundaryOverflowDetection = (\n ref: React.RefObject<HTMLElement>,\n dependencies: any[] = []\n): number | null | undefined => {\n const [boundaryIndex, setBoundaryIndex] = React.useState<number | null>();\n const dimensions = useBoundingClientRectListener(ref, dependencies);\n\n React.useEffect(() => {\n if (ref.current) {\n const boundaryChildIndex = getIndexOfFirstChildOverflowingParent(ref.current);\n setBoundaryIndex(boundaryChildIndex);\n }\n }, [ref, dimensions?.width, ...dependencies]);\n\n return boundaryIndex;\n};\n","import React from 'react';\n\nexport const useOnClickOutside = (\n ref: React.RefObject<HTMLElement> | React.RefObject<HTMLElement>[],\n callback: (event: MouseEvent | TouchEvent) => void\n): void => {\n React.useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent): void => {\n const refs = !Array.isArray(ref) ? [ref] : ref;\n if (refs.some(currentRef => !currentRef.current || currentRef.current.contains(event.target as Node))) {\n return;\n }\n callback(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, callback]);\n};\n","import React from 'react';\n\nexport type usePaginationValues = {\n /** Current page index (zero based) */\n pageIndex: number;\n /** Number of items displayed on a page */\n pageSize: number;\n /** Handler called when navigating through pages */\n setPageIndex: (pageIndex: number) => void;\n /** Handler called when changing the size of the page */\n setPageSize: (size: number) => void;\n};\n\nexport const usePagination = (initialPageIndex = 0, initialPageSize = 10): usePaginationValues => {\n const [pageIndex, setPageIndex] = React.useState(initialPageIndex);\n const [pageSize, setPageSize] = React.useState(initialPageSize);\n\n return {\n pageIndex,\n pageSize,\n setPageIndex,\n setPageSize,\n };\n};\n"],"names":["AVAILABLE_COLORS","getColorByState","state","getOutlineColorShadeClasses","getSubtleColorShadeClasses","value","getColorShadeClasses","IconAccountPreview","props","svgRef","React","xmlns","viewBox","ref","d","fill","fillRule","IconAccountingYearCancel","IconAccountingYear","IconAccounting","IconAiChatSolid","clipRule","IconAiStars","id","mask","IconArrowBottom","IconArrowDown","IconArrowEnd","IconArrowLeft","IconArrowRight","IconArrowStart","IconArrowTop","IconArrowUp","IconAttachAuto","IconAttachCancel","IconAttachWarning","IconAttach","IconAutotextInsert","IconAutotext","IconBasicTabs","IconBasic","IconBellSolid","IconBook","IconBooking","IconBudget","IconCalendar","IconCashAccount","IconCashReports","IconChartArea","IconChartBar","IconChartLine","IconChartPie","IconChartTable","IconChatSolid","IconChat","IconChevronDownDouble","IconChevronDownSolid","IconChevronDown","IconChevronLeftDouble","IconChevronLeftSolid","IconChevronLeft","IconChevronRightDouble","IconChevronRightSolid","IconChevronRight","IconChevronUpDouble","IconChevronUpSolid","IconChevronUp","IconCircleClose","IconCircleInformation","IconCircleMinus","IconCirclePlus","IconCircleQuestionmark","IconCircleTick","IconCircleWarning","IconClampOpen","IconClamp","IconClose","IconColumnFreeze","IconColumnUnfreeze","IconColumns","IconConnectionEnable","IconConnectionRevoke","IconContacts","IconCopy","IconCourses","IconCredit","IconDeletePermanently","IconDelete","IconDepecriate","IconDeveloper","IconDistributionTemplate","IconDocumentApprove","IconDocumentCreateEntry","IconDocumentCut","IconDocumentError","IconDocumentIsolatePage","IconDocumentMerge","IconDocumentMove","IconDocumentPreview","IconDocumentReceived","IconDocumentRejectedRequest","IconDocumentSignedSolid","IconDocumentSigned","IconDocumentSplit","IconDocumentTime","IconDocument","IconDownload","IconDrag","IconECopedia","IconEditSimple","IconEdit","IconEllipsisHorizontal","IconEllipsisVertical","IconEntriesOnAccount","IconEntriesOpen","IconEntriesWarning","IconEntryTypeCustomerInvoice","IconEntryTypeCustomerPayment","IconEntryTypeJournalEntry","IconEntryTypeManualCustomerInvoice","IconEntryTypeSupplierInvoice","IconEntryTypeSupplierPayment","IconEnvelopeApproved","IconEnvelopeSolid","IconEnvelope","IconExpandView","IconExpenses","IconExportToExcel","IconExportToPdf","IconExport","IconEyeOff","IconEyeOn","IconFilterSolid","IconFilter","IconFontSize","IconGraphSolid","IconHash","IconHeightExtraTall","IconHeightMedium","IconHeightShort","IconHeightTall","IconHouseSolid","IconHouse","IconId","IconImages","IconImport","IconInboxEinvoicing","IconInboxScanning","IconInboxSmart","IconInbox","IconInfo","IconInventoryMatrix","IconInventory","IconJournalPro","IconLayoutBoth","IconLayoutFirst","IconLayoutLast","IconLayoutNone","IconLayout","IconLedgerCardCustomerReminder","IconLedgerCardManualCustomerInvoice","IconLedgerCardObsoleteStock","IconLedgerCardOpeningEntry","IconLedgerCardReservedEntry","IconLedgerCardShrinkagePilferage","IconLedgerCardStockAdjustment","IconLedgerCardTransferredOpeningEntry","IconLedgerCard","IconLightbulb","IconLine","IconLinkExternal","IconListBulleted","IconListSearch","IconList","IconLocation","IconLockOpen","IconLock","IconLogOut","IconLog","IconMarket","IconMastercardOs","IconMatchAmount","IconMatchEntries","IconMenu","IconMileage","IconModalResize","IconModalShrink","IconMoreSolid","IconMore","IconMove","IconNavigationList","IconNoteFollowUp","IconNoteRead","IconNote","IconNovemberFirst","IconNumbers","IconPartnerApi","IconPaymentPaid","IconPaymentUnpaid","IconPeriod","IconPersonChange","IconPersonMinus","IconPersonPlus","IconPersonTick","IconPhoneSolid","IconPhone","IconPlay","IconPlusMinus","IconPrint","IconProcessPayment","IconProductLedgerCard","IconProfile","IconProjectCards","IconProjects","IconQuestionMarkBold","IconQuestionMark","IconQuicklinks","IconRatingBankruptcy","IconRatingPaymentProblems","IconReconciled","IconRefresh","IconReportSolid","IconReport","IconRestore","IconRotateLeft","IconRotateRight","IconSales","IconSearchBold","IconSearch","IconSecureTick","IconSecure","IconSettingsSolid","IconSettings","IconShortcuts","IconShowAll","IconShowLess","IconShowMore","IconShowTemplate","IconSliders","IconSmartpay","IconSortBy","IconStarSolid","IconStar","IconSubscriptions","IconSystemEntries","IconTag","IconTemplateOverride","IconTemplates","IconThumbBoth","IconThumbDownSolid","IconThumbDown","IconThumbUpSolid","IconThumbUp","IconTickBold","IconTick","IconTime","IconTransferCancel","IconTransferLocked","IconTransfer","IconUndo","stroke","strokeWidth","strokeLinecap","strokeLinejoin","IconUndock","IconUnreconciled","IconWarning","IconWebshop","IconWebsite","IconWorkflowTemplateBasic","IconWorkflow","IconZoom","icons","account-preview","accounting-year-cancel","accounting-year","accounting","ai-chat-solid","ai-stars","arrow-bottom","arrow-down","arrow-end","arrow-left","arrow-right","arrow-start","arrow-top","arrow-up","attach-auto","attach-cancel","attach-warning","attach","autotext-insert","autotext","basic-tabs","basic","bell-solid","book","booking","budget","calendar","cash-account","cash-reports","chart-area","chart-bar","chart-line","chart-pie","chart-table","chat-solid","chat","chevron-down-double","chevron-down-solid","chevron-down","chevron-left-double","chevron-left-solid","chevron-left","chevron-right-double","chevron-right-solid","chevron-right","chevron-up-double","chevron-up-solid","chevron-up","circle-close","circle-information","circle-minus","circle-plus","circle-questionmark","circle-tick","circle-warning","clamp-open","clamp","close","column-freeze","column-unfreeze","columns","connection-enable","connection-revoke","contacts","copy","courses","credit","delete-permanently","delete","depecriate","developer","distribution-template","document-approve","document-create-entry","document-cut","document-error","document-isolate-page","document-merge","document-move","document-preview","document-received","document-rejected-request","document-signed-solid","document-signed","document-split","document-time","document","download","drag","e-copedia","edit-simple","edit","ellipsis-horizontal","ellipsis-vertical","entries-on-account","entries-open","entries-warning","entry-type-customer-invoice","entry-type-customer-payment","entry-type-journal-entry","entry-type-manual-customer-invoice","entry-type-supplier-invoice","entry-type-supplier-payment","envelope-approved","envelope-solid","envelope","expand-view","expenses","export-to-excel","export-to-pdf","export","eye-off","eye-on","filter-solid","filter","font-size","graph-solid","hash","height-extra-tall","height-medium","height-short","height-tall","house-solid","house","images","import","inbox-einvoicing","inbox-scanning","inbox-smart","inbox","info","inventory-matrix","inventory","journal-pro","layout-both","layout-first","layout-last","layout-none","layout","ledger-card-customer-reminder","ledger-card-manual-customer-invoice","ledger-card-obsolete-stock","ledger-card-opening-entry","ledger-card-reserved-entry","ledger-card-shrinkage-pilferage","ledger-card-stock-adjustment","ledger-card-transferred-opening-entry","ledger-card","lightbulb","line","link-external","list-bulleted","list-search","list","location","lock-open","lock","log-out","log","market","mastercard-os","match-amount","match-entries","menu","mileage","modal-resize","modal-shrink","more-solid","more","move","navigation-list","note-follow-up","note-read","note","november-first","numbers","partner-api","payment-paid","payment-unpaid","period","person-change","person-minus","person-plus","person-tick","phone-solid","phone","play","plus-minus","print","process-payment","product-ledger-card","profile","project-cards","projects","question-mark-bold","question-mark","quicklinks","rating-bankruptcy","rating-payment-problems","reconciled","refresh","report-solid","report","restore","rotate-left","rotate-right","sales","search-bold","search","secure-tick","secure","settings-solid","settings","shortcuts","show-all","show-less","show-more","show-template","sliders","smartpay","sort-by","star-solid","star","subscriptions","system-entries","tag","template-override","templates","thumb-both","thumb-down-solid","thumb-down","thumb-up-solid","thumb-up","tick-bold","tick","time","transfer-cancel","transfer-locked","transfer","undo","undock","unreconciled","warning","webshop","website","workflow-template-basic","workflow","zoom","Icon","forwardRef","name","otherProps","Component","className","cn","p-[3px]","_props$className","includes","focusable","role","BadgeIcon","color","icon","subtle","small","w-5 h-5","w-4 h-4 text-xs","[object Object]","title","getIconName","Alert","children","onClose","onClick","AlertDialogContext","createContext","mergeRefs","refs","forEach","current","Trigger","externalRef","parentRef","parentProps","useContext","refCallback","AlertDialogPrimitive","asChild","Footer","Cancel","Action","Backdrop","getDialogSizeClassnames","size","Title","Content","onEscapeKeyDown","event","preventDefault","AlertDialog","defaultOpen","onChange","open","trigger","context","Provider","onOpenChange","AccordionContext","as","StyledTrigger","isExpanded","Heading","AccordionPrimitive","Accordion","defaultId","useMemo","valueProps","defaultValue","undefined","onValueChange","type","Item","VisuallyHidden","Badge","compact","outline","status","isTransparent","h-4 min-w-0 py-0 px-1 text-xs","h-2 w-2 min-w-0","font-bold","text-sm","h-5 py-0 px-1.5","!bg-grey-700","useMergedRef","internalRef","useRef","useEffect","FOCUSABLE_ELEMENTS","hasFocusableElement","element","querySelector","join","getIndexOfFirstChildOverflowingParent","overscan","index","boundaryChildIndex","clientRect","getBoundingClientRect","child","Array","from","right","left","width","getOverlaySelector","getAttribute","isElementInsideOrTriggeredFromContainer","container","selector","_getOverlaySelector","_element$closest","closest","elementInDocument","contains","isElementInteractive","tagName","hidden","disabled","readOnly","isElementInsideTable3OrReport","setDataFocusAttribute","target","setAttribute","cleanup","removeAttribute","removeEventListener","addEventListener","isPressingMetaKey","isMacOs","metaKey","ctrlKey","shouldTriggerShortcut","key","keyOptions","meta","shift","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","_event$stopImmediateP","currentTarget","stopImmediatePropagation","call","_window","window","navigator","userAgent","useGlobalKeyDown","shortcut","handleKeyDown","Button","dialog","_internalRef$current","click","Tag","href","count","map","Tooltip","placement","hide","TooltipPrimitive","delayDuration","side","sideOffset","style","transformOrigin","getAppearanceClasses","createButtonWithTooltip","tooltip","buttonProps","button","ButtonPrimitive","createButtonWithOverlays","buttonBase","drawer","hanger","popover","anchor","Base","rounded","appearance","rounded-full","data-taco","IconButton","defaultLocalisationTexts","banner","months","weekdaysShort","weekdays","actions","previousMonth","nextMonth","previousYear","nextYear","today","combobox","datepicker","clear","expand","header","addAgreement","logout","new","listbox","loading","empty","allOption","pagination","label","pageSize","showingXofYofTotal","firstPage","firstPageWithShortcut","previousPage","previousPageWithShortcut","nextPage","nextPageWithShortcut","lastPage","lastPageWithShortcut","pageX","legacyTable","del","newSubRow","table","expansion","collapse","collapseAll","expandAll","editFilter","freezeFirstColumn","freezeUptoColumn","gotoRow","hideColumn","unfreezeColumns","sorting","sortingOrder","ascending","descending","unsorted","resize","select","deselect","deselectAll","selectAll","columnSettings","noResults","filters","buttons","addFilter","clearFilters","cancel","apply","comparators","doesNotContain","isEqualTo","isNotEqualTo","isGreaterThan","isLessThan","isBetween","isOneOf","isNoneOf","isAllOf","isEmpty","isNotEmpty","isBefore","isAfter","isOnOrBefore","isOnOrAfter","isLessThanOrEqualTo","isGreaterThanOrEqualTo","hasAnyOf","hasAllOf","hasNoneOf","conditions","and","where","emptyFilter","condition","hiddenColumn","hiddenGroupedColumn","total","fontSize","sizes","medium","large","footer","summary","records","selected","error","warningDialog","description","checkboxVisibilityLabel","cancelButtonText","printButtonText","settingsDialog","sizeA5","sizeA4","sizeA3","sizeLetter","sizeLegal","orientation","orientationLandscape","orientationPortrait","rows","rowsAll","rowsSelected","layoutSplitGroups","rowHeight","short","tall","extraTall","excludeUnmatchedResults","placeholder","otherOptions","table3","editing","save","exit","create","clearChangesConfirmationDialog","confirm","rowIndicator","rowWillMove","rowWillBeHidden","rowWillMoveReasonSearch","rowWillMoveReasonFilter","rowWillMoveReasonSorting","saving","progress","complete","validation","alert","titleOne","titlePlural","messageOne","messagePlural","messageRow","messageAnd","resetFiltersDialog","searchInput","findNext","findPrevious","allOptionsSelected","select2","allSelect","allDeselect","chooseColor","searchOrCreate","selectAllResults","deselectAllResults","toasts","dismiss","tour","back","skip","last","next","defaultLocalizationContext","locale","texts","formatting","date","LocalizationContext","LocalizationProvider","localization","useLocalization","Banner","fluid","w-full","isArray","thisYear","Date","getFullYear","years","i","push","Navbar","onMonthChange","handleChange","year","month","form","getMonth","String","onPreviousClick","getDay","onNextClick","TodayButton","handleCalendarClickToday","setHours","setMinutes","setSeconds","Calendar","disabledDays","visibleMonth","setVisibleMonth","DayPicker","captionLayout","weekStartsOn","numberOfMonths","components","Caption","colSpan","HeadRow","weekday","onDayClick","handleDayClick","modifiers","outside","isElementTruncated","targetElement","offsetWidth","scrollWidth","Truncate","mounted","setMounted","useState","isTruncated","useTruncated","deps","setIsTruncated","clonedChildrenWithRef","cloneElement","Children","only","hover:cursor-pointer","externalProps","noPadding","mx-4 mb-4","Card","useId","nativeId","uuid","Spinner","delay","visible","setVisibility","timeout","setTimeout","clearTimeout","cx","cy","r","Checkbox","checked","indeterminate","invalid","self-start","border-red-500 hover:border-red-700 aria-checked:border-red-500 aria-checked-mixed:border-red-500 aria-checked:bg-red-500 aria-checked-mixed:bg-red-500 aria-checked:hover:border-red-700 aria-checked-mixed:hover:border-red-700 aria-checked:hover:bg-red-700 aria-checked-mixed:hover:bg-red-700","border-red-500/50 aria-checked:wcag-red-500/50 aria-checked-mixed:wcag-red-500/50","border-grey-500 hover:border-grey-700 aria-checked:border-blue-500 aria-checked-mixed:border-blue-500 aria-checked:bg-blue-500 aria-checked-mixed:bg-blue-500 aria-checked:hover:border-blue-700 aria-checked-mixed:hover:border-blue-700 aria-checked:hover:bg-blue-700 aria-checked-mixed:hover:bg-blue-700","border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked-mixed:bg-blue-500/50","labelledByProps","aria-labelledby","spinnerClassname","text-blue-500","CheckboxPrimitive","onCheckedChange","onKeyDown","labelContainerClassName","cursor-not-allowed text-grey-300","htmlFor","displayName","getInputClasses","bg-white","highlighted","border-grey-300 enabled:hover:border-grey-500 disabled:border-grey-200","text-opacity-25 cursor-not-allowed placeholder:text-grey-700","bg-yellow-100/50","bg-yellow-100","border-red-500 enabled:hover:border-red-700 disabled:border-red-500/50","cursor-not-allowed text-black bg-grey-200","debounce","fn","timeoutId","args","this","getVisibility","Boolean","offsetHeight","getClientRects","length","useBoundingClientRectListener","dependencies","dimensions","setDimensions","isRefElementVisible","visibility","_ref$current","debouncedResize","newRefElementVisibility","_ref$current2","validSetSelectionRangeTypes","InputWithoutDeprecatedFeatures","postfix","prefix","attributes","setSelectionRange","prefixRef","prefixRect","postfixRef","postfixRect","pl-8","pr-8","typeAttributes","onWheelCapture","activeElement","requestAnimationFrame","focus","blur","opacity","position","scrollLeft","paddingLeft","paddingRight","Affix","text-grey-300","text-grey-700","left-0 [&>button]:!-ml-2","right-0 [&>button]:!-mr-2","Input","buttonClassName","getButtonStateClasses","border-red-500/30","_attributes$postfix","getNextIndexFromKey","direction","useListScrollTo","itemRefs","scrollTo","activeRef","scrollToChildElement","parent","clientHeight","scrollHeight","scrollTop","childBottom","offsetTop","getId","getNextEnabledItem","data","nextIndex","ScrollableList","setCurrentIndex","onFocus","scrollOnFocus","currentIndex","multiselect","selectedIndexes","listRef","_itemRefs$currentInde2","_itemRefs$currentInde","scrollIntoView","block","handleClick","persist","getOptionCheckedState","optionValue","findIndex","options","option","depth","path","split","aria-selected","data-focused","text","sticky top-0 font-bold","hasChildren","yt-list--multiselect","pointer-events-none","cursor-not-allowed","tabIndex","optionProps","createCustomEvent","eventType","customEvent","Event","bubbles","createEvent","initEvent","createCustomKeyboardEvent","customKeyboardEvent","KeyboardEvent","charCode","setInputValueByRef","input","previousValue","tracker","_valueTracker","setValue","dispatchEvent","getValue","setInputValueByRefBase","getIndexFromValue","getSelectedIndexesFromValue","v","o","findByValue","find","searchForString","strategy","_child$props","_child$props2","_child$props3","subChild","toString","getIndexInRangeByValue","query","firstIndex","lastIndex","slice","getActiveDescendant","useFlattenedData","items","flatten","item","parentPath","parentDisabled","currentPath","isItemDisabled","childItem","childPath","sanitizeItem","rest","getOptionParents","indexes","_path$split","lastPath","pop","debouncer","f","convertToInputValue","Combobox","externalClassName","useCombobox","ariaLabelledBy","unfilteredData","inline","onSearch","inputRef","buttonRef","setOpen","listId","inputValue","setInputValue","shouldFilterData","flattenedData","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has","setInputValueByIndex","setCurrentValue","isCurrentValue","aria-expanded","aria-owns","aria-haspopup","aria-controls","aria-autocomplete","aria-activedescendant","onBlur","relatedTarget","detail","initialIndex","isDefaultPrevented","handleListboxClick","selectDimensions","yt-combobox--inline","PopoverPrimitive","autoComplete","_input$ref$current","_input$ref$current2","align","onOpenAutoFocus","minWidth","isWeakEqual","leftDate","rightDate","getDate","format","isDate","toDate","isValid","pad","replace","parseFromCustomString","defaultMonth","defaultYear","sanitizedMask","dd","x","mm","yy","day","y","Number","parseInt","inputParts","fullDate","unseparatedMask","indexOf","lastIndexOf","currentDate","Object","is","NaN","parseFromISOString","tempDate","UnstyledArrow","offset","height","transform","PopoverContext","Anchor","_props$children","console","warn","RenderPropWrapper","CustomEvent","popoverContentProps","output","Close","Popover","modal","Portal","Datepicker","onReset","handleReset","shortcutsText","useDatepicker","internalValue","setInternalValue","formattedValue","valueAsDate","isPropagationStopped","popoverContentRef","handleOpenAutofocus","e","currentDay","_popoverContentRef$cu","_popoverContentRef$cu2","DialogContext","closeOnEscape","draggable","toggle","elements","extra","showCloseButton","useCurrentDialog","DialogPrimitive","useDraggable","setPosition","dragging","setDragging","moveProps","useMove","onMoveStart","onMove","rect","deltaX","innerWidth","top","deltaY","bottom","innerHeight","onMoveEnd","handleProps","resetPosition","renderProps","dragHandleProps","containerClassName","rounded-b-none","onInteractOutside","DialogDrawer","motion","div","_dialog$drawer","variants","display","transition","ease","duration","transitionEnd","animate","_dialog$drawer2","Extra","Dialog","initialChildren","toArray","_child$type","_child$type2","useSeparatedChildren","drawerOpen","setDrawerOpen","isDrawerOpen","Drawer","Group","flex-col ","MenuContext","useCurrentMenu","DrawerContext","onClickBack","onResize","variant","useCurrentDrawer","Bar","w-[7px] hover:w-[14px] mr-[2px] hover:px-[2px] hover:mr-0","flex-col h-[7px] hover:h-[14px] mb-[2px] hover:py-[2px] hover:mb-0","ScrollAreaPrimitive","Thumb","Corner","ScrollArea","DrawerAnimationDefinition","setStyle","cName","closeButton","_drawer$querySelector","closeButtonWidth","_closeButton$offsetWi","actionsWrapper","_drawer$querySelector2","actionsWrapperWidth","_actionsWrapper$offse","marginRight","Actions","InnerContent","isScrollable","overflow-y-hidden","p-4","outlet","backdropClassNames","getBackdropClassNames","forceMount","UntrappedFocusDrawerContent","onEscape","FocusScope","autoFocus","restoreFocus","DrawerContent","focusTrap","handleCloseAutoFocus","shadow-[0_6px_9px_0_rgba(89,85,98,0.3),0_0_1px_0_rgba(89,85,98,0.2)]","border-l border-grey-300 h-full","getDrawerContainerClassNames","contentClassName","dragHandlerClassName","getDrawerContentClassNames","fixed","relative h-full overflow-hidden","getDrawerSizeClassnames","handleEscapeKeyDown","containerWidth","setContainerWidth","dragHandlerRef","contentRef","_contentRef$current","resizedWidth","Math","min","max","content","styleProp","onCloseAutoFocus","Outlet","_props$name","drawerStack","openProp","defaultOpenProp","outletName","useControllableState","prop","defaultProp","setOutlet","outletElement","_document$querySelect","body","Field","messageRef","message","messageClassName","text-red-500","text-yellow-700","opacity-50","Form","horizontal","yt-form--horizontal flex flex-wrap","HangerContext","Hanger","HoverCardPrimitive","HoverCard","openDelay","control","iconClassName","clsx","Link","isExternal","startsWith","rel","Collapsible","CollapsiblePrimitive","Switch","mr-2","bg-grey-500 hover:bg-grey-700 aria-checked:bg-blue-500 aria-checked:hover:bg-blue-700","bg-grey-500/50 aria-checked:bg-blue-500/50 cursor-not-allowed","PrimitiveSwitch","ToggleItem","controlRef","onToggle","_controlRef$current","_controlRef$current2","externalChecked","setChecked","switchRef","useCallback","TacoSwitch","checkboxRef","TacoCheckbox","List","useTimer","callback","timer","setTracker","remaining","started","running","start","now","pause","resume","useTypeahead","typeaheadQuery","typeaheadQueryTimer","getNextIndex","charKey","findNextIndexByValue","activeIndex","Listbox","useListbox","externalData","emptyValue","defaultValueIndex","test","_item$path$split","_item$path","maxHeight","MultiListbox","useMultiListbox","setAllOptionsSelected","setSelectedIndexes","selectableItemsCount","_inputRef$current","newInputValue","currentInputValue","currentValuesArray","optionAlreadySelected","val","aria-multiselectable","handleListboxKeyDown","childrenRefs","childrenWithRefs","_childrenRefs$current","_childrenRefs$current2","DropdownMenuPrimitive","replaceWithShortform","toLocaleUpperCase","Shortcut","keys","getShortcutText","IconPrimitive","useItemStyling","indented","registerIndentation","pl-7","pl-1.5","cursor-pointer text-black hover:wcag-grey-200 data-[highlighted]:wcag-grey-200","cursor-not-allowed hover:bg-white text-grey-300","subMenu","_props$disabled","onSelect","setMinWidth","_event$currentTarget$","parentNode","getRadioClassnames","border-red-500 hover:border-red-700 aria-checked:bg-red-500 aria-checked:border-red-500 hover:aria-checked:border-red-700","border-red-500/50 aria-checked:bg-red-500/50 aria-checked:border-red-500/50","border-grey-500 hover:border-grey-700 aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-700","border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked:border-blue-500/50","getRadioGroupItemValueAsString","values","valueAsString","RadioGroupContext","RadioGroupItem","isDisabled","labelClassName","cursor-pointer","RadioGroupPrimitive","useRadioGroup","radioGroupItemValues","RadioGroup","flex-wrap gap-x-4 ","flex-col","MenuRadioGroupContext","Separator","Header","SubMenu","Menu","setIndented","ModeSwitch","bg-grey-500 aria-checked:bg-blue-500 cursor-not-allowed opacity-50","TreeviewItem","TreeviewGroup","expanded","initialExpanded","setExpanded","listClassName","flex","itemProps","nextState","Treeview","useDropTarget","onDrop","isDraggedOver","setDraggedOver","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","onDragEnter","onDragLeave","onDragOver","active","proxyRef","dropTargetProps","isTreeitem","w-full mb-px py-1 px-3 flex items-center hover:bg-grey-300","bg-white w-full h-10 px-3 flex-shrink-0 flex items-center justify-between cursor-pointer","yt-navigation__item--active","bg-grey-300","yt-navigation__item--dropping bg-blue-500","HTMLAnchorElement","HTMLButtonElement","Panel","MenuGroup","bg-white pb-2","mb-1","cursor-pointer hover:text-blue-500","scrollableAreas","area","Navigation","useIntersectionObserver","intersectedIndexes","setIntersectedIndexes","handleIntersection","entries","observer","root","entry","isIntersecting","prev","intersectedChildIndex","hasRootMargin","IntersectionObserver","rootMargin","threshold","hasAttribute","observe","disconnect","sanitizeButtonPropsForMenuItem","to","OverflowGroup","moreButton","buttonWidth","setButtonWidth","buttonRefCallback","el","_el$getBoundingClient","hiddenChildren","hiddenChildrenCount","MoreButton","_moreButton","invisible order-[100] pointer-events-none","data-observer-ignore","menuProps","PageNumbers","currentPageIndex","pageCount","range","createPageRange","pageNumber","lowerLimit","upperLimit","b","BaseSelect","useSelect","aria-label","ariaLabel","listboxInputRef","buttonId","lastValue","setLastValue","selectedValues","_findByValue$text","_findByValue","aria-readonly","_window$getSelection","_window$getSelection$","getSelection","selectAllChildren","yt-select--readonly","inputClassname","border-blue-500","select-text","commonListboxProps","Select","editable","Pagination","pageIndex","pageSizes","setPageIndex","setPageSize","showPageControls","showPageNumbers","showPageSize","dangerouslyHijackGlobalKeyboardNavigation","maxPageIndex","ceil","showShortcutTexts","usePaginationShortcuts","useGlobalKeyboardNavigation","canPreviousPage","canNextPage","getShowingLabel","maxItemIndex","Toast","lastUpdated","handleClose","autoClose","border border-grey-200","border border-grey-500","border border-blue-500","border border-yellow-700","border border-red","controls","useAnimation","getToastEmptyContentWarning","scale","then","Promise","resolve","reject","triggerUpdateAnimation","onMouseEnter","onMouseLeave","getBadgeIcon","ToastContext","insertToastWithoutDuplicates","currentToasts","nextToasts","existingToastIndex","toast","JSON","stringify","lastDuplicateId","ToastProvider","setToasts","toaster","update","success","information","AnimatePresence","initial","damping","stiffness","useToast","TacoContext","uniqueUserIdentifier","FontSizes","fixedForwardRef","isInternalColumn","getCellMinWidth","getCellValueAsString","dataType","_format","_format2","ensureOrdering","settingsOrder","pinnedOrder","internalColumnsPinnedToTheRight","internalColumns","column","orderingDisabled","orderingEnabled","orderedColumns","sort","a","orderColumn","groupedColumn","_column$meta","subcolumn","enableOrdering","columnsAbsentInSettingsOrder","reduce","acc","concat","order","unfreezeAllExternalColumns","leftPinnedState","_leftPinnedState$filt","freezeUptoExternalColumn","TableFilterComparator","TableServerLoadAllState","toLocaleLowerCase","isWeakContains","columnFilterFn","comparator","IsEmpty","IsNotEmpty","Contains","DoesNotContain","IsEqualTo","isWeakEqualDate","IsNotEqualTo","IsGreaterThan","isAfterDate","valueAsNumber","isNaN","IsLessThan","isBeforeDate","IsLessThanOrEqualTo","isEqualDate","IsGreaterThanOrEqualTo","IsBetween","fromValue","toValue","HasAnyOf","some","HasNoneOf","every","HasAllOf","globalFilterFn","row","columnId","searchQuery","original","_row$_getAllCellsByCo","_row$_getAllCellsByCo2","_getAllCellsByColumnId","columnDef","cellValue","getSettings","getState","columnOrder","columnOrdering","isEnabled","columnPinning","columnSizing","ignoreInternalColumns","columnVisibility","enableHiding","excludeUnmatchedRecordsInSearch","enableGlobalFilter","accum","createInternalColumn","defaultSizing","accessorKey","cell","renderer","enableColumnFilter","enableGrouping","enableResizing","enableSorting","minSize","enablePrinting","enableTruncate","configureReactTableOptions","enableRowSelection","enableRowSelectionSingle","tableOptions","defaultColumn","enableFiltering","enableColumnHiding","enableColumnResizing","enableSearch","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","enableRowExpansion","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableMultiRowSelection","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","getColumnCanGlobalFilter","_column$columnDef$met","_column$columnDef$met2","onChangeSort","manualSorting","getSortedRowModel","DEFAULT_PRESET","enableColumnOrdering","enableFontSize","enableFooter","enableRowActive","enableRowActions","enableRowClick","enableRowDrag","enableRowDrop","enableRowGoto","enableRowHeight","enableSaveSettings","presets","complex","simple","useTacoSettings","useLocalStorage","initialValue","setState","localStorageValue","localStorage","getItem","setItem","parse","serializedState","removeItem","DEFAULT_PRINT_SETTINGS","allRows","splitGroups","useIsHoverStatePaused","shouldPauseHoverState","setShouldPauseHoverState","useTableRowActive","initialRowActiveIndex","rowActiveIndex","setRowActiveIndex","rowHoverIndex","setRowHoverIndex","isHoverStatePaused","setHoverStatePaused","scrollToIndex","defaultPrevented","newIndex","handleFocus","_Pact","prototype","onFulfilled","onRejected","result","s","_settle","_this","pact","bind","_isSettledPact","thenable","_iteratorSymbol","Symbol","iterator","_catch","recover","_finallyRethrows","finalizer","asyncIterator","DEFAULT_ENABLED_OPTIONS","grouping","removeDisabledSettings","enabledSettings","sanitizedSettings","setting","useLazyEffect","effect","readyRef","getCellHeightPadding","getCellWidthPadding","ROW_HEIGHT_ESTIMATES","extra-tall","SkeletonRow","server","RowWithServerLoading","Skeleton","cellsCount","getVisibleCells","tableMeta","floor","inView","useInView","triggerOnce","initialInView","_tableMeta$server$loa","_tableMeta$server","loadPage","columnFilters","groupedCellCount","_table$getState$group","_table$getState","ungroupedCellCount","_","RowContext","isHovered","rowIndex","Row","RowRenderer","cellRenderer","CellRenderer","displayRowProps","rowActive","contextValue","actionsLength","isActiveRow","rowId","visibleActions","action","actionsOnRow","actionsInMenu","-mt-2","-mt-1.5","_ref","_button$props$tooltip","INTERNAL_RENDERERS","memo","rowActions","rowActionsLength","isResizingColumn","columnSizingInfo","onDragStart","getIsSelected","getSelectedRowModel","_tableMeta$rowDrag$se","_tableMeta$rowDrag","rowDrag","rowBeingDragged","dataTransfer","setData","_tableMeta$rowDrag$ha","_tableMeta$rowDrag2","handleRowDrag","ghost","createElement","innerText","appendChild","setDragImage","onDragEnd","handleDragEnd","_document$getElementB","getElementById","remove","_tableMeta$rowDrag$se2","_tableMeta$rowDrag3","headerClassName","isSomeRowsExpanded","getIsSomeRowsExpanded","toggleAllRowsExpanded","_tableMeta$rowExpansi","_tableMeta$rowExpansi2","rowExpansion","rowExpansionRenderer","getIsExpanded","toggleExpanded","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","toggleAllRowsSelected","_temp","loadAllIfNeeded","_temp2","loadAllStatus","Loading","getIsGrouped","isSelected","getIsAllSubRowsSelected","rowSelection","lastSelectedRowIndex","_temp6","subRows","toggleSelected","_temp5","_tableMeta$rowSelecti","_temp4","setRowSelection","currentRowSelection","selectedRows","fromIndex","toIndex","fromRowIndex","toRowIndex","getRowModel","_temp3","toggleBetween","_temp7","useTable","renderers","manager","safeId","presetOptions","preset","_props$enableRowActio","_props$enableRowClick","_props$enableRowDrag","_props$enableRowDrop","_props$enableRowGoto","_props$enableRowExpan","_props$enableRowSelec","_props$enableRowSelec2","_props$enableFilterin","_props$enableSearch","_props$enableSorting","_props$enableColumnFr","_props$enableColumnHi","_props$enableColumnRe","onRowSelect","_props$enableColumnOr","_props$enableFontSize","_props$enableFooter","_props$enablePrinting","_props$enableRowActiv","_props$rowActions","onRowClick","onRowDrag","onRowDrop","onRowGoto","_props$enableRowHeigh","_props$enableSaveSett","getTableFeaturePreset","setSettings","defaultSettings","onChangeSettings","uniqueId","tableId","hasSomeEnabledSettings","useEnabledSettings","persistedSettings","_setPersistedSettings","setPersistedSettings","useTableSettings","columnFreezing","isHorizontallyScrolled","setHorizontallyScrolled","handleScroll","useTableColumnFreezing","useTableColumnOrdering","defaultFontSize","setSize","useTableFontSize","useTableFooter","printing","isPrinting","setIsPrinting","setSetting","currentSettings","useTablePrintingSettings","useTablePrinting","defaultRowActiveIndex","useTableRowActions","rowClick","isRowClickEnabled","rowData","useTableRowClick","useTableRowDrag","rowDrop","useTableRowDrop","useTableRowExpansion","rowGoto","handleGoto","useTableRowGoto","rowGroups","rowActionsForGroup","defaultRowHeight","setHeight","useTableRowHeight","_rows$rowActiveIndex","useTableRowSelection","defaultEnableGlobalFilter","_setEnableGlobalFilter","highlightedColumnIndexes","setHighlightedColumnIndexes","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","setEnableGlobalFilter","enabled","instance","currentFilter","globalFilter","setGlobalFilter","useTableSearch","loadAll","isReady","setReady","setLoadedStatus","Incomplete","_loadPage","_loadAll","_loadAllIfNeeded","Completed","_loadAll2","useTableServerLoading","defaultState","defaultRowGroupColumnId","defaultSorting","defaultVisibility","processChildren","columnHelper","createColumnHelper","isValidElement","group","accessor","untypedId","aggregate","aggregationFn","defaultHidden","defaultWidth","sortFn","isGrouped","desc","accessorFn","get","flatMap","filterFn","aggregatedCell","sortingFn","customFnOrBuiltIn","rowA","rowB","sortDescFirst","sortUndefined","unshift","mapTableChildrenToColumns","initialState","defaults","_persistedSettings$co","_props$defaultSetting","_persistedSettings$co2","_props$defaultSetting2","_columnPinning$left","defaultColumnFreezingIndex","_ref2","_persistedSettings$co3","_props$defaultSetting3","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","_persistedSettings$se","_props$defaultSetting6","definedColumn","_props$defaultSetting7","_props$defaultSetting8","useReactTableInitialState","_props$data","_props$length","useReactTable","getCoreRowModel","rowIdentityColumnId","useTableDataListener","onFilter","resetRowSelection","useTableFilterListener","previousFontSizeRef","cellWidthDifference","fontSizeKey","getCellWidthDifference","globalMinSize","setColumnSizing","fromEntries","columnName","prevColumnSize","getColumn","_column$getSize","getSize","minColumnSize","_column$columnDef$min","useTableFontSizeListener","useTableRowHeightListener","_selectedRows$","useTableRowSelectionListener","onChangeSearch","firstRowIndex","getVisibleLeafColumns","rowGrouping","columnIndex","allowSearch","getIsVisible","resetHighlightedColumnIndexes","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","shortcutKeys","globalHandlers","keyDownHandler","keyDownHandlerOptions","useTableShortcutsListener","onSort","useTableSortingListener","_instance$options$met","useTableManager","tableRef","isTableRowGrouped","createRowMeasurer","estimateSize","expandedState","expandedRowHeightsCache","setExpandedRowHeightsCache","averageExpandedRowHeight","_rows$index","_rows$index$getIsExpa","resizeItem","virtualRow","expansionHeight","cache","useRowHeightVirtualisation","rangeExtractor","isTableGrouped","rowGroupIndexes","activeRowGroupIndex","_reverse$find","reverse","startIndex","defaultRangeExtractor","useRowGroupVirtualisation","scrollPaddingStart","scrollPaddingEnd","getHeaderGroups","virtualiser","useVirtualizer","getScrollElement","totalSize","getTotalSize","virtualItems","getVirtualItems","behavior","notSmooth","scrollToOffset","paddingStartIndex","startValue","_virtualItems$padding","_virtualItems$padding2","_virtualItems$padding3","paddingTop","paddingBottom","_virtualItems","end","measureRow","useTableRenderer","stylesheet","cssGridStyle","cssGridStylesheet","allVisibleColumns","gridTemplateRows","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","isLastColumn","trim","hiddenColumns","useTableStyleGrid","columnFreezingStylesheet","styles","all","getFlatHeaders","subHeaders","getLeftFlatHeaders","getRightFlatHeaders","getStart","getIsPinned","leftIds","rightIds","useTableStyleColumnFreezing","--table-header-group-depth","--table-cell-padding-x","--table-cell-padding-y","useTableStyle","_rows$tableMeta$rowAc","sibling","_element$closest2","isSiblingElementInsideSameParentOverlay","useTableGlobalShortcuts","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetSorting","useTableRef","_tableRef$current$que","_tableRef$current","activeRow","_activeRow$focus","preventScroll","useTableRowActiveListener","customSettings","emptyState","toolbarLeft","toolbarPanel","toolbarRight","getCellAttributes","isHighlighted","columnMeta","isPinned","data-cell-align","data-cell-highlighted","data-cell-id","data-cell-index","data-cell-pinned","data-cell-truncate","GroupedCell","cellRef","getContext","canShowActions","c","_columnMeta$renderer","_columnMeta$renderer2","MemoedGroupedCell","gridColumn","RowGroupActions","Cell","cellIndex","getIsAggregated","getIsPlaceholder","currentColumnIndex","tableEl","pinnedColumns","querySelectorAll","_pinnedColumns$item","lastFrozenRect","useSearchHighlighting","cellProps","DisplayRow","otherAttributes","data-row-id","data-row-index","clickedElement","_event$currentTarget","handleClickCapture","onClickCapture","_tableMeta$rowDrop$ha","_tableMeta$rowDrop","expandedRow","_tableMeta$rowExpansi3","rowMeta","_meta","expansionRef","rowEl","expansionEl","useSetVirtualisedRowHeight","DisplayCell","cellAttributes","flexRender","MemoedDisplayCell","RENDERERS","indicators","asc","SortIndicator","_indicators$props$dir","ariaSort","Resizer","headerRef","isResizing","onResetSize","handleResize","isInteger","handle","!visible","onMouseDown","onTouchStart","!bg-blue-500","bg-grey-500 hover:bg-grey-700","SearchInput","_internalRef$current$","_props$onKeyDown","handleCancelClick","GotoPopover","onGoto","popoverProps","HeaderMenu","canFilter","canGoto","canHide","canPin","canSort","customMenu","isFiltered","handleFilter","onHide","handleHide","onPin","handlePin","onSortToggle","handleSortToggle","sortDirection","setPopover","popoverElement","handleClosePopover","goto","_wasThrown","_result","memoedMenuItems","menuItems","MenuPrimitive","customItems","menuItem","!w-6 !min-w-[theme(spacing.6)]","_header$column$column","isGroup","_header$subHeaders","_header$subHeaders$fi","isPlaceholder","getCanFilter","getCanHide","canMeasureSize","getCanPin","canResize","getCanResize","getCanSort","getIsSorted","hasMenu","memoedProps","getIsFiltered","nextHeader","headerGroup","headers","after:!content-none","setFilterValue","_tableMeta$rowGoto$ha","_tableMeta$rowGoto","getToggleVisibilityHandler","setColumnPinning","pinningState","getAllLeafColumns","getIsResizing","getResizeHandler","resetSize","clearSorting","toggleSorting","getToggleSortingHandler","MemoedHeader","handleSort","handleResetSize","setRef","useLayoutEffect","setWidth","useSetInitialColumnSizing","aria-sort","_ariaSort$sortDirecti","getSortAttributes","ml-auto","ml-0","FOCUS_MANAGER_OPTIONS_TAB","accept","tabbable","FOCUS_MANAGER_OPTIONS_ARROW_KEYS","acceptTabbable","useAugmentedFocusManager","focusManager","useFocusManager","focusPrevious","arrowNavigation","focusNext","focusFirst","focusLast","Body","enableHorizontalArrowKeyNavigation","tableElement","handleMouseMove","_event$target","_event$target$closest","handleMouseLeave","isFirstRow","isLastRow","isMetaKeyPressed","focusedElement","prevIndex","onMouseMove","Summary","currentLength","rowsSelectedLength","Intl","NumberFormat","_table$getState$colum","Foot","nonGroupedHeaders","getFooterGroups","MemoedFooter","_footer$subHeaders","_footer$subHeaders$fi","EmptyStateBody","Placeholder","reason","SearchInput2","findCurrent","findTotal","onClear","onClickFindNext","handleClickFindNext","onClickFindPrevious","handleClickFindPrevious","settingsContent","containerRef","focused","setFocused","isActive","hasFind","handleBlur","_containerRef$current","_attributes$onBlur","handleClear","_internalRef$current2","_internalRef$current3","!w-48","!w-72","!wcag-blue-100","_attributes$ariaLabe","_attributes$onFocus","_attributes$placehold","_internalRef$current4","settingsClassname","z-10 [&_[data-taco=input-container]]:z-10","_internalRef$current5","Search","_tableMeta$search$hig","_tableMeta$search$hig2","handlePreviousResult","handleNextResult","_cell$focus","getContainerById","lists","_lists$find","l","Container","reorder","DndContext","collisionDetection","closestCenter","restrictToVerticalAxis","over","activeList","overList","listeners","setNodeRef","useSortable","CSS","Transform","elProps","onPointerDown","nodeName","useDroppable","SortableContext","verticalListSortingStrategy","Column","dragAttributes","hover:bg-grey-200","active:cursor-move active:bg-grey-300","isVisible","parentHeader","_column$parent","_column$parent$column","toggleVisibility","HideOrOrderPopover","setQuery","allColumns","_column$parent2","_column$parent2$colum","SortablePrimitive","handleReorder","activeId","overId","_column$columnDef$met3","currentOrder","nextOrder","setColumnOrder","getIsSomeColumnsPinned","_table$getState$colum2","currentFrozenIndex","currentPinning","_column$columnDef$met4","_column$columnDef$met5","Settings","canHideOrOrder","canChangeFontSize","canChangeRowHeight","RowHeightMenuItem","FontSizeMenuItem","Fragment","isAriaSelectionKey","isAriaDirectionKey","getOptionsFromCollection","collection","Root","setActiveIndex","lastLengthRef","setActiveOption","_collection$querySele","setActiveIndexByElement","matches","nextActiveIndex","firstSelected","selectedIndex","_options$item","recurse","getNextIndexFromKeycode","isSkippableItem","Listbox2Context","customSelector","multiple","CollectionPrimitive","Option","listboxDisabled","listboxReadOnly","currentValue","labelledById","setLabelledById","Listbox2GroupContext","onDelete","textRef","hover:bg-opacity-75","createOptionClassName","hover:wcag-grey-200","getFontSize","Select2Context","useSelect2Context","EditPopover","initialColor","initialName","onEdit","searchRef","selectRef","setName","setColor","validationError","setValidationError","handleInputChange","handleInputKeyDown","handleSave","handleDelete","preventKeyDownPropagation","_searchRef$current","_selectRef$current","handleInteractOutside","!pb-0","Colours","onChangeColor","availableColor","mobiles","isMobileDevice","listboxRef","tags","hasValue","isTag","_props$textValue","_props$textValue2","textValue","ListboxPrimitive","_listboxRef$current","parentElement","heading","hasSeparator","last:after:content-none after:content-[''] after:bg-grey-300 after:mx-2 after:my-1 after:h-px","text-grey-500","Multiple","Single","matchesValue","valuesAsChildren","forwardClick","_buttonRef$current","MultipleValue","_buttonRef$current2","setContentRef","boundaryIndex","truncate","BubbleSelect","selectProps","prevValue","usePreviousValue","getOwnPropertyDescriptor","HTMLSelectElement","set","onTabKeyPress","setSearchQuery","filterOption","_child$props$textValu","_child$props$descript","Create","onCreate","handleCreate","createDialog","createTriggerText","nextColor","occurrences","colors","getNextColor","onCreateDialogClose","!w-[calc(100%_-_theme(spacing.3))] ml-1.5","leading-normal border-grey-300 h-9 border-t py-2.5 px-4 !-mb-1.5","createText","Collection","Select2","initChildren","emptyOption","tabTriggeredClose","setTabTriggeredClose","_setValue","createListboxValueSetter","nextValue","flattenedChildren","filteredChildren","useChildren","_flattenedChildren$","filteredGroupChildren","groupChild","elementGainingFocus","portalId","_elementGainingFocus$","_otherProps$onBlur","selectOptions","areAllSelected","selectAllText","isInlineCreation","nextFocussableElement","currentElement","focussableElements","currentElementIndex","getNextFocussableElement","subValue","preselectedValues","!mt-1 !h-3.5 !w-3.5","!h-4 !w-4","!h-5 !w-5","ControlledHiddenField","bubbleValue","useIsFormControl","reset","isFormControl","setIsFormControl","formElement","_ref$current$closest","PrintDialog","onAccept","setOrientation","setAllRows","setSplitGroups","dialogProps","getVisibleFlatColumns","cellCount","rowGroupingColumnName","_columns$find","_columns$find$columnD","Print","lastScrollTopRef","togglePrinting","afterPrint","toastRef","execCommand","errorMessage","printStyle","media","useMatchMedia","defaultMatches","setMatches","mediaQuery","matchMedia","useIsLargeScreen","sortByHeader","_a$columnDef$meta","_a$columnDef$meta$hea","_a$columnDef$meta$hea2","localeCompare","_b$columnDef$meta","isEmptyFilter","hasOwnProperty","guessComparatorsBasedOnControl","renderedControl","FilterColumn","selectedColumn","FilterComparator","validComparators","_column$columnDef","getComparatorText","FilterValue","Control","controlRenderer","data-query-selector","Filter","onRemove","previousColumn","nextColumn","_previousColumn$colum","_previousColumn$colum2","_nextColumn$columnDef","handleRemove","placeholderFilter","ManageFiltersPopover","setFilters","filterValues","lastFilter","handleChangeFilter","currentFilters","handleRemoveFilter","nonEmptyFilters","setColumnFilters","handleApply","_allColumns$find","_allColumns$find$colu","Filters","isLargeScreen","appliedFilters","canChangeSettings","Table","Toolbar","customTools","isToolbarVisible","canPrint","canSettings","canSearch","Grid","filterReason","getFilterReason","_table$state$grouping","onScroll","BaseReport","useReport","Report","stringifiedChildren","sanitizeRowProps","indexPath","_row$subRows","toggleRowExpanded","toggleRowEditing","isEditing","getColumnsFromChildren","sortRules","groupChildren","sortType","disableSortBy","disableSorting","groupColumns","groupSortRules","headRenderer","columnProps","editRenderer","_props$cellRenderer","_cell$value","getInternalSortRules","rule","getTime","parsedValue","getNumber","amount","decimalSeparator","getString","guess","compareBasic","compareBasicStrings","stringsLocaleCompare","compareResult","reducer","init","allowEditing","editingRowUniqueId","resetRowEditing","resetPage","gotoPage","toggleEditing","useInstance","dispatch","assign","getActions","primary","secondary","showOnRow","getActionProps","EditModeActions","listener","_event$target$form","draggingRowIndexPath","resetRowDragging","toggleRowDragging","prepareRow","_instance$state$selec","isDragging","selectedRowIds","visibleColumns","DEFAULT_PAGE_SIZE","onSelectedRows","rowClassName","disablePagination","onPaginate","inlineEditingUniqueId","onRowCreate","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","Error","defaultSortRules","manualPagination","headerGroups","sortedRows","prepareBaseRow","page","sortBy","manualSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","datetime","string","number","boolean","auto","useControlledState","currentState","useRowState","useSortBy","useExpanded","usePagination","plugin","hooks","useBaseRowSelect","toggleRowSelected","lastSelectedSortedIndex","getToggleAllRowsSelectedProps","getToggleRowSelectedProps","sortedIndex","pluginName","useRowSelect","stateReducers","getRowProps","indexPaths","DataTransfer","removeChild","useRowDraggable","_createKey","canEdit","useRowEditing","useRowActions","handlers","inlineEditing","getLength","primaryActions","secondaryActions","hasActions","sanitizedRow","setActive","InView","useTablePaginationListener","sortedData","sanitizedInstance","useTableInstance","toggleHideAllColumns","toggleHideColumn","toggleSortBy","visibleRows","useTableKeyboardNavigation","rowProps","defaultActiveIndex","_props$onChangeActive","onChangeActiveIndex","isModifierKeyPressed","altKey","_document$activeEleme","_document$activeEleme2","currentRow","nativeEvent","handleonRowActive","focusedRow","sanitizedFocusedRow","tableProps","_otherProps$tabIndex","renderCell","getCellProps","justify-start text-left","justify-end text-right","text-center","render","minHeight","yt-table__row--active bg-grey-200 hover:bg-grey-200","yt-table__row--clickable","yt-table__row--dragging","yt-table__row--editing","classList","cells","hiddenOnSubRows","rowContent","contain","getHeaderProps","getSortByToggleProps","yt-table__cell__group","justify-center text-center","isSorted","isSortedDesc","DefaultEmptyState","BaseTable","bodyRef","emptyStateRenderer","paginationElement","PaginatedTable","VariableRow","setRowHeight","rowHeights","areEqual","getAverageRowHeight","p","WindowedTable","loadMore","rowsRef","setRowsRef","tableDimensions","headerDimensions","estimatedRowHeight","resetAfterIndex","getRowHeight","scrollToItem","table-with-scrollbar","listProps","itemData","estimatedItemSize","itemSize","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","convertRowIndexPathToNumberArray","rowIndexPath","_rowIndexPath$split$m","getByRowIndexPath","currenTRow","_value$subRows","getParentRowIndexPath","parentIndexPath","rowIndexes","insertChildTableRow","nexTRow","childRowIndexPath","_currentRow$subRows","nextSubRows","removeChildTableRow","rootIndex","unsetPath","unset","setPath","pullAt","willRowMove","change","willRowMoveAfterSearch","getFilterValue","willRowMoveAfterFilter","miniSortRows","resortedRows","getSortingFn","aUndefined","bUndefined","_resortedRows$index","willRowMoveAfterSorting","createPendingChangesSetter","currentChanges","changes","nextChanges","rowChanges","_currentChanges$row$i","moveReason","_currentChanges$row$i2","errors","_currentChanges$row$i3","k","getChangesetFromChanges","changeset","RowMoveIndicator","show","setShow","_cell$column$columnDe","getRowMoveReason","_cellRef$current$pare","firstChild","_cellRef$current$pare2","_cellRef$current$pare3","_cellRef$current$pare4","getMessageFromReason","Textarea","classNames","TextareaWithAutosizing","initialHeightRef","toggleHeight","textarea","_props$onBlur","_props$onChange","_props$onFocus","useEditingCellAutofocus","lastFocusedCellIndex","_props$cellRef$curren","isFocusedElementInCurrentRow","isFocusedElementSearch","isFocusedElementMenu","_props$cellRef$curren2","_props$cellRef$curren3","columnFreezingOffset","getLeftTotalSize","targetRect","tableRect","leftOffsetFromScrollContainer","scrollbarWidth","clientWidth","EditingControlCell","toggleDetailedMode","validateCell","getCellError","controlProps","isDetailedMode","setCellValue","_columnMeta$control","data-cell-editing-invalid","MemoedEditingCell","commonProps","_target$select2","_target$select","_target$setSelectionR","_target$value","_target$value2","newDate","EditingDisplayCell","EditingActionMenu","hasChanges","hasErrors","onExit","handleExit","onEditingSave","ConfirmClearChangesDialog","SaveStatus","getRowSaveStatus","setRowSaveStatus","mt-0.5","mt-1","mt-1.5","mt-2","_event$target$closest2","setLastFocusedCellIndex","data-row-editing-invalid","hasRowErrors","hasRowErrorsSeen","data-row-editing-status","cellError","hasErrorAndIsEditing","changedValue","getCellValue","validationTexts","showFilterResetDialog","setShowFilterResetDialog","pendingChangesWithErrors","getErrors","scrollToRow","setRowErrorsSeen","links","rowIdentityColumn","pendingChange","_table$getAllColumns$","_table$getAllColumns$2","firstCellErrorColumnId","getAllColumns","part","_rowIdentityColumn$co","_rowIdentityColumn$co2","BaseAlert","FilterResetDialog","onSubmit","handleResetFilters","resetGlobalFilter","handleSubmit","CreateNewRowButton","onEditingCreate","rowCreated","setRowCreated","rowFinder","createdRow","_rowCreated$rowFinder2","_rowCreated$rowFinder3","templateRow","firstCell","checkbox","keyframes","background","easing","animateCreateRow","addCreatedRowChangeset","_rowCreated$rowFinder","saveChanges","Editing","_tableMeta$rowActive$","BaseTable3","validator","lastFocusedCellIndexRef","useLastFocusedCellIndex","pendingChangesFns","pendingChanges","setPendingChanges","saveStates","setSaveState","pendingChangesUpdater","updatersRef","syncCellChanges","runCellUpdates","previousValues","nextValues","updates","usePendingChangesUpdater","_pendingChanges$rowId","_pendingChanges$rowId2","_pendingChanges$rowId3","_pendingChanges$rowId4","_pendingChanges$rowId5","currentStates","nextStates","resetChanges","_pendingChanges$cell$","_pendingChanges$cell$2","_pendingChanges$cell$3","_pendingChanges$cell$4","changeSet","hasShownErrorAlert","getAllCells","_currentChanges$cell$","_currentChanges$cell$2","_currentChanges$cell$3","focusIsInsideTable","_activeRow2","_error$pendingChange$","_activeRow","changesToSave","check","step","_cycle","done","return","_fixup","TypeError","array","_forTo","_forOf","_exit","rowError","cellErrors","_error$response","_error$response2","response","_nextChanges$rowId$_m","_nextChanges$rowId$_m2","_pendingChanges$rowId6","_pendingChanges$rowId7","_pendingChanges$rowId8","usePendingChanges","useTableEditing","enableEditing","onEditingChange","creationEnabled","showUnsavedChangesWarning","returnValue","onClickOutside","_event$target$getAttr","useTableEditingListener","useTable3","gridAttributes","data-table-editing-mode","_table3$meta$editing","_table3$meta$editing2","hasValidationErrors","showCreateRowButton","Table3","Tabs","flex w-full","TabsPrimitive","dir","TabList","TabTrigger","triggerClassName","activeClassName","TabContent","continuous","isLastStep","backProps","primaryProps","skipProps","tooltipProps","disableTourSkipOnEsc","skipButtonRef","onWindowKeyDown","TourStep","_props","Tour","autoStart","run","onComplete","onReady","spotlightClicks","disableCloseOnEsc","disableScrollParentFix","scrollOffset","steps","disableBeacon","showBeacon","getStep","_props$children$find","Joyride","showProgress","floaterProps","disableAnimation","tooltipComponent","spotlightPadding","ACTIONS","SKIP","lifecycle","LIFECYCLE","COMPLETE","EVENTS","TOUR_END","READY","primaryColor","Step","getButtonClasses","!rounded-full","isNew","getLinkClasses","link","!rounded-full !h-9 !w-9","whitespace-nowrap px-3 rounded text-sm hidden lg:flex","Logo","LogoLegacy","PrimaryNavigation","SecondaryNavigation","MenuButton","AgreementAvatar","src","fallbackSrc","loaded","setLoaded","onLoad","handleLoad","onError","AgreementBadge","agreement","isAdministrator","isDeveloper","AgreementItem","customClassName","fallbackImageSrc","imageSrc","userId","AgreementDisplay","currentAgreement","filterBySearchValue","matchesAgreementNumber","matchesCompanyName","isCurrentAgreement","createAgreementButton","onChangeAgreement","Display","AgreementSelector","agreements","filterAgreement","filterClientAgreement","onAddAgreement","handleAddAgreement","onLogout","handleLogout","collectionRef","setSearch","handleChangeAgreement","_collectionRef$curren","clients","clientAgreement","LayoutContext","sidebarOpen","setSidebarOpen","SidebarBackdrop","Sidebar","isSmallScreen","handleEscapeKey","showBackdrop","ready","absolute z-10 aria-hidden:-translate-x-64 ","invisible","transition-[transform] duration-300 visible","border-r-2 border-black/[.08] ","toggleSidebar","Page","Layout","Top","defaultExpanded","getAdjacentClasses","getNavigationLinkClasses","hover:bg-black/[.06] aria-current-page:bg-blue-500/[.1]","!bg-blue-500 !text-white [&>*]:!text-white","[&>*]:pointer-events-none","absolute right-0 !mr-0.5","group-hover:hidden [[aria-expanded=\"true\"]+&]:hidden ","Section","Navigation2","Progress","animationDuration","progressClassName","w-full before:h-1 before:bg-grey-300 before:block before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:content-[' ']","w-0 bg-grey-300 animate-[progress_linear]","setByRowIndexPath","useBoundaryOverflowDetection","setBoundaryIndex","useListKeyboardNavigation","setIndex","useOnClickOutside","currentRef","initialPageIndex","initialPageSize","fetchPage","fetchAll","_pendingPageRequests","_lastUsedSorting","_lastUsedFilters","_lastUsedSearch","_forceReset","currentData","nextData","splice","useTableRowCreation","internalData","setInternalData","activeRowIndexPath","setActiveRowIndexPath","parentId","newRowIndexPath","isCreating"],"mappings":"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AAiBsB,I4OgQ5B+P,c3OhQWrR,aAAiBuB,I2OiQ5B+P,gB1OjQWtR,aAAiBwB,I0OkQ5B+P,iBzOjQWvR,aAAiByB,IyOkQ5B+P,OxOnQWxR,aAAiB0B,IwOoQ5B+P,kBvOpQWzR,aAAiB2B,IuOqQ5B+P,StOrQW1R,aAAiB4B,IsOsQ5B+P,arOtQW3R,aAAiB6B,IqOuQ5B+P,MpOvQW5R,aAAiB8B,IoOwQ5B+P,anOxQW7R,aAAiB+B,ImOyQ5B+P,KlOzQW9R,aAAiBgC,IkO0Q5B+P,QjO1QW/R,aAAiBiC,IiO2Q5B+P,OhO3QWhS,aAAiBkC,IgO4Q5B+P,S/N5QWjS,aAAiBmC,I+N6Q5B+P,e9N9QWlS,aAAiBoC,I8N+Q5B+P,e7N9QWnS,aAAiBqC,I6N+Q5B+P,a5N9QWpS,aAAiBsC,I4N+Q5B+P,Y3N/QWrS,aAAiBuC,I2NgR5B+P,a1NhRWtS,aAAiBwC,I0NiR5B+P,YzNnRWvS,aAAiByC,IyNoR5B+P,cxNlRWxS,aAAiB0C,IwNmR5B+P,avNpRWzS,aAAiB2C,IuNqR5B+P,KtNrRW1S,aAAiB4C,IsNsR5B+P,sBrNtRW3S,aAAiB6C,IqNuR5B+P,qBpNvRW5S,aAAiB8C,IoNwR5B+P,enNxRW7S,aAAiB+C,ImNyR5B+P,sBlNzRW9S,aAAiBgD,IkN0R5B+P,qBjNzRW/S,aAAiBiD,IiN0R5B+P,ehN3RWhT,aAAiBkD,IgN4R5B+P,uB/M5RWjT,aAAiBmD,I+M6R5B+P,sB9M5RWlT,aAAiBoD,I8M6R5B+P,gB7M9RWnT,aAAiBqD,I6M+R5B+P,oB5M/RWpT,aAAiBsD,I4MgS5B+P,mB3MhSWrT,aAAiBuD,I2MiS5B+P,a1MjSWtT,aAAiBwD,I0MkS5B+P,ezMjSWvT,aAAiByD,IyMkS5B+P,qBxMlSWxT,aAAiB0D,IwMmS5B+P,evMpSWzT,aAAiB2D,IuMqS5B+P,ctMrSW1T,aAAiB4D,IsMsS5B+P,sBrMrSW3T,aAAiB6D,IqMsS5B+P,cpMvSW5T,aAAiB8D,IoMwS5B+P,iBnMvSW7T,aAAiB+D,ImMwS5B+P,alMzSW9T,aAAiBgE,IkM0S5B+P,MjM1SW/T,aAAiBiE,IiM2S5B+P,MhM3SWhU,aAAiBkE,IgM4S5B+P,gB/L3SWjU,aAAiBmE,I+L4S5B+P,kB9L5SWlU,aAAiBoE,I8L6S5B+P,Q7L7SWnU,aAAiBqE,I6L8S5B+P,oB5LhTWpU,aAAiBsE,I4LiT5B+P,oB3LjTWrU,aAAiBuE,I2LkT5B+P,S1LjTWtU,aAAiBwE,I0LkT5B+P,KzLlTWvU,aAAiByE,IyLmT5B+P,QxLpTWxU,aAAiB0E,IwLqT5B+P,OvLpTWzU,aAAiB2E,IuLqT5B+P,qBtLrTW1U,aAAiB4E,IsLsT5B+P,OrLtTW3U,aAAiB6E,IqLuT5B+P,WpLvTW5U,aAAiB8E,IoLwT5B+P,UnLxTW7U,aAAiB+E,ImLyT5B+P,wBlLzTW9U,aAAiBgF,IkL0T5B+P,mBjL1TW/U,aAAiBiF,IiL2T5B+P,wBhL3TWhV,aAAiBkF,IgL4T5B+P,e/K5TWjV,aAAiBmF,I+K6T5B+P,iB9K7TWlV,aAAiBoF,I8K8T5B+P,wB7K9TWnV,aAAiBqF,I6K+T5B+P,iB5K/TWpV,aAAiBsF,I4KgU5B+P,gB3KhUWrV,aAAiBuF,I2KiU5B+P,mB1KjUWtV,aAAiBwF,I0KkU5B+P,oBzKnUWvV,aAAiByF,IyKoU5B+P,4BxKpUWxV,aAAiB0F,IwKqU5B+P,wBvKpUWzV,aAAiB2F,IuKqU5B+P,kBtKpUW1V,aAAiB4F,IsKqU5B+P,iBrKtUW3V,aAAiB6F,IqKuU5B+P,gBpKvUW5V,aAAiB8F,IoKwU5B+P,SnKzUW7V,aAAiB+F,ImK0U5B+P,SlKzUW9V,aAAiBgG,IkK0U5B+P,KjK1UW/V,aAAiBiG,IiK2U5B+P,YhK3UWhW,aAAiBkG,IgK4U5B+P,c/J3UWjW,aAAiBmG,I+J4U5B+P,K9J7UWlW,aAAiBoG,I8J8U5B+P,sB7J9UWnW,aAAiBqG,I6J+U5B+P,oB5J/UWpW,aAAiBsG,I4JgV5B+P,qB3JhVWrW,aAAiBuG,I2JiV5B+P,e1JjVWtW,aAAiBwG,I0JkV5B+P,kBzJlVWvW,aAAiByG,IyJmV5B+P,8BxJnVWxW,aAAiB0G,IwJoV5B+P,8BvJpVWzW,aAAiB2G,IuJqV5B+P,2BtJrVW1W,aAAiB4G,IsJsV5B+P,qCrJnVW3W,aAAiB6G,IqJoV5B+P,8BpJvVW5W,aAAiB8G,IoJwV5B+P,8BnJxVW7W,aAAiB+G,ImJyV5B+P,oBlJzVW9W,aAAiBgH,IkJ0V5B+P,iBjJzVW/W,aAAiBiH,IiJ0V5B+P,ShJ3VWhX,aAAiBkH,IgJ4V5B+P,c/I5VWjX,aAAiBmH,I+I6V5B+P,S9I7VWlX,aAAiBoH,I8I8V5B+P,kB7I9VWnX,aAAiBqH,I6I+V5B+P,gB5I/VWpX,aAAiBsH,I4IgW5B+P,O3IhWWrX,aAAiBuH,I2IiW5B+P,U1IhWWtX,aAAiBwH,I0IiW5B+P,SzIjWWvX,aAAiByH,IyIkW5B+P,exInWWxX,aAAiB0H,IwIoW5B+P,OvIpWWzX,aAAiB2H,IuIqW5B+P,YtIpWW1X,aAAiB4H,IsIqW5B+P,crItWW3X,aAAiB6H,IqIuW5B+P,KpIvWW5X,aAAiB8H,IoIwW5B+P,oBnIvWW7X,aAAiB+H,ImIwW5B+P,gBlIxWW9X,aAAiBgI,IkIyW5B+P,ejIzWW/X,aAAiBiI,IiI0W5B+P,chI1WWhY,aAAiBkI,IgI2W5B+P,c/H5WWjY,aAAiBmI,I+H6W5B+P,M9H5WWlY,aAAiBoI,I8H6W5BvH,G7H7WWb,aAAiBqI,I6H8W5B8P,O5H/WWnY,aAAiBsI,I4HgX5B8P,O3HhXWpY,aAAiBuI,I2HiX5B8P,mB1HhXWrY,aAAiBwI,I0HiX5B8P,iBzHjXWtY,aAAiByI,IyHkX5B8P,cxHlXWvY,aAAiB0I,IwHmX5B8P,MvHnXWxY,aAAiB2I,IuHoX5B8P,KtHnXWzY,aAAiB4I,IsHoX5B8P,mBrHtXW1Y,aAAiB6I,IqHuX5B8P,UpHvXW3Y,aAAiB8I,IoHwX5B8P,cnHxXW5Y,aAAiB+I,ImHyX5B8P,clHzXW7Y,aAAiBgJ,IkH0X5B8P,ejH1XW9Y,aAAiBiJ,IiH2X5B8P,chH3XW/Y,aAAiBkJ,IgH4X5B8P,c/G5XWhZ,aAAiBmJ,I+G6X5B8P,O9G7XWjZ,aAAiBoJ,I8G8X5B8P,gC7G9XWlZ,aAAiBqJ,I6G+X5B8P,sC5G5XWnZ,aAAiBsJ,I4G6X5B8P,6B3GhYWpZ,aAAiBuJ,I2GiY5B8P,4B1GjYWrZ,aAAiBwJ,I0GkY5B8P,6BzGlYWtZ,aAAiByJ,IyGmY5B8P,kCxGnYWvZ,aAAiB0J,IwGoY5B8P,+BvGpYWxZ,aAAiB2J,IuGqY5B8P,wCtGlYWzZ,aAAiB4J,IsGmY5B8P,crGtYW1Z,aAAiB6J,IqGuY5B8P,UpGvYW3Z,aAAiB8J,IoGwY5B8P,KnGxYW5Z,aAAiB+J,ImGyY5B8P,gBlGpYW7Z,aAAiBgK,IkGqY5B8P,gBjG1YW9Z,aAAiBiK,IiG2Y5B8P,chG3YW/Z,aAAiBkK,IgG4Y5B8P,K/F5YWha,aAAiBmK,I+F6Y5B8P,S9F9YWja,aAAiBoK,I8F+Y5B8P,Y7F9YWla,aAAiBqK,I6F+Y5B8P,K5F9YWna,aAAiBsK,I4F+Y5B8P,U3F/YWpa,aAAiBuK,I2FgZ5B8P,I1FjZWra,aAAiBwK,I0FkZ5B8P,OzFlZWta,aAAiByK,IyFmZ5B8P,gBxF/YWva,aAAiB0K,IwFgZ5B8P,evFpZWxa,aAAiB2K,IuFqZ5B8P,gBtFrZWza,aAAiB4K,IsFsZ5B8P,KrFvZW1a,aAAiB6K,IqFwZ5B8P,QpFvZW3a,aAAiB8K,IoFwZ5B8P,enFxZW5a,aAAiB+K,ImFyZ5B8P,elFzZW7a,aAAiBgL,IkF0Z5B8P,ajF1ZW9a,aAAiBiL,IiF2Z5B8P,KhF3ZW/a,aAAiBkL,IgF4Z5B8P,K/E5ZWhb,aAAiBmL,I+E6Z5B8P,kB9E7ZWjb,aAAiBoL,I8E8Z5B8P,iB7E9ZWlb,aAAiBqL,I6E+Z5B8P,Y5E/ZWnb,aAAiBsL,I4Ega5B8P,K3EhaWpb,aAAiBuL,I2Eia5B8P,iB1E9ZWrb,aAAiBwL,I0E+Z5B8P,QzEnaWtb,aAAiByL,IyEoa5B8P,cxEnaWvb,aAAiB0L,IwEoa5B8P,evEnaWxb,aAAiB2L,IuEoa5B8P,iBtEpaWzb,aAAiB4L,IsEqa5B8P,OrEtaW1b,aAAiB6L,IqEua5B8P,gBpEvaW3b,aAAiB8L,IoEwa5B8P,enExaW5b,aAAiB+L,ImEya5B8P,clEzaW7b,aAAiBgM,IkE0a5B8P,cjE1aW9b,aAAiBiM,IiE2a5B8P,chE5aW/b,aAAiBkM,IgE6a5B8P,M/D7aWhc,aAAiBmM,I+D8a5B8P,K9D7aWjc,aAAiBoM,I8D8a5B8P,a7D9aWlc,aAAiBqM,I6D+a5B8P,M5D/aWnc,aAAiBsM,I4Dgb5B8P,kB3DhbWpc,aAAiBuM,I2Dib5B8P,sB1DjbWrc,aAAiBwM,I0Dkb5B8P,QzDjbWtc,aAAiByM,IyDkb5B8P,gBxDnbWvc,aAAiB0M,IwDob5B8P,SvDpbWxc,aAAiB2M,IuDqb5B8P,qBtDtbWzc,aAAiB4M,IsDub5B8P,gBrDvbW1c,aAAiB6M,IqDwb5B8P,WpDvbW3c,aAAiB8M,IoDwb5B8P,oBnDxbW5c,aAAiB+M,ImDyb5B8P,0BlDzbW7c,aAAiBgN,IkD0b5B8P,WjD1bW9c,aAAiBiN,IiD2b5B8P,QhD5bW/c,aAAiBkN,IgD6b5B8P,e/C5bWhd,aAAiBmN,I+C6b5B8P,O9C7bWjd,aAAiBoN,I8C8b5B8P,Q7C9bWld,aAAiBqN,I6C+b5B8P,c5ChcWnd,aAAiBsN,I4Cic5B8P,e3CjcWpd,aAAiBuN,I2Ckc5B8P,M1CjcWrd,aAAiBwN,I0Ckc5B8P,czClcWtd,aAAiByN,IyCmc5B8P,OxCncWvd,aAAiB0N,IwCoc5B8P,cvCpcWxd,aAAiB2N,IuCqc5B8P,OtCrcWzd,aAAiB4N,IsCsc5B8P,iBrCtcW1d,aAAiB6N,IqCuc5B8P,SpCvcW3d,aAAiB8N,IoCwc5B8P,UnCxcW5d,aAAiB+N,ImCyc5B8P,WlCzcW7d,aAAiBgO,IkC0c5B8P,YjC1cW9d,aAAiBiO,IiC2c5B8P,YhC3cW/d,aAAiBkO,IgC4c5B8P,gB/B5cWhe,aAAiBmO,I+B6c5B8P,Q9B7cWje,aAAiBoO,I8B8c5B8P,S7B9cWle,aAAiBqO,I6B+c5B8P,U5B/cWne,aAAiBsO,I4Bgd5B8P,a3BhdWpe,aAAiBuO,I2Bid5B8P,K1BjdWre,aAAiBwO,I0Bkd5B8P,czBldWte,aAAiByO,IyBmd5B8P,iBxBndWve,aAAiB0O,IwBod5B8P,IvBpdWxe,aAAiB2O,IuBqd5B8P,oBtBrdWze,aAAiB4O,IsBsd5B8P,UrBtdW1e,aAAiB6O,IqBud5B8P,apBvdW3e,aAAiB8O,IoBwd5B8P,mBnBxdW5e,aAAiB+O,ImByd5B8P,alBzdW7e,aAAiBgP,IkB0d5B8P,iBjB1dW9e,aAAiBi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"}