@economic/taco 0.0.11-alpha.0 → 0.0.14-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 (376) hide show
  1. package/README.md +84 -84
  2. package/dist/components/{Label/Label.d.ts → Field/Field.d.ts} +9 -9
  3. package/dist/components/Menu/Menu.d.ts +1 -0
  4. package/dist/components/Menu/components/Item.d.ts +3 -0
  5. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  6. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  7. package/dist/esm/components/Badge/Badge.js.map +1 -1
  8. package/dist/esm/components/Banner/Banner.js +1 -1
  9. package/dist/esm/components/Banner/Banner.js.map +1 -1
  10. package/dist/esm/components/Banner/util.js +1 -1
  11. package/dist/esm/components/Banner/util.js.map +1 -1
  12. package/dist/esm/components/Button/Button.js.map +1 -1
  13. package/dist/esm/components/Button/util.js +49 -24
  14. package/dist/esm/components/Button/util.js.map +1 -1
  15. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  16. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  17. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  18. package/dist/esm/components/Combobox/useCombobox.js +64 -84
  19. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  20. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  21. package/dist/esm/components/Datepicker/useDatepicker.js +35 -33
  22. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  23. package/dist/esm/components/Dialog/Context.js +3 -3
  24. package/dist/esm/components/Dialog/Context.js.map +1 -1
  25. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  26. package/dist/esm/components/Dialog/components/Content.js +39 -44
  27. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  28. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  29. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  30. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  31. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  32. package/dist/esm/components/Dialog/components/Trigger.js +2 -2
  33. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  34. package/dist/esm/components/{Label/Label.js → Field/Field.js} +3 -3
  35. package/dist/esm/components/Field/Field.js.map +1 -0
  36. package/dist/esm/components/Form/Form.js.map +1 -1
  37. package/dist/esm/components/Group/Group.js.map +1 -1
  38. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  39. package/dist/esm/components/Icon/Icon.js.map +1 -1
  40. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  41. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  42. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  43. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  44. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  45. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  46. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  47. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  48. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  49. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  50. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  51. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  52. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  53. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  54. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  55. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  56. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  57. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  58. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  59. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  60. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  61. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  62. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  63. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  64. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  65. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  66. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  67. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  68. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  69. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  70. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  71. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  72. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  73. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  74. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  75. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  76. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  77. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  78. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  79. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  80. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  81. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  82. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  83. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  84. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  85. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  86. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  87. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  88. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  89. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  90. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  91. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  92. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  93. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  94. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  95. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  96. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  97. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  98. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  99. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  100. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  101. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  102. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  103. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  104. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  105. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  106. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  107. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  108. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  109. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  110. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  111. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  112. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  113. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  114. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  115. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  116. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  117. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  118. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  119. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  120. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  121. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  122. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  123. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  124. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  125. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  126. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  127. package/dist/esm/components/Icon/components/ExportToExcelCopy.js.map +1 -1
  128. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  129. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  130. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  131. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  132. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  133. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  134. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  135. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  136. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  137. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  138. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  139. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  140. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  141. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  142. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  143. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  144. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  145. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  146. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  147. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  148. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  149. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  150. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  151. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  152. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  153. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  154. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  155. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  156. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  157. package/dist/esm/components/Icon/components/List.js.map +1 -1
  158. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  159. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  160. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  161. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  162. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  163. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  164. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  165. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  166. package/dist/esm/components/Icon/components/Minus.js.map +1 -1
  167. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  168. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  169. package/dist/esm/components/Icon/components/More.js.map +1 -1
  170. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  171. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  172. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  173. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  174. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  175. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  176. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  177. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  178. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  179. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  180. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  181. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  182. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  183. package/dist/esm/components/Icon/components/PlusCircle.js.map +1 -1
  184. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  185. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  186. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  187. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  188. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  189. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  190. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  191. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  192. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  193. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  194. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  195. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  196. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  197. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  198. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  199. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  200. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  201. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  202. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  203. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  204. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  205. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  206. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  207. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  208. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  209. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  210. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  211. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  212. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  213. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  214. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  216. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  217. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  218. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  219. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  220. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  221. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  222. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  223. package/dist/esm/components/Icon/components/Thumb.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/ThumbUpSolid.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  229. package/dist/esm/components/Icon/components/TickCircle.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 +9 -8
  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 +63 -82
  249. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  250. package/dist/esm/components/Listbox/useListbox.js +49 -58
  251. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  252. package/dist/esm/components/Listbox/useMultiListbox.js +63 -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 -84
  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 +10 -13
  264. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  265. package/dist/esm/components/Menu/components/Header.js +4 -4
  266. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  267. package/dist/esm/components/Menu/components/Item.js +59 -43
  268. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  269. package/dist/esm/components/Menu/components/Link.js +7 -8
  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 +4 -4
  274. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  275. package/dist/esm/components/Menu/components/Trigger.js +5 -5
  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 +27 -30
  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 +1 -1
  290. package/dist/esm/components/Provider/Provider.js.map +1 -1
  291. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  292. package/dist/esm/components/SearchInput/SearchInput.js +1 -1
  293. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  294. package/dist/esm/components/Select/Select.js.map +1 -1
  295. package/dist/esm/components/Select/useSelect.js +63 -82
  296. package/dist/esm/components/Select/useSelect.js.map +1 -1
  297. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  298. package/dist/esm/components/Switch/Switch.js.map +1 -1
  299. package/dist/esm/components/Table/components/BaseTable.js +23 -30
  300. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  301. package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
  302. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  303. package/dist/esm/components/Table/components/Table.js +18 -25
  304. package/dist/esm/components/Table/components/Table.js.map +1 -1
  305. package/dist/esm/components/Table/components/WindowedTable.js +88 -104
  306. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  307. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
  308. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  309. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
  310. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  311. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
  312. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  313. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +80 -90
  314. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  315. package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
  316. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  317. package/dist/esm/components/Table/hooks/useTable.js +119 -141
  318. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  319. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +12 -15
  320. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  321. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  322. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  323. package/dist/esm/components/Table/util/renderRow.js +37 -46
  324. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  325. package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
  326. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  327. package/dist/esm/components/Table/util/sortTypes.js +23 -31
  328. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  329. package/dist/esm/components/Table/util.js +29 -41
  330. package/dist/esm/components/Table/util.js.map +1 -1
  331. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  332. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  333. package/dist/esm/components/Toast/Toast.js +20 -21
  334. package/dist/esm/components/Toast/Toast.js.map +1 -1
  335. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  336. package/dist/esm/components/Toast/util.js +2 -2
  337. package/dist/esm/components/Toast/util.js.map +1 -1
  338. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  339. package/dist/esm/components/Tour/Tour.js.map +1 -1
  340. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  341. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  342. package/dist/esm/index.css +634 -638
  343. package/dist/esm/index.js +2 -2
  344. package/dist/esm/primitives/Button.js +9 -13
  345. package/dist/esm/primitives/Button.js.map +1 -1
  346. package/dist/esm/utils/date.js.map +1 -1
  347. package/dist/esm/utils/hooks/useBoundingClientRectListener.js +12 -20
  348. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  349. package/dist/esm/utils/hooks/useDraggable.js +16 -18
  350. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  351. package/dist/esm/utils/hooks/useDropTarget.js +7 -10
  352. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  353. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  354. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  355. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  356. package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
  357. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  358. package/dist/esm/utils/hooks/useTimer.js +9 -17
  359. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  360. package/dist/esm/utils/input.js +7 -11
  361. package/dist/esm/utils/input.js.map +1 -1
  362. package/dist/esm/utils/mergeRefs.js +2 -2
  363. package/dist/esm/utils/mergeRefs.js.map +1 -1
  364. package/dist/esm/utils/taillwind.js +2 -2
  365. package/dist/esm/utils/taillwind.js.map +1 -1
  366. package/dist/index.css +634 -638
  367. package/dist/index.d.ts +1 -1
  368. package/dist/taco.cjs.development.js +1624 -1906
  369. package/dist/taco.cjs.development.js.map +1 -1
  370. package/dist/taco.cjs.production.min.js +1 -1
  371. package/dist/taco.cjs.production.min.js.map +1 -1
  372. package/package.json +2 -2
  373. package/plugins/tailwindcss-aria-attributes.js +73 -73
  374. package/tailwind.config.js +297 -297
  375. package/types.json +443 -443
  376. package/dist/esm/components/Label/Label.js.map +0 -1
