@economic/taco 1.1.4 → 1.1.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/README.md +82 -82
  2. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  4. package/dist/esm/components/Badge/Badge.js.map +1 -1
  5. package/dist/esm/components/Banner/Banner.js.map +1 -1
  6. package/dist/esm/components/Banner/util.js +1 -1
  7. package/dist/esm/components/Banner/util.js.map +1 -1
  8. package/dist/esm/components/Button/Button.js.map +1 -1
  9. package/dist/esm/components/Button/util.js +18 -23
  10. package/dist/esm/components/Button/util.js.map +1 -1
  11. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  12. package/dist/esm/components/Card/Card.js.map +1 -1
  13. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  14. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  15. package/dist/esm/components/Combobox/useCombobox.js +67 -87
  16. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  17. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  18. package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
  19. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  20. package/dist/esm/components/Dialog/Context.js +4 -4
  21. package/dist/esm/components/Dialog/Context.js.map +1 -1
  22. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  23. package/dist/esm/components/Dialog/components/Content.js +39 -44
  24. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  25. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  26. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  27. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  28. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  29. package/dist/esm/components/Dialog/components/Trigger.js +2 -2
  30. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  31. package/dist/esm/components/Field/Field.js.map +1 -1
  32. package/dist/esm/components/Form/Form.js.map +1 -1
  33. package/dist/esm/components/Group/Group.js.map +1 -1
  34. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  35. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  36. package/dist/esm/components/Icon/Icon.js.map +1 -1
  37. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  38. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  39. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  40. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  41. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  42. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  43. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  44. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  45. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  46. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  47. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  48. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  49. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  50. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  51. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  52. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  53. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  54. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  55. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  56. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  57. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  58. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  59. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  60. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  61. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  62. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  63. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  64. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  65. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  66. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  67. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  68. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  69. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  70. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  71. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  72. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  73. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  74. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  75. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -1
  76. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -1
  77. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -1
  78. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -1
  79. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  80. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  81. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  82. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  83. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  84. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  85. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  86. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  87. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  88. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  89. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  90. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  91. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  92. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  93. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  94. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  95. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  96. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  97. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  98. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  99. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  100. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  101. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  102. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  103. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  104. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  105. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  106. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  107. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  108. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  109. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  110. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  111. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  112. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  113. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  114. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  115. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  116. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  117. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  118. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  119. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  120. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  121. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  122. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  123. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  124. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  125. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  126. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  127. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  128. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  129. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  130. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  131. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  132. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  133. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  134. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  135. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  136. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  137. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  138. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  139. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  140. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  141. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  142. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  143. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  144. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  145. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  146. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  147. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  148. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  149. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  150. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  151. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  152. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  153. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  154. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  155. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  156. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  157. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  158. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  159. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  160. package/dist/esm/components/Icon/components/List.js.map +1 -1
  161. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  162. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  163. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  164. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  165. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  166. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  167. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  168. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  169. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  170. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  171. package/dist/esm/components/Icon/components/More.js.map +1 -1
  172. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  173. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  174. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  175. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  176. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  177. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  178. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  179. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  180. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  181. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  182. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  183. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  184. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  185. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  186. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  187. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  188. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  189. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  190. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  191. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  192. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  193. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  194. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  195. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  196. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  197. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  198. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  199. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  200. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  201. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  202. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  203. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  204. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  205. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  206. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  207. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  208. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  209. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  210. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  211. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  212. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  213. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  214. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  215. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  216. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  217. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  218. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  219. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  220. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  221. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  222. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  223. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  224. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  225. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  226. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  227. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  228. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  229. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  230. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  231. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  232. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  233. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  234. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  235. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  236. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  237. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  238. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  239. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  240. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  241. package/dist/esm/components/Icon/components/index.js +4 -4
  242. package/dist/esm/components/Icon/components/index.js.map +1 -1
  243. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  244. package/dist/esm/components/Input/Input.js.map +1 -1
  245. package/dist/esm/components/Input/util.js +2 -2
  246. package/dist/esm/components/Input/util.js.map +1 -1
  247. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  248. package/dist/esm/components/Listbox/ScrollableList.js +64 -83
  249. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  250. package/dist/esm/components/Listbox/useListbox.js +51 -60
  251. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  252. package/dist/esm/components/Listbox/useMultiListbox.js +64 -91
  253. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  254. package/dist/esm/components/Listbox/useTypeahead.js +10 -9
  255. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  256. package/dist/esm/components/Listbox/util.js +48 -85
  257. package/dist/esm/components/Listbox/util.js.map +1 -1
  258. package/dist/esm/components/Menu/Context.js +2 -2
  259. package/dist/esm/components/Menu/Context.js.map +1 -1
  260. package/dist/esm/components/Menu/Menu.js.map +1 -1
  261. package/dist/esm/components/Menu/components/Checkbox.js +8 -9
  262. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  263. package/dist/esm/components/Menu/components/Content.js +9 -11
  264. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  265. package/dist/esm/components/Menu/components/Header.js +3 -3
  266. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  267. package/dist/esm/components/Menu/components/Item.js +30 -31
  268. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  269. package/dist/esm/components/Menu/components/Link.js +10 -11
  270. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  271. package/dist/esm/components/Menu/components/RadioGroup.js +16 -18
  272. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  273. package/dist/esm/components/Menu/components/Separator.js +1 -1
  274. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  275. package/dist/esm/components/Menu/components/Trigger.js +4 -4
  276. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  277. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  278. package/dist/esm/components/Pagination/PageNumbers.js +23 -28
  279. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  280. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  281. package/dist/esm/components/Pagination/usePagination.js +7 -21
  282. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  283. package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
  284. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  285. package/dist/esm/components/Popover/Popover.js.map +1 -1
  286. package/dist/esm/components/Popover/Primitives.js +7 -8
  287. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  288. package/dist/esm/components/Progress/Progress.js.map +1 -1
  289. package/dist/esm/components/Provider/Provider.js.map +1 -1
  290. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  291. package/dist/esm/components/SearchInput/SearchInput.js +1 -1
  292. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  293. package/dist/esm/components/Select/Select.js.map +1 -1
  294. package/dist/esm/components/Select/useSelect.js +63 -81
  295. package/dist/esm/components/Select/useSelect.js.map +1 -1
  296. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  297. package/dist/esm/components/Switch/Switch.js.map +1 -1
  298. package/dist/esm/components/Table/components/BaseTable.js +23 -30
  299. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  300. package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
  301. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  302. package/dist/esm/components/Table/components/Table.js +18 -25
  303. package/dist/esm/components/Table/components/Table.js.map +1 -1
  304. package/dist/esm/components/Table/components/WindowedTable.js +89 -109
  305. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  306. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
  307. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  308. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
  309. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  310. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
  311. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  312. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +79 -89
  313. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  314. package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
  315. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  316. package/dist/esm/components/Table/hooks/useTable.js +119 -141
  317. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  318. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +13 -16
  319. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  320. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  321. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  322. package/dist/esm/components/Table/util/renderRow.js +37 -46
  323. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  324. package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
  325. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  326. package/dist/esm/components/Table/util/sortTypes.js +23 -31
  327. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  328. package/dist/esm/components/Table/util.js +29 -41
  329. package/dist/esm/components/Table/util.js.map +1 -1
  330. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  331. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  332. package/dist/esm/components/Toast/Toast.js +20 -21
  333. package/dist/esm/components/Toast/Toast.js.map +1 -1
  334. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  335. package/dist/esm/components/Toast/util.js +2 -2
  336. package/dist/esm/components/Toast/util.js.map +1 -1
  337. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  338. package/dist/esm/components/Tour/Tour.js.map +1 -1
  339. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  340. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  341. package/dist/esm/index.css +661 -661
  342. package/dist/esm/index.js +1 -1
  343. package/dist/esm/primitives/Button.js +9 -13
  344. package/dist/esm/primitives/Button.js.map +1 -1
  345. package/dist/esm/utils/date.js.map +1 -1
  346. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  347. package/dist/esm/utils/hooks/useDraggable.js +16 -17
  348. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  349. package/dist/esm/utils/hooks/useDropTarget.js +7 -10
  350. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  351. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  352. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  353. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  354. package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
  355. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  356. package/dist/esm/utils/hooks/useTimer.js +9 -17
  357. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  358. package/dist/esm/utils/input.js +7 -11
  359. package/dist/esm/utils/input.js.map +1 -1
  360. package/dist/esm/utils/mergeRefs.js +2 -2
  361. package/dist/esm/utils/mergeRefs.js.map +1 -1
  362. package/dist/esm/utils/taillwind.js +2 -2
  363. package/dist/esm/utils/taillwind.js.map +1 -1
  364. package/dist/index.css +661 -661
  365. package/dist/taco.cjs.development.js +1492 -1822
  366. package/dist/taco.cjs.development.js.map +1 -1
  367. package/dist/taco.cjs.production.min.js +1 -1
  368. package/dist/taco.cjs.production.min.js.map +1 -1
  369. package/package.json +5 -5
  370. package/plugins/tailwindcss-aria-attributes.js +73 -73
  371. package/tailwind.config.js +260 -255
  372. package/types.json +2603 -7007
