@economic/taco 1.0.9 → 1.1.2

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