@@ -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 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 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","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":";;;;;;;;MAeaA,eAAe,GAAG,CAC3B;AACIC,EAAAA,IAAI,EAAEC,YAAY,GAAG,EADzB;AAEIC,EAAAA,YAFJ;AAGIC,EAAAA,QAHJ;AAIIC,EAAAA,EAAE,EAAEC,QAJR;AAKIC,EAAAA,IALJ;AAMIC,EAAAA,OANJ;AAOIC,EAAAA,QAPJ;AAQIC,EAAAA,OARJ;AASIC,EAAAA,SATJ;AAUIC,EAAAA,KAVJ;AAWI,KAAGC;AAXP,CAD2B,EAc3BC,GAd2B;AAgB3B,QAAM;AAAEC,IAAAA;AAAF,MAAYC,eAAe,EAAjC;AACA,QAAMX,EAAE,GAAGY,OAAA,CAAc,MAAMX,QAAQ,IAAIY,EAAI,EAApC,EAAwC,CAACZ,QAAD,CAAxC,CAAX;AACA,QAAMa,QAAQ,GAAGC,aAAa,CAAmBN,GAAnB,CAA9B;AACA,QAAMb,IAAI,GAAGgB,OAAA,CAAc;AACvB,WAAO,CAAC;AAAEI,MAAAA,IAAI,EAAEN,KAAK,CAACO,OAAN,CAAcC,SAAtB;AAAiCX,MAAAA,KAAK,EAAE;AAAxC,KAAD,EAA4D,GAAGV,YAA/D,CAAP;AACH,GAFY,EAEV,CAACA,YAAD,CAFU,CAAb;AAGA,QAAM,CAACsB,YAAD,EAAeC,eAAf,IAAkCR,QAAA,CAAeS,iBAAiB,CAACzB,IAAD,EAAOW,KAAP,CAAjB,IAAkC,CAAjD,CAAxC;AACA,QAAM,CAACe,kBAAD,EAAqBC,qBAArB,IAA8CX,QAAA,CAAe,KAAf,CAApD;AACA,QAAM;AAAEY,IAAAA;AAAF,MAAmBC,YAAY,CAAC;AAAE7B,IAAAA,IAAF;AAAQuB,IAAAA;AAAR,GAAD,CAArC;AACA,QAAM,CAACO,eAAD,EAAkBC,kBAAlB,IAAwCf,QAAA,CAAegB,2BAA2B,CAAChC,IAAD,EAAOW,KAAP,CAA1C,CAA9C;AAEAK,EAAAA,SAAA,CAAgB;AACZ,QAAId,YAAY,IAAI,CAACS,KAArB,EAA4B;AACxBsB,MAAAA,kBAAkB,CAACf,QAAQ,CAACgB,OAAV,EAAmBhC,YAAY,CAACiC,QAAb,EAAnB,CAAlB;AACH;AACJ,GAJD,EAIG,EAJH;AAMAnB,EAAAA,SAAA,CAAgB;AACZ,UAAMoB,oBAAoB,GAAGpC,IAAI,CAACqC,MAAL,CAAYC,IAAI,IAAI,CAACA,IAAI,CAACnC,QAA1B,EAAoCoC,MAApC,GAA6C,CAA1E;;AAEA,QAAIH,oBAAoB,KAAKN,eAAe,CAACS,MAA7C,EAAqD;AACjDZ,MAAAA,qBAAqB,CAAC,IAAD,CAArB;AACH,KAFD,MAEO;AACHA,MAAAA,qBAAqB,CAAC,KAAD,CAArB;AACH;AACJ,GARD,EAQG,CAACG,eAAD,EAAkB9B,IAAlB,CARH;;AAUA,QAAMwC,oBAAoB,GAAIC,KAAD;AACzB,QAAIA,KAAK,KAAKC,SAAd,EAAyB;AACrB,YAAMC,MAAM,GAAG3C,IAAI,CAACyC,KAAD,CAAnB;;AAEA,UAAIE,MAAM,IAAI,CAACA,MAAM,CAACxC,QAAtB,EAAgC;AAAA;;AAC5B,YAAIyC,aAAa,GAA4B,EAA7C;AACA,cAAMC,iBAAiB,wBAAG3B,QAAQ,CAACgB,OAAZ,sDAAG,kBAAkBvB,KAA5C;AACA,cAAMmC,kBAAkB,GAAG,CAAAD,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,YAAAA,iBAAiB,CAAEE,KAAnB,CAAyB,GAAzB,MAAiC,EAA5D;AACA,cAAMC,qBAAqB,GAAGF,kBAAkB,CAACG,SAAnB,CAA6BC,GAAG,IAAIA,GAAG,KAAKC,MAAM,CAACR,MAAM,CAAChC,KAAR,CAAlD,MAAsE,CAAC,CAArG,CAJ4B;;AAO5B,YAAIgC,MAAM,CAAChC,KAAP,KAAiB,eAArB,EAAsC;AAClC,cAAI,CAACe,kBAAL,EAAyB;AACrBkB,YAAAA,aAAa,GAAG5C,IAAI,CACfqC,MADW,CACJ,CAACM,MAAD,EAASF,KAAT,KAAmBA,KAAK,KAAK,CAAV,IAAe,CAACE,MAAM,CAACxC,QADtC,EAEXiD,GAFW,CAEPT,MAAM,IAAIA,MAAM,CAAChC,KAFV,EAGX0C,IAHW,CAGN,GAHM,CAAhB;AAIH,WALD,MAKO;AACHT,YAAAA,aAAa,GAAG,EAAhB;AACH;AACJ,SATD,MASO;AACH;AACA,cAAII,qBAAJ,EAA2B;AACvBJ,YAAAA,aAAa,GAAGE,kBAAkB,CAACT,MAAnB,CAA0Ba,GAAG,IAAIA,GAAG,KAAKC,MAAM,CAACR,MAAM,CAAChC,KAAR,CAA/C,EAA+D0C,IAA/D,CAAoE,GAApE,CAAhB;AACH,WAFD,MAEO;AACHT,YAAAA,aAAa,GAAGC,iBAAiB,MAAMA,qBAAqBF,MAAM,CAAChC,OAAlC,GAA4CgC,MAAM,CAAChC,KAApF;AACH;AACJ;;AAEDsB,QAAAA,kBAAkB,CAACf,QAAQ,CAACgB,OAAV,EAAmBU,aAAnB,CAAlB;AACH;AACJ;AACJ,GAhCD;;AAkCA,QAAMU,kBAAkB,GAAG,CAACC,KAAD,EAAyCd,KAAzC;AACvBc,IAAAA,KAAK,CAACC,cAAN;;AAEA,QAAI,CAACxD,IAAI,CAACyC,KAAD,CAAJ,CAAYtC,QAAjB,EAA2B;AACvBqB,MAAAA,eAAe,CAACiB,KAAD,CAAf;AACAD,MAAAA,oBAAoB,CAACC,KAAD,CAApB;AACH;;AAED,QAAIlC,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAACgD,KAAD,CAAP;AACH;AACJ,GAXD;;AAaA,QAAME,oBAAoB,GAAG,CAACF,KAAD,EAA0Cd,KAA1C;AACzB,UAAMiB,OAAO,GAAGP,MAAM,CAACQ,YAAP,CAAoBJ,KAAK,CAACK,OAA1B,CAAhB;;AAEA,QAAIF,OAAO,CAACG,KAAR,CAAc,OAAd,CAAJ,EAA4B;AACxB,YAAMC,SAAS,GAAGlC,YAAY,CAAC8B,OAAD,CAA9B;;AAEA,UAAII,SAAS,GAAG,CAAC,CAAb,IAAkBA,SAAS,KAAKvC,YAApC,EAAkD;AAC9CC,QAAAA,eAAe,CAACsC,SAAD,CAAf;AACH;;AACD;AACH;;AAED,YAAQP,KAAK,CAACK,OAAd;AACI,WAAKG,OAAO,CAAC,OAAD,CAAZ;AAAuB;AACnBR,UAAAA,KAAK,CAACC,cAAN;AACAhB,UAAAA,oBAAoB,CAACC,KAAD,CAApB;AACA;AACH;;AAED,WAAKsB,OAAO,CAAC,OAAD,CAAZ;AAAuB;AACnBvB,UAAAA,oBAAoB,CAACC,KAAD,CAApB;AACA;AACH;AAVL;;AAcAjB,IAAAA,eAAe,CAACiB,KAAD,CAAf;;AAEA,QAAI/B,SAAJ,EAAe;AACX6C,MAAAA,KAAK,CAACS,OAAN;AACAtD,MAAAA,SAAS,CAAC6C,KAAD,CAAT;AACH;AACJ,GAhCD;;AAkCA,QAAMU,kBAAkB,GAAIV,KAAD;AACvB,QAAI9C,OAAJ,EAAa;AACT8C,MAAAA,KAAK,CAACS,OAAN;AACAvD,MAAAA,OAAO,CAAC8C,KAAD,CAAP;AACH;AACJ,GALD;;AAOA,QAAMW,iBAAiB,GAAIX,KAAD;AACtBA,IAAAA,KAAK,CAACS,OAAN;AAEAjC,IAAAA,kBAAkB,CAACC,2BAA2B,CAAChC,IAAD,EAAOuD,KAAK,CAACY,MAAN,CAAaxD,KAApB,CAA5B,CAAlB;;AAEA,QAAIH,QAAJ,EAAc;AACV,YAAM4D,MAAM,GAAyB,EAArC;AACA,YAAMC,WAAW,GAAGd,KAAK,CAACY,MAAN,CAAaxD,KAAb,CAAmBoC,KAAnB,CAAyB,GAAzB,CAApB;AAEAsB,MAAAA,WAAW,CAACC,OAAZ,CAAoBpB,GAAG;AACnB,cAAMZ,IAAI,GAAGiC,WAAW,CAACvE,IAAD,EAAOkD,GAAP,CAAxB;;AACA,YAAIZ,IAAJ,EAAU;AACN8B,UAAAA,MAAM,CAACI,IAAP,CAAYlC,IAAZ;AACH;AACJ,OALD;AAMCiB,MAAAA,KAAa,CAACa,MAAd,GAAuBA,MAAvB;AAED5D,MAAAA,QAAQ,CAAC+C,KAAD,CAAR;AACH;AACJ,GAnBD;;AAqBA,QAAMkB,IAAI,GAAG,EACT,GAAG7D,UADM;AAET,6BAAyB8D,mBAAmB,CAAC1E,IAAD,EAAOuB,YAAP,EAAqBnB,EAArB,CAFnC;AAGT,4BAAwB,IAHf;AAITJ,IAAAA,IAJS;AAKTG,IAAAA,QALS;AAMTC,IAAAA,EANS;AAOTI,IAAAA,QAAQ,EAAE,MAAM,IAPP;AAQTD,IAAAA,OAAO,EAAE+C,kBARA;AAST7C,IAAAA,OAAO,EAAEwD,kBATA;AAUTvD,IAAAA,SAAS,EAAE+C,oBAVF;AAWTkB,IAAAA,aAAa,EAAE,KAXN;AAYTC,IAAAA,QAAQ,EAAEzE,QAAQ,GAAG,CAAC,CAAJ,GAAQS,UAAU,CAACgE,QAAX,GAAsBhE,UAAU,CAACgE,QAAjC,GAA4C,CAZ7D;AAaTjE,IAAAA,KAAK,EAAEY,YAbE;AAcTO,IAAAA,eAdS;AAeT+C,IAAAA,WAAW,EAAE,IAfJ;AAgBTnD,IAAAA;AAhBS,GAAb;AAmBA,QAAMoD,KAAK,GAAG;AACVxE,IAAAA,IADU;AAEVE,IAAAA,QAAQ,EAAE0D,iBAFA;AAGVrD,IAAAA,GAAG,EAAEK,QAHK;AAIV0D,IAAAA,QAAQ,EAAE,CAAC,CAJD;AAKVjE,IAAAA,KAAK,EAAEA,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAW;AALN,GAAd;AAQA,SAAO;AAAE8D,IAAAA,IAAF;AAAQK,IAAAA;AAAR,GAAP;AACH;;;;"}
@@ -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;AACjC,MAAMC,cAAc,GAAGC,MAAA,EAAvB;AACA,MAAMC,mBAAmB,GAAGC,QAAQ,CAAC,IAAD,EAAO;AACvCH,IAAAA,cAAc,CAACI,OAAf,GAAyBC,SAAzB;AACH,GAFmC,CAApC;;AAIA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,OAAD;AACjB,QAAMC,KAAK,GAAG,CAACR,cAAc,CAACI,OAAf,GAAyBJ,cAAc,CAACI,OAAf,GAAyBG,OAAlD,GAA4DA,OAA7D,EAAsEE,WAAtE,EAAd;AACA,QAAMC,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,YAAY,EAAZA;AAAF,GAAP;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;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,47 +1,25 @@
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
- var setInputValueByRef = function setInputValueByRef(input, value, event) {
8
- if (event === void 0) {
9
- event = 'change';
10
- }
11
-
5
+ const setInputValueByRef = (input, value, event = 'change') => {
12
6
  setInputValueByRef$1(input, value !== undefined && value !== null ? String(value) : '', event);
13
7
  };
14
8
 
15
- var getValue = function getValue(value) {
16
- return value === undefined || value === null ? '' : String(value);
17
- };
9
+ const getValue = value => value === undefined || value === null ? '' : String(value);
18
10
 
19
- var getIndexFromValue = function getIndexFromValue(data, value) {
20
- var index = data.findIndex(function (option) {
21
- return getValue(option.value) === getValue(value);
22
- });
11
+ const getIndexFromValue = (data, value) => {
12
+ const index = data.findIndex(option => getValue(option.value) === getValue(value));
23
13
  return index > -1 ? index : undefined;
24
14
  };
25
- var getSelectedIndexesFromValue = function getSelectedIndexesFromValue(data, value) {
15
+ const getSelectedIndexesFromValue = (data, value) => {
26
16
  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
- });
17
+ return value.split(',').map(v => data.findIndex(o => String(o.value) === v)).filter(v => v !== -1);
34
18
  };
35
- var findByValue = function findByValue(data, value) {
36
- return data.find(function (option) {
37
- return getValue(option.value) === getValue(value);
38
- });
19
+ const findByValue = (data, value) => {
20
+ return data.find(option => getValue(option.value) === getValue(value));
39
21
  };
40
- var searchForString = function searchForString(child, value, strategy) {
41
- if (strategy === void 0) {
42
- strategy = 'includes';
43
- }
44
-
22
+ const searchForString = (child, value, strategy = 'includes') => {
45
23
  try {
46
24
  var _child$props;
47
25
 
@@ -49,9 +27,7 @@ var searchForString = function searchForString(child, value, strategy) {
49
27
  var _child$props2, _child$props3;
50
28
 
51
29
  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
- });
30
+ return !!child.props.children.find(subChild => searchForString(subChild, value, strategy));
55
31
  }
56
32
 
57
33
  return searchForString((_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.children, value, strategy);
@@ -60,17 +36,13 @@ var searchForString = function searchForString(child, value, strategy) {
60
36
 
61
37
  return child.toString().toLowerCase()[strategy]((_String = String(value)) === null || _String === void 0 ? void 0 : _String.toLowerCase());
62
38
  }
63
- } catch (_unused) {
39
+ } catch {
64
40
  return false;
65
41
  }
66
42
  };
67
43
 
68
- var getIndexInRangeByValue = function getIndexInRangeByValue(data, query, firstIndex, lastIndex) {
69
- if (lastIndex === void 0) {
70
- lastIndex = data.length;
71
- }
72
-
73
- var index = data.slice(firstIndex, lastIndex).findIndex(function (option) {
44
+ const getIndexInRangeByValue = (data, query, firstIndex, lastIndex = data.length) => {
45
+ const index = data.slice(firstIndex, lastIndex).findIndex(option => {
74
46
  if (option.disabled) {
75
47
  return false;
76
48
  }
@@ -80,9 +52,9 @@ var getIndexInRangeByValue = function getIndexInRangeByValue(data, query, firstI
80
52
  return index > -1 ? index + firstIndex : -1;
81
53
  };
82
54
 
83
- var findNextIndexByValue = function findNextIndexByValue(data, query, activeIndex) {
84
- var firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
85
- var index = getIndexInRangeByValue(data, query, firstIndex);
55
+ const findNextIndexByValue = (data, query, activeIndex) => {
56
+ const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
57
+ let index = getIndexInRangeByValue(data, query, firstIndex);
86
58
 
87
59
  if (index === -1) {
88
60
  index = getIndexInRangeByValue(data, query, 0, activeIndex);
@@ -90,76 +62,71 @@ var findNextIndexByValue = function findNextIndexByValue(data, query, activeInde
90
62
 
91
63
  return index;
92
64
  };
93
- var getActiveDescendant = function getActiveDescendant(data, currentIndex, id) {
65
+ const getActiveDescendant = (data, currentIndex, id) => {
94
66
  return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;
95
67
  };
96
- var useFlattenedData = function useFlattenedData(data) {
97
- return React__default.useMemo(function () {
98
- var items = [];
99
-
100
- var flatten = function flatten(item, path, parentPath, parentDisabled) {
101
- var currentPath = parentPath ? parentPath + "." + path : "" + path;
102
- var isItemDisabled = parentDisabled || item.disabled;
103
- items.push(_extends({}, item, {
68
+ const useFlattenedData = data => {
69
+ return React__default.useMemo(() => {
70
+ const items = [];
71
+
72
+ const flatten = (item, path, parentPath, parentDisabled) => {
73
+ const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;
74
+ const isItemDisabled = parentDisabled || item.disabled;
75
+ items.push({ ...item,
104
76
  disabled: isItemDisabled,
105
77
  path: currentPath,
106
78
  hasChildren: !!item.children
107
- }));
79
+ });
108
80
 
109
81
  if (item.children) {
110
- item.children.forEach(function (childItem, childPath) {
111
- return flatten(childItem, childPath, currentPath, isItemDisabled);
112
- });
82
+ item.children.forEach((childItem, childPath) => flatten(childItem, childPath, currentPath, isItemDisabled));
113
83
  }
114
84
  };
115
85
 
116
- data.forEach(function (item, index) {
86
+ data.forEach((item, index) => {
117
87
  flatten(item, index);
118
88
  });
119
89
  return items;
120
90
  }, [data]);
121
91
  };
122
- var sanitizeItem = function sanitizeItem(item) {
92
+ const sanitizeItem = item => {
123
93
  if (item) {
124
- var rest = _objectWithoutPropertiesLoose(item, _excluded);
125
-
94
+ const {
95
+ hasChildren: _1,
96
+ path: _2,
97
+ ...rest
98
+ } = item;
126
99
  return rest;
127
100
  }
128
101
 
129
102
  return undefined;
130
103
  };
131
- var getOptionParents = function getOptionParents(data, path) {
104
+ const getOptionParents = (data, path) => {
132
105
  var _path$split;
133
106
 
134
- var indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
107
+ const indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
135
108
 
136
109
  if (indexes.length > 1) {
137
110
  // we don't want to map the current item
138
111
  indexes.pop(); // we need to rebuild the path as we map
139
112
 
140
- var lastPath;
141
- return indexes.map(function (i) {
113
+ let lastPath;
114
+ return indexes.map(i => {
142
115
  lastPath = lastPath ? [lastPath, i].join('.') : i;
143
- return sanitizeItem(data.find(function (i) {
144
- return i.path === lastPath;
145
- }));
116
+ return sanitizeItem(data.find(i => i.path === lastPath));
146
117
  });
147
118
  }
148
119
 
149
120
  return null;
150
121
  };
151
- var filterData = function filterData(data, value) {
152
- if (value === void 0) {
153
- value = '';
154
- }
155
-
122
+ const filterData = (data, value = '') => {
156
123
  if (value === '' || value === null) {
157
124
  return data;
158
125
  }
159
126
 
160
- var filteredOptionValues = new Set();
127
+ const filteredOptionValues = new Set();
161
128
 
162
- var shouldFilterOption = function shouldFilterOption(option) {
129
+ const shouldFilterOption = option => {
163
130
  if (option.disabled) {
164
131
  return false;
165
132
  }
@@ -167,22 +134,19 @@ var filterData = function filterData(data, value) {
167
134
  return searchForString(option.text, String(value));
168
135
  };
169
136
 
170
- data.forEach(function (option) {
137
+ data.forEach(option => {
171
138
  if (shouldFilterOption(option)) {
172
- var parents = getOptionParents(data, option.path);
139
+ const parents = getOptionParents(data, option.path);
173
140
  filteredOptionValues.add(option.value);
174
141
 
175
142
  if (parents !== null) {
176
- parents.forEach(function (option) {
177
- return filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value);
178
- });
143
+ parents.forEach(option => filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value));
179
144
  }
180
145
  }
181
146
  });
182
- return data.filter(function (_ref) {
183
- var value = _ref.value;
184
- return filteredOptionValues.has(value);
185
- });
147
+ return data.filter(({
148
+ value
149
+ }) => filteredOptionValues.has(value));
186
150
  };
187
151
 
188
152
  export { filterData, findByValue, findNextIndexByValue, getActiveDescendant, getIndexFromValue, getOptionParents, getSelectedIndexesFromValue, sanitizeItem, searchForString, setInputValueByRef, useFlattenedData };
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\n setInputValueByRefBase(input, value !== undefined && value !== null ? String(value) : '', event);\n};\n\nconst getValue = (value: ScrollableListItemValue | undefined): string =>\n value === undefined || value === null ? '' : String(value);\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.find((subChild: JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n } else {\n return child.toString().toLowerCase()[strategy](String(value)?.toLowerCase());\n }\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["setInputValueByRef","input","value","event","setInputValueByRefBase","undefined","String","getValue","getIndexFromValue","data","index","findIndex","option","getSelectedIndexesFromValue","split","map","v","o","filter","findByValue","find","searchForString","child","strategy","props","children","Array","isArray","subChild","toString","toLowerCase","getIndexInRangeByValue","query","firstIndex","lastIndex","length","slice","disabled","text","findNextIndexByValue","activeIndex","getActiveDescendant","currentIndex","id","getId","useFlattenedData","React","useMemo","items","flatten","item","path","parentPath","parentDisabled","currentPath","isItemDisabled","push","hasChildren","forEach","childItem","childPath","sanitizeItem","rest","getOptionParents","indexes","pop","lastPath","i","join","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\r\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\r\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\r\n\r\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\r\n setInputValueByRefBase(input, value !== undefined && value !== null ? String(value) : '', event);\r\n};\r\n\r\nconst getValue = (value: ScrollableListItemValue | undefined): string =>\r\n value === undefined || value === null ? '' : String(value);\r\n\r\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\r\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\r\n return index > -1 ? index : undefined;\r\n};\r\n\r\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\r\n if (typeof value !== 'string') return [];\r\n\r\n return value\r\n .split(',')\r\n .map(v => data.findIndex(o => String(o.value) === v))\r\n .filter(v => v !== -1);\r\n};\r\n\r\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\r\n return data.find(option => getValue(option.value) === getValue(value));\r\n};\r\n\r\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\r\n try {\r\n if (typeof child !== 'string' && child.props?.children) {\r\n if (Array.isArray(child.props?.children)) {\r\n return !!child.props.children.find((subChild: JSX.Element | string) =>\r\n searchForString(subChild, value, strategy)\r\n );\r\n }\r\n\r\n return searchForString(child.props?.children, value, strategy);\r\n } else {\r\n return child.toString().toLowerCase()[strategy](String(value)?.toLowerCase());\r\n }\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst getIndexInRangeByValue = (\r\n data: ScrollableListItem[],\r\n query: string,\r\n firstIndex: number,\r\n lastIndex: number = data.length\r\n): number => {\r\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, query, 'startsWith');\r\n });\r\n\r\n return index > -1 ? index + firstIndex : -1;\r\n};\r\n\r\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\r\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\r\n let index = getIndexInRangeByValue(data, query, firstIndex);\r\n\r\n if (index === -1) {\r\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\r\n }\r\n\r\n return index;\r\n};\r\n\r\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\r\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\r\n};\r\n\r\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\r\n return React.useMemo(() => {\r\n const items: ScrollableListItem[] = [];\r\n\r\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\r\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\r\n const isItemDisabled = parentDisabled || item.disabled;\r\n\r\n items.push({\r\n ...item,\r\n disabled: isItemDisabled,\r\n path: currentPath,\r\n hasChildren: !!item.children,\r\n });\r\n\r\n if (item.children) {\r\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\r\n flatten(childItem, childPath, currentPath, isItemDisabled)\r\n );\r\n }\r\n };\r\n\r\n data.forEach((item, index) => {\r\n flatten(item, index);\r\n });\r\n\r\n return items;\r\n }, [data]);\r\n};\r\n\r\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\r\n if (item) {\r\n const { hasChildren: _1, path: _2, ...rest } = item;\r\n return rest;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\r\n const indexes = path?.split('.') ?? [];\r\n\r\n if (indexes.length > 1) {\r\n // we don't want to map the current item\r\n indexes.pop();\r\n // we need to rebuild the path as we map\r\n let lastPath: string;\r\n\r\n return indexes.map(i => {\r\n lastPath = lastPath ? [lastPath, i].join('.') : i;\r\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\r\n });\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\r\n if (value === '' || value === null) {\r\n return data;\r\n }\r\n\r\n const filteredOptionValues = new Set();\r\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, String(value));\r\n };\r\n\r\n data.forEach(option => {\r\n if (shouldFilterOption(option)) {\r\n const parents = getOptionParents(data, option.path);\r\n\r\n filteredOptionValues.add(option.value);\r\n\r\n if (parents !== null) {\r\n parents.forEach(option => filteredOptionValues.add(option?.value));\r\n }\r\n }\r\n });\r\n\r\n return data.filter(({ value }) => filteredOptionValues.has(value));\r\n};\r\n"],"names":["setInputValueByRef","input","value","event","setInputValueByRefBase","undefined","String","getValue","getIndexFromValue","data","index","findIndex","option","getSelectedIndexesFromValue","split","map","v","o","filter","findByValue","find","searchForString","child","strategy","props","children","Array","isArray","subChild","toString","toLowerCase","getIndexInRangeByValue","query","firstIndex","lastIndex","length","slice","disabled","text","findNextIndexByValue","activeIndex","getActiveDescendant","currentIndex","id","getId","useFlattenedData","React","useMemo","items","flatten","item","path","parentPath","parentDisabled","currentPath","isItemDisabled","push","hasChildren","forEach","childItem","childPath","sanitizeItem","_1","_2","rest","getOptionParents","indexes","pop","lastPath","i","join","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createContext, useContext } from 'react';
2
2
 
3
- var MenuContext = /*#__PURE__*/createContext(undefined);
4
- var useCurrentMenu = function useCurrentMenu() {
3
+ const MenuContext = /*#__PURE__*/createContext(undefined);
4
+ const useCurrentMenu = () => {
5
5
  return useContext(MenuContext);
6
6
  };
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../../src/components/Menu/Context.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Appearance } from '../..';\n\nexport const MenuContext = React.createContext<\n | {\n appearance?: Appearance;\n setAppearance: (appearance: Appearance) => void;\n indented: boolean;\n registerIndentation: () => void;\n minWidth?: number;\n setMinWidth: (width: number) => void;\n close: () => void;\n }\n | undefined\n>(undefined);\n\nexport const useCurrentMenu = () => {\n return React.useContext(MenuContext);\n};\n"],"names":["MenuContext","React","undefined","useCurrentMenu"],"mappings":";;IAGaA,WAAW,gBAAGC,aAAA,CAWzBC,SAXyB;IAadC,cAAc,GAAG,SAAjBA,cAAiB;AAC1B,SAAOF,UAAA,CAAiBD,WAAjB,CAAP;AACH;;;;"}
1
+ {"version":3,"file":"Context.js","sources":["../../../../src/components/Menu/Context.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Appearance } from '../..';\r\n\r\nexport const MenuContext = React.createContext<\r\n | {\r\n appearance?: Appearance;\r\n setAppearance: (appearance: Appearance) => void;\r\n indented: boolean;\r\n registerIndentation: () => void;\r\n minWidth?: number;\r\n setMinWidth: (width: number) => void;\r\n close: () => void;\r\n }\r\n | undefined\r\n>(undefined);\r\n\r\nexport const useCurrentMenu = () => {\r\n return React.useContext(MenuContext);\r\n};\r\n"],"names":["MenuContext","React","undefined","useCurrentMenu"],"mappings":";;MAGaA,WAAW,gBAAGC,aAAA,CAWzBC,SAXyB;MAadC,cAAc,GAAG;AAC1B,SAAOF,UAAA,CAAiBD,WAAjB,CAAP;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { MenuContext } from './Context';\nimport { Content } from './components/Content';\nimport { Item } from './components/Item';\nimport { Link } from './components/Link';\nimport { Trigger } from './components/Trigger';\nimport { Checkbox } from './components/Checkbox';\nimport { RadioGroup } from './components/RadioGroup';\nimport { Separator } from './components/Separator';\nimport { Header } from './components/Header';\nimport { Appearance } from '../..';\n\nexport type MenuProps = {\n children: React.ReactNode;\n id?: string;\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\n\nexport const Menu = (externalProps: MenuProps): JSX.Element => {\n const { children, trigger, ...props } = externalProps;\n const [open, setOpen] = React.useState(false);\n const [appearance, setAppearance] = React.useState<Appearance>('default');\n const [indented, setIndented] = React.useState(false);\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\n\n const context = React.useMemo(\n () => ({\n appearance,\n setAppearance: (appearance: Appearance) => setAppearance(appearance),\n indented,\n registerIndentation: () => setIndented(true),\n minWidth,\n setMinWidth: (width: number) => setMinWidth(width),\n close: () => setOpen(false),\n }),\n [indented, minWidth, appearance]\n );\n\n return (\n <MenuContext.Provider value={context}>\n <DropdownMenuPrimitive.Root {...props} open={open} onOpenChange={setOpen}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {children}\n </DropdownMenuPrimitive.Root>\n </MenuContext.Provider>\n );\n};\nMenu.Trigger = Trigger;\nMenu.Content = Content;\nMenu.Item = Item;\nMenu.Link = Link;\nMenu.Checkbox = Checkbox;\nMenu.Separator = Separator;\nMenu.Header = Header;\nMenu.RadioGroup = RadioGroup;\n"],"names":["Menu","externalProps","children","trigger","props","React","open","setOpen","appearance","setAppearance","indented","setIndented","undefined","minWidth","setMinWidth","context","registerIndentation","width","close","MenuContext","Provider","value","DropdownMenuPrimitive","onOpenChange","Trigger","Content","Item","Link","Checkbox","Separator","Header","RadioGroup"],"mappings":";;;;;;;;;;;;;;IAoBaA,IAAI,GAAG,SAAPA,IAAO,CAACC,aAAD;AAChB,MAAQC,QAAR,GAAwCD,aAAxC,CAAQC,QAAR;AAAA,MAAkBC,OAAlB,GAAwCF,aAAxC,CAAkBE,OAAlB;AAAA,MAA8BC,KAA9B,iCAAwCH,aAAxC;;AACA,wBAAwBI,QAAA,CAAe,KAAf,CAAxB;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,yBAAoCF,QAAA,CAA2B,SAA3B,CAApC;AAAA,MAAOG,UAAP;AAAA,MAAmBC,cAAnB;;AACA,yBAAgCJ,QAAA,CAAe,KAAf,CAAhC;AAAA,MAAOK,QAAP;AAAA,MAAiBC,WAAjB;;AACA,yBAAgCN,QAAA,CAAmCO,SAAnC,CAAhC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,YAAjB;;AAEA,MAAMC,OAAO,GAAGV,OAAA,CACZ;AAAA,WAAO;AACHG,MAAAA,UAAU,EAAVA,UADG;AAEHC,MAAAA,aAAa,EAAE,uBAACD,UAAD;AAAA,eAA4BC,cAAa,CAACD,UAAD,CAAzC;AAAA,OAFZ;AAGHE,MAAAA,QAAQ,EAARA,QAHG;AAIHM,MAAAA,mBAAmB,EAAE;AAAA,eAAML,WAAW,CAAC,IAAD,CAAjB;AAAA,OAJlB;AAKHE,MAAAA,QAAQ,EAARA,QALG;AAMHC,MAAAA,WAAW,EAAE,qBAACG,KAAD;AAAA,eAAmBH,YAAW,CAACG,KAAD,CAA9B;AAAA,OANV;AAOHC,MAAAA,KAAK,EAAE;AAAA,eAAMX,OAAO,CAAC,KAAD,CAAb;AAAA;AAPJ,KAAP;AAAA,GADY,EAUZ,CAACG,QAAD,EAAWG,QAAX,EAAqBL,UAArB,CAVY,CAAhB;AAaA,SACIH,aAAA,CAACc,WAAW,CAACC,QAAb;AAAsBC,IAAAA,KAAK,EAAEN;GAA7B,EACIV,aAAA,CAACiB,IAAD,oBAAgClB;AAAOE,IAAAA,IAAI,EAAEA;AAAMiB,IAAAA,YAAY,EAAEhB;IAAjE,EACKJ,OAAO,IAAIE,aAAA,CAACmB,OAAD,MAAA,EAAUrB,OAAV,CADhB,EAEKD,QAFL,CADJ,CADJ;AAQH;AACDF,IAAI,CAACwB,OAAL,GAAeA,OAAf;AACAxB,IAAI,CAACyB,OAAL,GAAeA,OAAf;AACAzB,IAAI,CAAC0B,IAAL,GAAYA,IAAZ;AACA1B,IAAI,CAAC2B,IAAL,GAAYA,IAAZ;AACA3B,IAAI,CAAC4B,QAAL,GAAgBA,QAAhB;AACA5B,IAAI,CAAC6B,SAAL,GAAiBA,SAAjB;AACA7B,IAAI,CAAC8B,MAAL,GAAcA,MAAd;AACA9B,IAAI,CAAC+B,UAAL,GAAkBA,UAAlB;;;;"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { MenuContext } from './Context';\r\nimport { Content } from './components/Content';\r\nimport { Item } from './components/Item';\r\nimport { Link } from './components/Link';\r\nimport { Trigger } from './components/Trigger';\r\nimport { Checkbox } from './components/Checkbox';\r\nimport { RadioGroup } from './components/RadioGroup';\r\nimport { Separator } from './components/Separator';\r\nimport { Header } from './components/Header';\r\nimport { Appearance } from '../..';\r\n\r\nexport type MenuProps = {\r\n children: React.ReactNode;\r\n id?: string;\r\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\r\n trigger?: JSX.Element;\r\n};\r\n\r\nexport const Menu = (externalProps: MenuProps): JSX.Element => {\r\n const { children, trigger, ...props } = externalProps;\r\n const [open, setOpen] = React.useState(false);\r\n const [appearance, setAppearance] = React.useState<Appearance>('default');\r\n const [indented, setIndented] = React.useState(false);\r\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\r\n\r\n const context = React.useMemo(\r\n () => ({\r\n appearance,\r\n setAppearance: (appearance: Appearance) => setAppearance(appearance),\r\n indented,\r\n registerIndentation: () => setIndented(true),\r\n minWidth,\r\n setMinWidth: (width: number) => setMinWidth(width),\r\n close: () => setOpen(false),\r\n }),\r\n [indented, minWidth, appearance]\r\n );\r\n\r\n return (\r\n <MenuContext.Provider value={context}>\r\n <DropdownMenuPrimitive.Root {...props} open={open} onOpenChange={setOpen}>\r\n {trigger && <Trigger>{trigger}</Trigger>}\r\n {children}\r\n </DropdownMenuPrimitive.Root>\r\n </MenuContext.Provider>\r\n );\r\n};\r\nMenu.Trigger = Trigger;\r\nMenu.Content = Content;\r\nMenu.Item = Item;\r\nMenu.Link = Link;\r\nMenu.Checkbox = Checkbox;\r\nMenu.Separator = Separator;\r\nMenu.Header = Header;\r\nMenu.RadioGroup = RadioGroup;\r\n"],"names":["Menu","externalProps","children","trigger","props","React","open","setOpen","appearance","setAppearance","indented","setIndented","undefined","minWidth","setMinWidth","context","registerIndentation","width","close","MenuContext","Provider","value","DropdownMenuPrimitive","onOpenChange","Trigger","Content","Item","Link","Checkbox","Separator","Header","RadioGroup"],"mappings":";;;;;;;;;;;;;;IAoBaA,IAAI,GAAG,SAAPA,IAAO,CAACC,aAAD;AAChB,MAAQC,QAAR,GAAwCD,aAAxC,CAAQC,QAAR;AAAA,MAAkBC,OAAlB,GAAwCF,aAAxC,CAAkBE,OAAlB;AAAA,MAA8BC,KAA9B,iCAAwCH,aAAxC;;AACA,wBAAwBI,QAAA,CAAe,KAAf,CAAxB;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,yBAAoCF,QAAA,CAA2B,SAA3B,CAApC;AAAA,MAAOG,UAAP;AAAA,MAAmBC,cAAnB;;AACA,yBAAgCJ,QAAA,CAAe,KAAf,CAAhC;AAAA,MAAOK,QAAP;AAAA,MAAiBC,WAAjB;;AACA,yBAAgCN,QAAA,CAAmCO,SAAnC,CAAhC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,YAAjB;;AAEA,MAAMC,OAAO,GAAGV,OAAA,CACZ;AAAA,WAAO;AACHG,MAAAA,UAAU,EAAVA,UADG;AAEHC,MAAAA,aAAa,EAAE,uBAACD,UAAD;AAAA,eAA4BC,cAAa,CAACD,UAAD,CAAzC;AAAA,OAFZ;AAGHE,MAAAA,QAAQ,EAARA,QAHG;AAIHM,MAAAA,mBAAmB,EAAE;AAAA,eAAML,WAAW,CAAC,IAAD,CAAjB;AAAA,OAJlB;AAKHE,MAAAA,QAAQ,EAARA,QALG;AAMHC,MAAAA,WAAW,EAAE,qBAACG,KAAD;AAAA,eAAmBH,YAAW,CAACG,KAAD,CAA9B;AAAA,OANV;AAOHC,MAAAA,KAAK,EAAE;AAAA,eAAMX,OAAO,CAAC,KAAD,CAAb;AAAA;AAPJ,KAAP;AAAA,GADY,EAUZ,CAACG,QAAD,EAAWG,QAAX,EAAqBL,UAArB,CAVY,CAAhB;AAaA,SACIH,aAAA,CAACc,WAAW,CAACC,QAAb;AAAsBC,IAAAA,KAAK,EAAEN;GAA7B,EACIV,aAAA,CAACiB,IAAD,oBAAgClB;AAAOE,IAAAA,IAAI,EAAEA;AAAMiB,IAAAA,YAAY,EAAEhB;IAAjE,EACKJ,OAAO,IAAIE,aAAA,CAACmB,OAAD,MAAA,EAAUrB,OAAV,CADhB,EAEKD,QAFL,CADJ,CADJ;AAQH;AACDF,IAAI,CAACwB,OAAL,GAAeA,OAAf;AACAxB,IAAI,CAACyB,OAAL,GAAeA,OAAf;AACAzB,IAAI,CAAC0B,IAAL,GAAYA,IAAZ;AACA1B,IAAI,CAAC2B,IAAL,GAAYA,IAAZ;AACA3B,IAAI,CAAC4B,QAAL,GAAgBA,QAAhB;AACA5B,IAAI,CAAC6B,SAAL,GAAiBA,SAAjB;AACA7B,IAAI,CAAC8B,MAAL,GAAcA,MAAd;AACA9B,IAAI,CAAC+B,UAAL,GAAkBA,UAAlB;;;;"}
@@ -1,17 +1,16 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { createElement } from 'react';
3
2
  import { Icon } from '../../Icon/Icon.js';
4
3
  import { CheckboxItem, ItemIndicator } from '@radix-ui/react-dropdown-menu';
5
4
  import { useItemStyling } from './Item.js';
6
5
 
7
- var _excluded = ["checked", "children", "onChange"];
8
- var Checkbox = function Checkbox(props) {
9
- var checked = props.checked,
10
- children = props.children,
11
- onChange = props.onChange,
12
- otherProps = _objectWithoutPropertiesLoose(props, _excluded);
13
-
14
- var className = useItemStyling({
6
+ const Checkbox = props => {
7
+ const {
8
+ checked,
9
+ children,
10
+ onChange,
11
+ ...otherProps
12
+ } = props;
13
+ const className = useItemStyling({
15
14
  disabled: props.disabled,
16
15
  indented: true,
17
16
  className: props.className
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../../../src/components/Menu/components/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { Icon } from '../../Icon/Icon';\nimport { useItemStyling } from './Item';\n\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n /* Whether the checkbox item is disabled */\n disabled?: boolean;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean | 'indeterminate') => void;\n};\n\nexport const Checkbox = (props: MenuCheckboxItemProps) => {\n const { checked, children, onChange, ...otherProps } = props;\n const className = useItemStyling({\n disabled: props.disabled,\n indented: true,\n className: props.className,\n });\n\n return (\n <DropdownMenuPrimitive.CheckboxItem {...otherProps} className={className} checked={checked} onCheckedChange={onChange}>\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\n <Icon name=\"tick\" className=\"!h-4 !w-4 -ml-px\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n};\n"],"names":["Checkbox","props","checked","children","onChange","otherProps","className","useItemStyling","disabled","indented","React","DropdownMenuPrimitive","onCheckedChange","Icon","name"],"mappings":";;;;;;;IAcaA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD;AACpB,MAAQC,OAAR,GAAuDD,KAAvD,CAAQC,OAAR;AAAA,MAAiBC,QAAjB,GAAuDF,KAAvD,CAAiBE,QAAjB;AAAA,MAA2BC,QAA3B,GAAuDH,KAAvD,CAA2BG,QAA3B;AAAA,MAAwCC,UAAxC,iCAAuDJ,KAAvD;;AACA,MAAMK,SAAS,GAAGC,cAAc,CAAC;AAC7BC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QADa;AAE7BC,IAAAA,QAAQ,EAAE,IAFmB;AAG7BH,IAAAA,SAAS,EAAEL,KAAK,CAACK;AAHY,GAAD,CAAhC;AAMA,SACII,aAAA,CAACC,YAAD,oBAAwCN;AAAYC,IAAAA,SAAS,EAAEA;AAAWJ,IAAAA,OAAO,EAAEA;AAASU,IAAAA,eAAe,EAAER;IAA7G,EACIM,aAAA,CAACC,aAAD;AAAqCL,IAAAA,SAAS,EAAC;GAA/C,EACII,aAAA,CAACG,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAOR,IAAAA,SAAS,EAAC;GAA5B,CADJ,CADJ,EAIKH,QAJL,CADJ;AAQH;;;;"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../../../src/components/Menu/components/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { useItemStyling } from './Item';\r\n\r\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\r\n /* Whether the checkbox item is disabled */\r\n disabled?: boolean;\r\n /* The current checked state (controlled) */\r\n checked: boolean;\r\n /* Handler called when the checked state changes */\r\n onChange: (checked: boolean | 'indeterminate') => void;\r\n};\r\n\r\nexport const Checkbox = (props: MenuCheckboxItemProps) => {\r\n const { checked, children, onChange, ...otherProps } = props;\r\n const className = useItemStyling({\r\n disabled: props.disabled,\r\n indented: true,\r\n className: props.className,\r\n });\r\n\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem {...otherProps} className={className} checked={checked} onCheckedChange={onChange}>\r\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\r\n <Icon name=\"tick\" className=\"!h-4 !w-4 -ml-px\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n};\r\n"],"names":["Checkbox","props","checked","children","onChange","otherProps","className","useItemStyling","disabled","indented","React","DropdownMenuPrimitive","onCheckedChange","Icon","name"],"mappings":";;;;;MAcaA,QAAQ,GAAIC,KAAD;AACpB,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA,QAArB;AAA+B,OAAGC;AAAlC,MAAiDJ,KAAvD;AACA,QAAMK,SAAS,GAAGC,cAAc,CAAC;AAC7BC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QADa;AAE7BC,IAAAA,QAAQ,EAAE,IAFmB;AAG7BH,IAAAA,SAAS,EAAEL,KAAK,CAACK;AAHY,GAAD,CAAhC;AAMA,SACII,aAAA,CAACC,YAAD,oBAAwCN;AAAYC,IAAAA,SAAS,EAAEA;AAAWJ,IAAAA,OAAO,EAAEA;AAASU,IAAAA,eAAe,EAAER;IAA7G,EACIM,aAAA,CAACC,aAAD;AAAqCL,IAAAA,SAAS,EAAC;GAA/C,EACII,aAAA,CAACG,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAOR,IAAAA,SAAS,EAAC;GAA5B,CADJ,CADJ,EAIKH,QAJL,CADJ;AAQH;;;;"}
@@ -1,13 +1,10 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { forwardRef, createElement } from 'react';
3
2
  import cn from 'classnames';
4
3
  import { useProxiedRef } from '../../../utils/hooks/useProxiedRef.js';
5
4
  import { useCurrentMenu } from '../Context.js';
6
5
  import { Content as Content$1 } from '@radix-ui/react-dropdown-menu';
7
6
 
8
- var _excluded = ["children", "placement"];
9
-
10
- var getAppearanceClasses = function getAppearanceClasses(appearance) {
7
+ const getAppearanceClasses = appearance => {
11
8
  switch (appearance) {
12
9
  case 'primary':
13
10
  return 'wcag-blue border-blue';
@@ -27,15 +24,15 @@ var getAppearanceClasses = function getAppearanceClasses(appearance) {
27
24
  }
28
25
  };
29
26
 
30
- var Content = /*#__PURE__*/forwardRef(function (props, ref) {
31
- var internalRef = useProxiedRef(ref);
32
- var menu = useCurrentMenu();
33
-
34
- var children = props.children,
35
- side = props.placement,
36
- otherProps = _objectWithoutPropertiesLoose(props, _excluded);
37
-
38
- var className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), props.className);
27
+ const Content = /*#__PURE__*/forwardRef((props, ref) => {
28
+ const internalRef = useProxiedRef(ref);
29
+ const menu = useCurrentMenu();
30
+ const {
31
+ children,
32
+ placement: side,
33
+ ...otherProps
34
+ } = props;
35
+ const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), props.className);
39
36
  return createElement(Content$1, Object.assign({}, otherProps, {
40
37
  align: "start",
41
38
  className: className,
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sources":["../../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'classnames';\nimport { Appearance, Placement } from '../../../types';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { useCurrentMenu } from '../Context';\n\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\n switch (appearance) {\n case 'primary':\n return 'wcag-blue border-blue';\n\n case 'danger':\n return 'wcag-red border-red';\n\n case 'ghost':\n return 'bg-white text-blue border-blue yt-shadow-blue';\n\n case 'discrete':\n return 'wcag-white border-grey yt-shadow';\n\n case 'default':\n default:\n return 'wcag-grey-light border-grey';\n }\n};\n\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef((props: MenuContentProps, ref: React.Ref<HTMLDivElement>) => {\n const internalRef = useProxiedRef<any>(ref);\n const menu = useCurrentMenu();\n const { children, placement: side, ...otherProps } = props;\n const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu?.appearance), props.className);\n\n return (\n <DropdownMenuPrimitive.Content\n {...otherProps}\n align=\"start\"\n className={className}\n data-taco=\"menu\"\n side={side}\n sideOffset={2}\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n );\n});\n"],"names":["getAppearanceClasses","appearance","Content","React","props","ref","internalRef","useProxiedRef","menu","useCurrentMenu","children","side","placement","otherProps","className","cn","DropdownMenuPrimitive","align","sideOffset","style","minWidth"],"mappings":";;;;;;;;;AAOA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,uBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,qBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,+CAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,kCAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,6BAAP;AAfR;AAiBH,CAlBD;;IA0BaC,OAAO,gBAAGC,UAAA,CAAiB,UAACC,KAAD,EAA0BC,GAA1B;AACpC,MAAMC,WAAW,GAAGC,aAAa,CAAMF,GAAN,CAAjC;AACA,MAAMG,IAAI,GAAGC,cAAc,EAA3B;;AACA,MAAQC,QAAR,GAAqDN,KAArD,CAAQM,QAAR;AAAA,MAA6BC,IAA7B,GAAqDP,KAArD,CAAkBQ,SAAlB;AAAA,MAAsCC,UAAtC,iCAAqDT,KAArD;;AACA,MAAMU,SAAS,GAAGC,EAAE,CAAC,uCAAD,EAA0Cf,oBAAoB,CAACQ,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEP,UAAP,CAA9D,EAAkFG,KAAK,CAACU,SAAxF,CAApB;AAEA,SACIX,aAAA,CAACa,SAAD,oBACQH;AACJI,IAAAA,KAAK,EAAC;AACNH,IAAAA,SAAS,EAAEA;iBACD;AACVH,IAAAA,IAAI,EAAEA;AACNO,IAAAA,UAAU,EAAE;AACZC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAEZ,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEY;AAAlB;AACPf,IAAAA,GAAG,EAAEC;IART,EAUKI,QAVL,CADJ;AAcH,CApBsB;;;;"}
1
+ {"version":3,"file":"Content.js","sources":["../../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport cn from 'classnames';\r\nimport { Appearance, Placement } from '../../../types';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { useCurrentMenu } from '../Context';\r\n\r\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\r\n switch (appearance) {\r\n case 'primary':\r\n return 'wcag-blue border-blue';\r\n\r\n case 'danger':\r\n return 'wcag-red border-red';\r\n\r\n case 'ghost':\r\n return 'bg-white text-blue border-blue yt-shadow-blue';\r\n\r\n case 'discrete':\r\n return 'wcag-white border-grey yt-shadow';\r\n\r\n case 'default':\r\n default:\r\n return 'wcag-grey-light border-grey';\r\n }\r\n};\r\n\r\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\r\n children: React.ReactNode;\r\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\r\n placement?: Placement;\r\n};\r\n\r\nexport const Content = React.forwardRef((props: MenuContentProps, ref: React.Ref<HTMLDivElement>) => {\r\n const internalRef = useProxiedRef<any>(ref);\r\n const menu = useCurrentMenu();\r\n const { children, placement: side, ...otherProps } = props;\r\n const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu?.appearance), props.className);\r\n\r\n return (\r\n <DropdownMenuPrimitive.Content\r\n {...otherProps}\r\n align=\"start\"\r\n className={className}\r\n data-taco=\"menu\"\r\n side={side}\r\n sideOffset={2}\r\n style={{ minWidth: menu?.minWidth }}\r\n ref={internalRef}\r\n >\r\n {children}\r\n </DropdownMenuPrimitive.Content>\r\n );\r\n});\r\n"],"names":["getAppearanceClasses","appearance","Content","React","props","ref","internalRef","useProxiedRef","menu","useCurrentMenu","children","placement","side","otherProps","className","cn","DropdownMenuPrimitive","align","sideOffset","style","minWidth"],"mappings":";;;;;;AAOA,MAAMA,oBAAoB,GAAIC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,uBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,qBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,+CAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,kCAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,6BAAP;AAfR;AAiBH,CAlBD;;MA0BaC,OAAO,gBAAGC,UAAA,CAAiB,CAACC,KAAD,EAA0BC,GAA1B;AACpC,QAAMC,WAAW,GAAGC,aAAa,CAAMF,GAAN,CAAjC;AACA,QAAMG,IAAI,GAAGC,cAAc,EAA3B;AACA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,SAAS,EAAEC,IAAvB;AAA6B,OAAGC;AAAhC,MAA+CT,KAArD;AACA,QAAMU,SAAS,GAAGC,EAAE,CAAC,uCAAD,EAA0Cf,oBAAoB,CAACQ,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEP,UAAP,CAA9D,EAAkFG,KAAK,CAACU,SAAxF,CAApB;AAEA,SACIX,aAAA,CAACa,SAAD,oBACQH;AACJI,IAAAA,KAAK,EAAC;AACNH,IAAAA,SAAS,EAAEA;iBACD;AACVF,IAAAA,IAAI,EAAEA;AACNM,IAAAA,UAAU,EAAE;AACZC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAEZ,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEY;AAAlB;AACPf,IAAAA,GAAG,EAAEC;IART,EAUKI,QAVL,CADJ;AAcH,CApBsB;;;;"}
@@ -3,7 +3,7 @@ import cn from 'classnames';
3
3
  import { useCurrentMenu } from '../Context.js';
4
4
  import { Label } from '@radix-ui/react-dropdown-menu';
5
5
 
6
- var getAppearanceClasses = function getAppearanceClasses(appearance) {
6
+ const getAppearanceClasses = appearance => {
7
7
  switch (appearance) {
8
8
  case 'primary':
9
9
  return 'text-blue-lighest';
@@ -23,9 +23,9 @@ var getAppearanceClasses = function getAppearanceClasses(appearance) {
23
23
  }
24
24
  };
25
25
 
26
- var Header = function Header(props) {
27
- var menu = useCurrentMenu();
28
- var className = cn('flex items-center justify-start h-6 pr-1.5 text-xs', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), {
26
+ const Header = props => {
27
+ const menu = useCurrentMenu();
28
+ const className = cn('flex items-center justify-start h-6 pr-1.5 text-xs', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), {
29
29
  'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
30
30
  'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented)
31
31
  }, props.className);
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../src/components/Menu/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'classnames';\nimport { useCurrentMenu } from '../Context';\nimport { Appearance } from '../../../types';\n\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\n switch (appearance) {\n case 'primary':\n return 'text-blue-lighest';\n\n case 'danger':\n return 'text-red-lightest';\n\n case 'ghost':\n return 'text-blue-light';\n\n case 'discrete':\n return 'text-grey-darkest';\n\n case 'default':\n default:\n return 'text-grey-darkest';\n }\n};\n\nexport type MenuHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Header = (props: MenuHeaderProps) => {\n const menu = useCurrentMenu();\n const className = cn(\n 'flex items-center justify-start h-6 pr-1.5 text-xs',\n getAppearanceClasses(menu?.appearance),\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n },\n props.className\n );\n\n return <DropdownMenuPrimitive.Label {...props} className={className} />;\n};\n"],"names":["getAppearanceClasses","appearance","Header","props","menu","useCurrentMenu","className","cn","indented","React","DropdownMenuPrimitive"],"mappings":";;;;;AAMA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,iBAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,mBAAP;AAfR;AAiBH,CAlBD;;IAsBaC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAClB,MAAMC,IAAI,GAAGC,cAAc,EAA3B;AACA,MAAMC,SAAS,GAAGC,EAAE,CAChB,oDADgB,EAEhBP,oBAAoB,CAACI,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEH,UAAP,CAFJ,EAGhB;AACI,YAAQG,IAAR,aAAQA,IAAR,uBAAQA,IAAI,CAAEI,QADlB;AAEI,cAAU,EAACJ,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEI,QAAP;AAFd,GAHgB,EAOhBL,KAAK,CAACG,SAPU,CAApB;AAUA,SAAOG,aAAA,CAACC,KAAD,oBAAiCP;AAAOG,IAAAA,SAAS,EAAEA;IAAnD,CAAP;AACH;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../src/components/Menu/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport cn from 'classnames';\r\nimport { useCurrentMenu } from '../Context';\r\nimport { Appearance } from '../../../types';\r\n\r\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\r\n switch (appearance) {\r\n case 'primary':\r\n return 'text-blue-lighest';\r\n\r\n case 'danger':\r\n return 'text-red-lightest';\r\n\r\n case 'ghost':\r\n return 'text-blue-light';\r\n\r\n case 'discrete':\r\n return 'text-grey-darkest';\r\n\r\n case 'default':\r\n default:\r\n return 'text-grey-darkest';\r\n }\r\n};\r\n\r\nexport type MenuHeaderProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const Header = (props: MenuHeaderProps) => {\r\n const menu = useCurrentMenu();\r\n const className = cn(\r\n 'flex items-center justify-start h-6 pr-1.5 text-xs',\r\n getAppearanceClasses(menu?.appearance),\r\n {\r\n 'pl-7': menu?.indented,\r\n 'pl-1.5': !menu?.indented,\r\n },\r\n props.className\r\n );\r\n\r\n return <DropdownMenuPrimitive.Label {...props} className={className} />;\r\n};\r\n"],"names":["getAppearanceClasses","appearance","Header","props","menu","useCurrentMenu","className","cn","indented","React","DropdownMenuPrimitive"],"mappings":";;;;;AAMA,MAAMA,oBAAoB,GAAIC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,iBAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,mBAAP;AAfR;AAiBH,CAlBD;;MAsBaC,MAAM,GAAIC,KAAD;AAClB,QAAMC,IAAI,GAAGC,cAAc,EAA3B;AACA,QAAMC,SAAS,GAAGC,EAAE,CAChB,oDADgB,EAEhBP,oBAAoB,CAACI,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEH,UAAP,CAFJ,EAGhB;AACI,YAAQG,IAAR,aAAQA,IAAR,uBAAQA,IAAI,CAAEI,QADlB;AAEI,cAAU,EAACJ,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEI,QAAP;AAFd,GAHgB,EAOhBL,KAAK,CAACG,SAPU,CAApB;AAUA,SAAOG,aAAA,CAACC,KAAD,oBAAiCP;AAAOG,IAAAA,SAAS,EAAEA;IAAnD,CAAP;AACH;;;;"}