@@ -1,4 +1,3 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useMemo, useState, useEffect } from 'react';
3
2
  import { v4 } from 'uuid';
4
3
  import { useLocalization } from '../Provider/Provider.js';
@@ -7,62 +6,47 @@ import keycode from 'keycode';
7
6
  import { getIndexFromValue, getSelectedIndexesFromValue, setInputValueByRef, getActiveDescendant, findByValue } from './util.js';
8
7
  import { useTypeahead } from './useTypeahead.js';
9
8
 
10
- var _excluded = ["data", "defaultValue", "disabled", "emptyValue", "id", "name", "onClick", "onChange", "onFocus", "onKeyDown", "value"];
11
- var useMultiListbox = function useMultiListbox(_ref, ref) {
12
- var _ref$data = _ref.data,
13
- externalData = _ref$data === void 0 ? [] : _ref$data,
14
- defaultValue = _ref.defaultValue,
15
- disabled = _ref.disabled,
16
- nativeId = _ref.id,
17
- name = _ref.name,
18
- onClick = _ref.onClick,
19
- onChange = _ref.onChange,
20
- onFocus = _ref.onFocus,
21
- onKeyDown = _ref.onKeyDown,
22
- value = _ref.value,
23
- otherProps = _objectWithoutPropertiesLoose(_ref, _excluded);
24
-
25
- var _useLocalization = useLocalization(),
26
- texts = _useLocalization.texts;
27
-
28
- var id = useMemo(function () {
29
- return nativeId || v4();
30
- }, [nativeId]);
31
- var inputRef = useProxiedRef(ref);
32
- var data = useMemo(function () {
9
+ const useMultiListbox = ({
10
+ data: externalData = [],
11
+ defaultValue,
12
+ disabled,
13
+ emptyValue: _,
14
+ id: nativeId,
15
+ name,
16
+ onClick,
17
+ onChange,
18
+ onFocus,
19
+ onKeyDown,
20
+ value,
21
+ ...otherProps
22
+ }, ref) => {
23
+ const {
24
+ texts
25
+ } = useLocalization();
26
+ const id = useMemo(() => nativeId || v4(), [nativeId]);
27
+ const inputRef = useProxiedRef(ref);
28
+ const data = useMemo(() => {
33
29
  return [{
34
30
  text: texts.listbox.allOption,
35
31
  value: '#ALL-OPTIONS#'
36
- }].concat(externalData);
32
+ }, ...externalData];
37
33
  }, [externalData]);
38
-
39
- var _React$useState = useState(getIndexFromValue(data, value) || 0),
40
- currentIndex = _React$useState[0],
41
- setCurrentIndex = _React$useState[1];
42
-
43
- var _React$useState2 = useState(false),
44
- allOptionsSelected = _React$useState2[0],
45
- setAllOptionsSelected = _React$useState2[1];
46
-
47
- var _useTypeahead = useTypeahead({
48
- data: data,
49
- currentIndex: currentIndex
50
- }),
51
- getNextIndex = _useTypeahead.getNextIndex;
52
-
53
- var _React$useState3 = useState(getSelectedIndexesFromValue(data, value)),
54
- selectedIndexes = _React$useState3[0],
55
- setSelectedIndexes = _React$useState3[1];
56
-
57
- useEffect(function () {
34
+ const [currentIndex, setCurrentIndex] = useState(getIndexFromValue(data, value) || 0);
35
+ const [allOptionsSelected, setAllOptionsSelected] = useState(false);
36
+ const {
37
+ getNextIndex
38
+ } = useTypeahead({
39
+ data,
40
+ currentIndex
41
+ });
42
+ const [selectedIndexes, setSelectedIndexes] = useState(getSelectedIndexesFromValue(data, value));
43
+ useEffect(() => {
58
44
  if (defaultValue && !value) {
59
45
  setInputValueByRef(inputRef.current, defaultValue.toString());
60
46
  }
61
47
  }, []);
62
- useEffect(function () {
63
- var selectableItemsCount = data.filter(function (item) {
64
- return !item.disabled;
65
- }).length - 1;
48
+ useEffect(() => {
49
+ const selectableItemsCount = data.filter(item => !item.disabled).length - 1;
66
50
 
67
51
  if (selectableItemsCount === selectedIndexes.length) {
68
52
  setAllOptionsSelected(true);
@@ -71,38 +55,30 @@ var useMultiListbox = function useMultiListbox(_ref, ref) {
71
55
  }
72
56
  }, [selectedIndexes, data]);
73
57
 
74
- var setInputValueByIndex = function setInputValueByIndex(index) {
58
+ const setInputValueByIndex = index => {
75
59
  if (index !== undefined) {
76
- var option = data[index];
60
+ const option = data[index];
77
61
 
78
62
  if (option && !option.disabled) {
79
63
  var _inputRef$current;
80
64
 
81
- var newInputValue = '';
82
- var currentInputValue = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value;
83
- var currentValuesArray = (currentInputValue === null || currentInputValue === void 0 ? void 0 : currentInputValue.split(',')) || [];
84
- var optionAlreadySelected = currentValuesArray.findIndex(function (val) {
85
- return val === String(option.value);
86
- }) !== -1; // Handling the select_all option
65
+ let newInputValue = '';
66
+ const currentInputValue = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value;
67
+ const currentValuesArray = (currentInputValue === null || currentInputValue === void 0 ? void 0 : currentInputValue.split(',')) || [];
68
+ const optionAlreadySelected = currentValuesArray.findIndex(val => val === String(option.value)) !== -1; // Handling the select_all option
87
69
 
88
70
  if (option.value === '#ALL-OPTIONS#') {
89
71
  if (!allOptionsSelected) {
90
- newInputValue = data.filter(function (option, index) {
91
- return index !== 0 && !option.disabled;
92
- }).map(function (option) {
93
- return option.value;
94
- }).join(',');
72
+ newInputValue = data.filter((option, index) => index !== 0 && !option.disabled).map(option => option.value).join(',');
95
73
  } else {
96
74
  newInputValue = '';
97
75
  }
98
76
  } else {
99
77
  // Handling rest options
100
78
  if (optionAlreadySelected) {
101
- newInputValue = currentValuesArray.filter(function (val) {
102
- return val !== String(option.value);
103
- }).join(',');
79
+ newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');
104
80
  } else {
105
- newInputValue = currentInputValue ? currentInputValue + "," + option.value : option.value;
81
+ newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;
106
82
  }
107
83
  }
108
84
 
@@ -111,7 +87,7 @@ var useMultiListbox = function useMultiListbox(_ref, ref) {
111
87
  }
112
88
  };
113
89
 
114
- var handleListboxClick = function handleListboxClick(event, index) {
90
+ const handleListboxClick = (event, index) => {
115
91
  event.preventDefault();
116
92
 
117
93
  if (!data[index].disabled) {
@@ -124,11 +100,11 @@ var useMultiListbox = function useMultiListbox(_ref, ref) {
124
100
  }
125
101
  };
126
102
 
127
- var handleListboxKeyDown = function handleListboxKeyDown(event, index) {
128
- var charKey = String.fromCharCode(event.keyCode);
103
+ const handleListboxKeyDown = (event, index) => {
104
+ const charKey = String.fromCharCode(event.keyCode);
129
105
 
130
106
  if (charKey.match(/(\w)/g)) {
131
- var nextIndex = getNextIndex(charKey);
107
+ const nextIndex = getNextIndex(charKey);
132
108
 
133
109
  if (nextIndex > -1 && nextIndex !== currentIndex) {
134
110
  setCurrentIndex(nextIndex);
@@ -160,22 +136,22 @@ var useMultiListbox = function useMultiListbox(_ref, ref) {
160
136
  }
161
137
  };
162
138
 
163
- var handleListboxFocus = function handleListboxFocus(event) {
139
+ const handleListboxFocus = event => {
164
140
  if (onFocus) {
165
141
  event.persist();
166
142
  onFocus(event);
167
143
  }
168
144
  };
169
145
 
170
- var handleInputChange = function handleInputChange(event) {
146
+ const handleInputChange = event => {
171
147
  event.persist();
172
148
  setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));
173
149
 
174
150
  if (onChange) {
175
- var detail = [];
176
- var valuesArray = event.target.value.split(',');
177
- valuesArray.forEach(function (val) {
178
- var item = findByValue(data, val);
151
+ const detail = [];
152
+ const valuesArray = event.target.value.split(',');
153
+ valuesArray.forEach(val => {
154
+ const item = findByValue(data, val);
179
155
 
180
156
  if (item) {
181
157
  detail.push(item);
@@ -186,36 +162,33 @@ var useMultiListbox = function useMultiListbox(_ref, ref) {
186
162
  }
187
163
  };
188
164
 
189
- var list = _extends({}, otherProps, {
165
+ const list = { ...otherProps,
190
166
  'aria-activedescendant': getActiveDescendant(data, currentIndex, id),
191
167
  'aria-multiselectable': true,
192
- data: data,
193
- disabled: disabled,
194
- id: id,
195
- onChange: function onChange() {
196
- return null;
197
- },
168
+ data,
169
+ disabled,
170
+ id,
171
+ onChange: () => null,
198
172
  onClick: handleListboxClick,
199
173
  onFocus: handleListboxFocus,
200
174
  onKeyDown: handleListboxKeyDown,
201
175
  scrollOnFocus: false,
202
176
  tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,
203
177
  value: currentIndex,
204
- selectedIndexes: selectedIndexes,
178
+ selectedIndexes,
205
179
  multiselect: true,
206
- allOptionsSelected: allOptionsSelected
207
- });
208
-
209
- var input = {
210
- name: name,
180
+ allOptionsSelected
181
+ };
182
+ const input = {
183
+ name,
211
184
  onChange: handleInputChange,
212
185
  ref: inputRef,
213
186
  tabIndex: -1,
214
187
  value: value !== null && value !== void 0 ? value : ''
215
188
  };
216
189
  return {
217
- list: list,
218
- input: input
190
+ list,
191
+ input
219
192
  };
220
193
  };
221
194
 
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiListbox.js","sources":["../../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport { v4 as uuid } from 'uuid';\nimport { useLocalization } from '../Provider/Provider';\nimport { ListboxProps } from './Listbox';\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\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 = useProxiedRef<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 = String.fromCharCode(event.keyCode);\n\n if (charKey.match(/(\\w)/g)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.keyCode) {\n case keycode('space'): {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case keycode('enter'): {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index);\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"],"names":["useMultiListbox","ref","data","externalData","defaultValue","disabled","nativeId","id","name","onClick","onChange","onFocus","onKeyDown","value","otherProps","useLocalization","texts","React","uuid","inputRef","useProxiedRef","text","listbox","allOption","getIndexFromValue","currentIndex","setCurrentIndex","allOptionsSelected","setAllOptionsSelected","useTypeahead","getNextIndex","getSelectedIndexesFromValue","selectedIndexes","setSelectedIndexes","setInputValueByRef","current","toString","selectableItemsCount","filter","item","length","setInputValueByIndex","index","undefined","option","newInputValue","currentInputValue","currentValuesArray","split","optionAlreadySelected","findIndex","val","String","map","join","handleListboxClick","event","preventDefault","handleListboxKeyDown","charKey","fromCharCode","keyCode","match","nextIndex","keycode","persist","handleListboxFocus","handleInputChange","target","detail","valuesArray","forEach","findByValue","push","list","getActiveDescendant","scrollOnFocus","tabIndex","multiselect","input"],"mappings":"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"}
1
+ {"version":3,"file":"useMultiListbox.js","sources":["../../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport keycode from 'keycode';\r\nimport { v4 as uuid } from 'uuid';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { ListboxProps } from './Listbox';\r\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\r\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\r\nimport { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\r\nimport { useTypeahead } from './useTypeahead';\r\n\r\ntype useListbox = {\r\n list: ScrollableListProps;\r\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\r\n};\r\n\r\nexport const useMultiListbox = (\r\n {\r\n data: externalData = [],\r\n defaultValue,\r\n disabled,\r\n emptyValue: _,\r\n id: nativeId,\r\n name,\r\n onClick,\r\n onChange,\r\n onFocus,\r\n onKeyDown,\r\n value,\r\n ...otherProps\r\n }: ListboxProps,\r\n ref: React.Ref<HTMLInputElement>\r\n): useListbox => {\r\n const { texts } = useLocalization();\r\n const id = React.useMemo(() => nativeId || uuid(), [nativeId]);\r\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\r\n const data = React.useMemo(() => {\r\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\r\n }, [externalData]);\r\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\r\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\r\n const { getNextIndex } = useTypeahead({ data, currentIndex });\r\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\r\n\r\n React.useEffect(() => {\r\n if (defaultValue && !value) {\r\n setInputValueByRef(inputRef.current, defaultValue.toString());\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\r\n\r\n if (selectableItemsCount === selectedIndexes.length) {\r\n setAllOptionsSelected(true);\r\n } else {\r\n setAllOptionsSelected(false);\r\n }\r\n }, [selectedIndexes, data]);\r\n\r\n const setInputValueByIndex = (index: number | undefined): void => {\r\n if (index !== undefined) {\r\n const option = data[index];\r\n\r\n if (option && !option.disabled) {\r\n let newInputValue: ScrollableListItemValue = '';\r\n const currentInputValue = inputRef.current?.value;\r\n const currentValuesArray = currentInputValue?.split(',') || [];\r\n const optionAlreadySelected = currentValuesArray.findIndex(val => val === String(option.value)) !== -1;\r\n\r\n // Handling the select_all option\r\n if (option.value === '#ALL-OPTIONS#') {\r\n if (!allOptionsSelected) {\r\n newInputValue = data\r\n .filter((option, index) => index !== 0 && !option.disabled)\r\n .map(option => option.value)\r\n .join(',');\r\n } else {\r\n newInputValue = '';\r\n }\r\n } else {\r\n // Handling rest options\r\n if (optionAlreadySelected) {\r\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\r\n } else {\r\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\r\n }\r\n }\r\n\r\n setInputValueByRef(inputRef.current, newInputValue);\r\n }\r\n }\r\n };\r\n\r\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\r\n event.preventDefault();\r\n\r\n if (!data[index].disabled) {\r\n setCurrentIndex(index);\r\n setInputValueByIndex(index);\r\n }\r\n\r\n if (onClick) {\r\n onClick(event);\r\n }\r\n };\r\n\r\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index: number): void => {\r\n const charKey = String.fromCharCode(event.keyCode);\r\n\r\n if (charKey.match(/(\\w)/g)) {\r\n const nextIndex = getNextIndex(charKey);\r\n\r\n if (nextIndex > -1 && nextIndex !== currentIndex) {\r\n setCurrentIndex(nextIndex);\r\n }\r\n return;\r\n }\r\n\r\n switch (event.keyCode) {\r\n case keycode('space'): {\r\n event.preventDefault();\r\n setInputValueByIndex(index);\r\n break;\r\n }\r\n\r\n case keycode('enter'): {\r\n setInputValueByIndex(index);\r\n break;\r\n }\r\n\r\n default:\r\n }\r\n setCurrentIndex(index);\r\n\r\n if (onKeyDown) {\r\n event.persist();\r\n onKeyDown(event);\r\n }\r\n };\r\n\r\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\r\n if (onFocus) {\r\n event.persist();\r\n onFocus(event);\r\n }\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\r\n\r\n if (onChange) {\r\n const detail: ScrollableListItem[] = [];\r\n const valuesArray = event.target.value.split(',');\r\n\r\n valuesArray.forEach(val => {\r\n const item = findByValue(data, val);\r\n if (item) {\r\n detail.push(item);\r\n }\r\n });\r\n (event as any).detail = detail;\r\n\r\n onChange(event);\r\n }\r\n };\r\n\r\n const list = {\r\n ...otherProps,\r\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\r\n 'aria-multiselectable': true,\r\n data,\r\n disabled,\r\n id,\r\n onChange: () => null,\r\n onClick: handleListboxClick,\r\n onFocus: handleListboxFocus,\r\n onKeyDown: handleListboxKeyDown,\r\n scrollOnFocus: false,\r\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\r\n value: currentIndex,\r\n selectedIndexes,\r\n multiselect: true,\r\n allOptionsSelected,\r\n };\r\n\r\n const input = {\r\n name,\r\n onChange: handleInputChange,\r\n ref: inputRef,\r\n tabIndex: -1,\r\n value: value ?? '',\r\n };\r\n\r\n return { list, input };\r\n};\r\n"],"names":["useMultiListbox","data","externalData","defaultValue","disabled","emptyValue","_","id","nativeId","name","onClick","onChange","onFocus","onKeyDown","value","otherProps","ref","texts","useLocalization","React","uuid","inputRef","useProxiedRef","text","listbox","allOption","currentIndex","setCurrentIndex","getIndexFromValue","allOptionsSelected","setAllOptionsSelected","getNextIndex","useTypeahead","selectedIndexes","setSelectedIndexes","getSelectedIndexesFromValue","setInputValueByRef","current","toString","selectableItemsCount","filter","item","length","setInputValueByIndex","index","undefined","option","newInputValue","currentInputValue","currentValuesArray","split","optionAlreadySelected","findIndex","val","String","map","join","handleListboxClick","event","preventDefault","handleListboxKeyDown","charKey","fromCharCode","keyCode","match","nextIndex","keycode","persist","handleListboxFocus","handleInputChange","target","detail","valuesArray","forEach","findByValue","push","list","getActiveDescendant","scrollOnFocus","tabIndex","multiselect","input"],"mappings":"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"}
@@ -2,24 +2,25 @@ import { useRef } from 'react';
2
2
  import useTimer from '../../utils/hooks/useTimer.js';
3
3
  import { findNextIndexByValue } from './util.js';
4
4
 
5
- var useTypeahead = function useTypeahead(_ref) {
6
- var data = _ref.data,
7
- currentIndex = _ref.currentIndex;
8
- var typeaheadQuery = useRef();
9
- var typeaheadQueryTimer = useTimer(1000, function () {
5
+ const useTypeahead = ({
6
+ data,
7
+ currentIndex
8
+ }) => {
9
+ const typeaheadQuery = useRef();
10
+ const typeaheadQueryTimer = useTimer(1000, () => {
10
11
  typeaheadQuery.current = undefined;
11
12
  });
12
13
 
13
- var getNextIndex = function getNextIndex(charKey) {
14
- var query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();
15
- var nextIndex = findNextIndexByValue(data, query, currentIndex);
14
+ const getNextIndex = charKey => {
15
+ const query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();
16
+ const nextIndex = findNextIndexByValue(data, query, currentIndex);
16
17
  typeaheadQueryTimer.start();
17
18
  typeaheadQuery.current = query;
18
19
  return nextIndex;
19
20
  };
20
21
 
21
22
  return {
22
- getNextIndex: getNextIndex
23
+ getNextIndex
23
24
  };
24
25
  };
25
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"useTypeahead.js","sources":["../../../../src/components/Listbox/useTypeahead.tsx"],"sourcesContent":["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"],"names":["useTypeahead","data","currentIndex","typeaheadQuery","React","typeaheadQueryTimer","useTimer","current","undefined","getNextIndex","charKey","query","toLowerCase","nextIndex","findNextIndexByValue","start"],"mappings":";;;;IAcaA,YAAY,GAAG,SAAfA,YAAe;MAAGC,YAAAA;MAAMC,oBAAAA;EACjC,IAAMC,cAAc,GAAGC,MAAA,EAAvB;EACA,IAAMC,mBAAmB,GAAGC,QAAQ,CAAC,IAAD,EAAO;IACvCH,cAAc,CAACI,OAAf,GAAyBC,SAAzB;GADgC,CAApC;;EAIA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,OAAD;IACjB,IAAMC,KAAK,GAAG,CAACR,cAAc,CAACI,OAAf,GAAyBJ,cAAc,CAACI,OAAf,GAAyBG,OAAlD,GAA4DA,OAA7D,EAAsEE,WAAtE,EAAd;IACA,IAAMC,SAAS,GAAGC,oBAAoB,CAACb,IAAD,EAAOU,KAAP,EAAcT,YAAd,CAAtC;IAEAG,mBAAmB,CAACU,KAApB;IACAZ,cAAc,CAACI,OAAf,GAAyBI,KAAzB;IAEA,OAAOE,SAAP;GAPJ;;EAUA,OAAO;IAAEJ,YAAY,EAAZA;GAAT;AACH;;;;"}
1
+ {"version":3,"file":"useTypeahead.js","sources":["../../../../src/components/Listbox/useTypeahead.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport useTimer from '../../utils/hooks/useTimer';\r\nimport { findNextIndexByValue } from './util';\r\nimport { ScrollableListItem } from './ScrollableList';\r\n\r\ntype useTypeahead = {\r\n getNextIndex: (key: string) => number;\r\n};\r\n\r\ntype useTypeaheadProps = {\r\n data: ScrollableListItem[];\r\n currentIndex: number | undefined;\r\n};\r\n\r\nexport const useTypeahead = ({ data, currentIndex }: useTypeaheadProps): useTypeahead => {\r\n const typeaheadQuery = React.useRef<string | undefined>();\r\n const typeaheadQueryTimer = useTimer(1000, () => {\r\n typeaheadQuery.current = undefined;\r\n });\r\n\r\n const getNextIndex = (charKey: string): number => {\r\n const query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();\r\n const nextIndex = findNextIndexByValue(data, query, currentIndex);\r\n\r\n typeaheadQueryTimer.start();\r\n typeaheadQuery.current = query;\r\n\r\n return nextIndex;\r\n };\r\n\r\n return { getNextIndex };\r\n};\r\n"],"names":["useTypeahead","data","currentIndex","typeaheadQuery","React","typeaheadQueryTimer","useTimer","current","undefined","getNextIndex","charKey","query","toLowerCase","nextIndex","findNextIndexByValue","start"],"mappings":";;;;MAcaA,YAAY,GAAG,CAAC;EAAEC,IAAF;EAAQC;AAAR,CAAD;EACxB,MAAMC,cAAc,GAAGC,MAAA,EAAvB;EACA,MAAMC,mBAAmB,GAAGC,QAAQ,CAAC,IAAD,EAAO;IACvCH,cAAc,CAACI,OAAf,GAAyBC,SAAzB;GADgC,CAApC;;EAIA,MAAMC,YAAY,GAAIC,OAAD;IACjB,MAAMC,KAAK,GAAG,CAACR,cAAc,CAACI,OAAf,GAAyBJ,cAAc,CAACI,OAAf,GAAyBG,OAAlD,GAA4DA,OAA7D,EAAsEE,WAAtE,EAAd;IACA,MAAMC,SAAS,GAAGC,oBAAoB,CAACb,IAAD,EAAOU,KAAP,EAAcT,YAAd,CAAtC;IAEAG,mBAAmB,CAACU,KAApB;IACAZ,cAAc,CAACI,OAAf,GAAyBI,KAAzB;IAEA,OAAOE,SAAP;GAPJ;;EAUA,OAAO;IAAEJ;GAAT;AACH;;;;"}
@@ -1,47 +1,24 @@
1
- import { extends as _extends, objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { getId } from './ScrollableList.js';
4
3
  import { setInputValueByRef as setInputValueByRef$1 } from '../../utils/input.js';
5
4
 
6
- var _excluded = ["hasChildren", "path"];
7
-
8
- var getValue = function getValue(value) {
9
- return String(value !== null && value !== void 0 ? value : '');
10
- };
11
-
12
- var setInputValueByRef = function setInputValueByRef(input, value, event) {
13
- if (event === void 0) {
14
- event = 'change';
15
- }
5
+ const getValue = value => String(value !== null && value !== void 0 ? value : '');
16
6
 
7
+ const setInputValueByRef = (input, value, event = 'change') => {
17
8
  setInputValueByRef$1(input, getValue(value), event);
18
9
  };
19
- var getIndexFromValue = function getIndexFromValue(data, value) {
20
- var index = data.findIndex(function (option) {
21
- return getValue(option.value) === getValue(value);
22
- });
10
+ const getIndexFromValue = (data, value) => {
11
+ const index = data.findIndex(option => getValue(option.value) === getValue(value));
23
12
  return index > -1 ? index : undefined;
24
13
  };
25
- var getSelectedIndexesFromValue = function getSelectedIndexesFromValue(data, value) {
14
+ const getSelectedIndexesFromValue = (data, value) => {
26
15
  if (typeof value !== 'string') return [];
27
- return value.split(',').map(function (v) {
28
- return data.findIndex(function (o) {
29
- return String(o.value) === v;
30
- });
31
- }).filter(function (v) {
32
- return v !== -1;
33
- });
16
+ return value.split(',').map(v => data.findIndex(o => String(o.value) === v)).filter(v => v !== -1);
34
17
  };
35
- var findByValue = function findByValue(data, value) {
36
- return data.find(function (option) {
37
- return getValue(option.value) === getValue(value);
38
- });
18
+ const findByValue = (data, value) => {
19
+ return data.find(option => getValue(option.value) === getValue(value));
39
20
  };
40
- var searchForString = function searchForString(child, value, strategy) {
41
- if (strategy === void 0) {
42
- strategy = 'includes';
43
- }
44
-
21
+ const searchForString = (child, value, strategy = 'includes') => {
45
22
  try {
46
23
  var _child$props;
47
24
 
@@ -49,26 +26,20 @@ var searchForString = function searchForString(child, value, strategy) {
49
26
  var _child$props2, _child$props3;
50
27
 
51
28
  if (Array.isArray((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.children)) {
52
- return !!child.props.children.find(function (subChild) {
53
- return searchForString(subChild, value, strategy);
54
- });
29
+ return !!child.props.children.find(subChild => searchForString(subChild, value, strategy));
55
30
  }
56
31
 
57
32
  return searchForString((_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.children, value, strategy);
58
33
  } else {
59
34
  return child.toString().toLowerCase()[strategy](String(value).toLowerCase());
60
35
  }
61
- } catch (_unused) {
36
+ } catch {
62
37
  return false;
63
38
  }
64
39
  };
65
40
 
66
- var getIndexInRangeByValue = function getIndexInRangeByValue(data, query, firstIndex, lastIndex) {
67
- if (lastIndex === void 0) {
68
- lastIndex = data.length;
69
- }
70
-
71
- var index = data.slice(firstIndex, lastIndex).findIndex(function (option) {
41
+ const getIndexInRangeByValue = (data, query, firstIndex, lastIndex = data.length) => {
42
+ const index = data.slice(firstIndex, lastIndex).findIndex(option => {
72
43
  if (option.disabled) {
73
44
  return false;
74
45
  }
@@ -78,9 +49,9 @@ var getIndexInRangeByValue = function getIndexInRangeByValue(data, query, firstI
78
49
  return index > -1 ? index + firstIndex : -1;
79
50
  };
80
51
 
81
- var findNextIndexByValue = function findNextIndexByValue(data, query, activeIndex) {
82
- var firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
83
- var index = getIndexInRangeByValue(data, query, firstIndex);
52
+ const findNextIndexByValue = (data, query, activeIndex) => {
53
+ const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
54
+ let index = getIndexInRangeByValue(data, query, firstIndex);
84
55
 
85
56
  if (index === -1) {
86
57
  index = getIndexInRangeByValue(data, query, 0, activeIndex);
@@ -88,76 +59,71 @@ var findNextIndexByValue = function findNextIndexByValue(data, query, activeInde
88
59
 
89
60
  return index;
90
61
  };
91
- var getActiveDescendant = function getActiveDescendant(data, currentIndex, id) {
62
+ const getActiveDescendant = (data, currentIndex, id) => {
92
63
  return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;
93
64
  };
94
- var useFlattenedData = function useFlattenedData(data) {
95
- return React__default.useMemo(function () {
96
- var items = [];
97
-
98
- var flatten = function flatten(item, path, parentPath, parentDisabled) {
99
- var currentPath = parentPath ? parentPath + "." + path : "" + path;
100
- var isItemDisabled = parentDisabled || item.disabled;
101
- items.push(_extends({}, item, {
65
+ const useFlattenedData = data => {
66
+ return React__default.useMemo(() => {
67
+ const items = [];
68
+
69
+ const flatten = (item, path, parentPath, parentDisabled) => {
70
+ const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;
71
+ const isItemDisabled = parentDisabled || item.disabled;
72
+ items.push({ ...item,
102
73
  disabled: isItemDisabled,
103
74
  path: currentPath,
104
75
  hasChildren: !!item.children
105
- }));
76
+ });
106
77
 
107
78
  if (item.children) {
108
- item.children.forEach(function (childItem, childPath) {
109
- return flatten(childItem, childPath, currentPath, isItemDisabled);
110
- });
79
+ item.children.forEach((childItem, childPath) => flatten(childItem, childPath, currentPath, isItemDisabled));
111
80
  }
112
81
  };
113
82
 
114
- data.forEach(function (item, index) {
83
+ data.forEach((item, index) => {
115
84
  flatten(item, index);
116
85
  });
117
86
  return items;
118
87
  }, [data]);
119
88
  };
120
- var sanitizeItem = function sanitizeItem(item) {
89
+ const sanitizeItem = item => {
121
90
  if (item) {
122
- var rest = _objectWithoutPropertiesLoose(item, _excluded);
123
-
91
+ const {
92
+ hasChildren: _1,
93
+ path: _2,
94
+ ...rest
95
+ } = item;
124
96
  return rest;
125
97
  }
126
98
 
127
99
  return undefined;
128
100
  };
129
- var getOptionParents = function getOptionParents(data, path) {
101
+ const getOptionParents = (data, path) => {
130
102
  var _path$split;
131
103
 
132
- var indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
104
+ const indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
133
105
 
134
106
  if (indexes.length > 1) {
135
107
  // we don't want to map the current item
136
108
  indexes.pop(); // we need to rebuild the path as we map
137
109
 
138
- var lastPath;
139
- return indexes.map(function (i) {
110
+ let lastPath;
111
+ return indexes.map(i => {
140
112
  lastPath = lastPath ? [lastPath, i].join('.') : i;
141
- return sanitizeItem(data.find(function (i) {
142
- return i.path === lastPath;
143
- }));
113
+ return sanitizeItem(data.find(i => i.path === lastPath));
144
114
  });
145
115
  }
146
116
 
147
117
  return null;
148
118
  };
149
- var filterData = function filterData(data, value) {
150
- if (value === void 0) {
151
- value = '';
152
- }
153
-
119
+ const filterData = (data, value = '') => {
154
120
  if (value === '' || value === null) {
155
121
  return data;
156
122
  }
157
123
 
158
- var filteredOptionValues = new Set();
124
+ const filteredOptionValues = new Set();
159
125
 
160
- var shouldFilterOption = function shouldFilterOption(option) {
126
+ const shouldFilterOption = option => {
161
127
  if (option.disabled) {
162
128
  return false;
163
129
  }
@@ -165,22 +131,19 @@ var filterData = function filterData(data, value) {
165
131
  return searchForString(option.text, String(value));
166
132
  };
167
133
 
168
- data.forEach(function (option) {
134
+ data.forEach(option => {
169
135
  if (shouldFilterOption(option)) {
170
- var parents = getOptionParents(data, option.path);
136
+ const parents = getOptionParents(data, option.path);
171
137
  filteredOptionValues.add(option.value);
172
138
 
173
139
  if (parents !== null) {
174
- parents.forEach(function (option) {
175
- return filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value);
176
- });
140
+ parents.forEach(option => filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value));
177
141
  }
178
142
  }
179
143
  });
180
- return data.filter(function (_ref) {
181
- var value = _ref.value;
182
- return filteredOptionValues.has(value);
183
- });
144
+ return data.filter(({
145
+ value
146
+ }) => filteredOptionValues.has(value));
184
147
  };
185
148
 
186
149
  export { filterData, findByValue, findNextIndexByValue, getActiveDescendant, getIndexFromValue, getOptionParents, getSelectedIndexesFromValue, sanitizeItem, searchForString, setInputValueByRef, useFlattenedData };