@economic/taco 1.15.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +82 -82
  2. package/dist/components/AlertDialog/components/Content.d.ts +1 -1
  3. package/dist/components/Calendar/Calendar.d.ts +1 -1
  4. package/dist/components/Calendar/Calendar.stories.d.ts +1 -1
  5. package/dist/components/Datepicker/Datepicker.d.ts +1 -1
  6. package/dist/components/Datepicker/Datepicker.stories.d.ts +1 -1
  7. package/dist/components/Dialog/components/Content.d.ts +1 -1
  8. package/dist/components/Dialog/components/Drawer.d.ts +1 -1
  9. package/dist/components/IconButton/IconButton.d.ts +2 -2
  10. package/dist/components/IconButton/IconButton.stories.d.ts +1 -1
  11. package/dist/components/Listbox/Listbox.d.ts +2 -2
  12. package/dist/components/Listbox/Listbox.stories.d.ts +1 -1
  13. package/dist/components/Listbox/ScrollableList.d.ts +1 -1
  14. package/dist/components/Menu/components/Checkbox.d.ts +1 -1
  15. package/dist/components/Menu/components/Content.d.ts +1 -1
  16. package/dist/components/Menu/components/Item.d.ts +1 -1
  17. package/dist/components/Menu/components/Link.d.ts +1 -1
  18. package/dist/components/Menu/components/Trigger.d.ts +1 -1
  19. package/dist/components/SearchInput/SearchInput.d.ts +1 -1
  20. package/dist/components/SearchInput/SearchInput.stories.d.ts +1 -1
  21. package/dist/components/Select/Select.d.ts +1 -1
  22. package/dist/components/Select/Select.stories.d.ts +1 -1
  23. package/dist/components/Select2/components/Option.d.ts +1 -1
  24. package/dist/components/Select2/components/Trigger.d.ts +1 -1
  25. package/dist/components/Tag/Tag.d.ts +1 -1
  26. package/dist/esm/index.css +190 -190
  27. package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/AlertDialog/Context.js.map +1 -1
  29. package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js.map +1 -1
  31. package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js.map +1 -1
  33. package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
  35. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
  37. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  39. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  41. package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  43. package/dist/esm/packages/taco/src/components/Dialog/components/Drawer.js.map +1 -1
  44. package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js.map +1 -1
  45. package/dist/esm/packages/taco/src/components/Dialog/util.js.map +1 -1
  46. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
  47. package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js.map +1 -1
  48. package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js.map +1 -1
  49. package/dist/esm/packages/taco/src/components/Icon/components/AccountPreview.js.map +1 -1
  50. package/dist/esm/packages/taco/src/components/Icon/components/Accounting.js.map +1 -1
  51. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYear.js.map +1 -1
  52. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYearCancel.js.map +1 -1
  53. package/dist/esm/packages/taco/src/components/Icon/components/ArrowBottom.js.map +1 -1
  54. package/dist/esm/packages/taco/src/components/Icon/components/ArrowDown.js.map +1 -1
  55. package/dist/esm/packages/taco/src/components/Icon/components/ArrowEnd.js.map +1 -1
  56. package/dist/esm/packages/taco/src/components/Icon/components/ArrowLeft.js.map +1 -1
  57. package/dist/esm/packages/taco/src/components/Icon/components/ArrowRight.js.map +1 -1
  58. package/dist/esm/packages/taco/src/components/Icon/components/ArrowStart.js.map +1 -1
  59. package/dist/esm/packages/taco/src/components/Icon/components/ArrowTop.js.map +1 -1
  60. package/dist/esm/packages/taco/src/components/Icon/components/ArrowUp.js.map +1 -1
  61. package/dist/esm/packages/taco/src/components/Icon/components/Attach.js.map +1 -1
  62. package/dist/esm/packages/taco/src/components/Icon/components/AttachAuto.js.map +1 -1
  63. package/dist/esm/packages/taco/src/components/Icon/components/AttachCancel.js.map +1 -1
  64. package/dist/esm/packages/taco/src/components/Icon/components/Autotext.js.map +1 -1
  65. package/dist/esm/packages/taco/src/components/Icon/components/AutotextInsert.js.map +1 -1
  66. package/dist/esm/packages/taco/src/components/Icon/components/Basic.js.map +1 -1
  67. package/dist/esm/packages/taco/src/components/Icon/components/BasicTabs.js.map +1 -1
  68. package/dist/esm/packages/taco/src/components/Icon/components/BellSolid.js.map +1 -1
  69. package/dist/esm/packages/taco/src/components/Icon/components/Book.js.map +1 -1
  70. package/dist/esm/packages/taco/src/components/Icon/components/Booking.js.map +1 -1
  71. package/dist/esm/packages/taco/src/components/Icon/components/Budget.js.map +1 -1
  72. package/dist/esm/packages/taco/src/components/Icon/components/Calendar.js.map +1 -1
  73. package/dist/esm/packages/taco/src/components/Icon/components/CashAccount.js.map +1 -1
  74. package/dist/esm/packages/taco/src/components/Icon/components/CashReports.js.map +1 -1
  75. package/dist/esm/packages/taco/src/components/Icon/components/Chat.js.map +1 -1
  76. package/dist/esm/packages/taco/src/components/Icon/components/ChatSolid.js.map +1 -1
  77. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDown.js.map +1 -1
  78. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownDouble.js.map +1 -1
  79. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownSolid.js.map +1 -1
  80. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeft.js.map +1 -1
  81. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  82. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftSolid.js.map +1 -1
  83. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRight.js.map +1 -1
  84. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightDouble.js.map +1 -1
  85. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightSolid.js.map +1 -1
  86. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUp.js.map +1 -1
  87. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpDouble.js.map +1 -1
  88. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpSolid.js.map +1 -1
  89. package/dist/esm/packages/taco/src/components/Icon/components/CircleClose.js.map +1 -1
  90. package/dist/esm/packages/taco/src/components/Icon/components/CircleMinus.js.map +1 -1
  91. package/dist/esm/packages/taco/src/components/Icon/components/CirclePlus.js.map +1 -1
  92. package/dist/esm/packages/taco/src/components/Icon/components/CircleTick.js.map +1 -1
  93. package/dist/esm/packages/taco/src/components/Icon/components/Clamp.js.map +1 -1
  94. package/dist/esm/packages/taco/src/components/Icon/components/ClampOpen.js.map +1 -1
  95. package/dist/esm/packages/taco/src/components/Icon/components/Close.js.map +1 -1
  96. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionEnable.js.map +1 -1
  97. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionRevoke.js.map +1 -1
  98. package/dist/esm/packages/taco/src/components/Icon/components/Contacts.js.map +1 -1
  99. package/dist/esm/packages/taco/src/components/Icon/components/Copy.js.map +1 -1
  100. package/dist/esm/packages/taco/src/components/Icon/components/Courses.js.map +1 -1
  101. package/dist/esm/packages/taco/src/components/Icon/components/Credit.js.map +1 -1
  102. package/dist/esm/packages/taco/src/components/Icon/components/Delete.js.map +1 -1
  103. package/dist/esm/packages/taco/src/components/Icon/components/DeletePermanently.js.map +1 -1
  104. package/dist/esm/packages/taco/src/components/Icon/components/Depecriate.js.map +1 -1
  105. package/dist/esm/packages/taco/src/components/Icon/components/Developer.js.map +1 -1
  106. package/dist/esm/packages/taco/src/components/Icon/components/DistributionTemplate.js.map +1 -1
  107. package/dist/esm/packages/taco/src/components/Icon/components/Document.js.map +1 -1
  108. package/dist/esm/packages/taco/src/components/Icon/components/DocumentApprove.js.map +1 -1
  109. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  110. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCut.js.map +1 -1
  111. package/dist/esm/packages/taco/src/components/Icon/components/DocumentError.js.map +1 -1
  112. package/dist/esm/packages/taco/src/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  113. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMerge.js.map +1 -1
  114. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMove.js.map +1 -1
  115. package/dist/esm/packages/taco/src/components/Icon/components/DocumentPreview.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Icon/components/DocumentReceived.js.map +1 -1
  117. package/dist/esm/packages/taco/src/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  118. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSplit.js.map +1 -1
  119. package/dist/esm/packages/taco/src/components/Icon/components/DocumentTime.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Icon/components/Download.js.map +1 -1
  121. package/dist/esm/packages/taco/src/components/Icon/components/Drag.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/Icon/components/ECopedia.js.map +1 -1
  123. package/dist/esm/packages/taco/src/components/Icon/components/ESignature.js.map +1 -1
  124. package/dist/esm/packages/taco/src/components/Icon/components/Edit.js.map +1 -1
  125. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisVertical.js.map +1 -1
  127. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOnAccount.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOpen.js.map +1 -1
  129. package/dist/esm/packages/taco/src/components/Icon/components/EntriesWarning.js.map +1 -1
  130. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  131. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  132. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  133. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  134. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  135. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  136. package/dist/esm/packages/taco/src/components/Icon/components/Envelope.js.map +1 -1
  137. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeApproved.js.map +1 -1
  138. package/dist/esm/packages/taco/src/components/Icon/components/ExpandView.js.map +1 -1
  139. package/dist/esm/packages/taco/src/components/Icon/components/Expenses.js.map +1 -1
  140. package/dist/esm/packages/taco/src/components/Icon/components/Export.js.map +1 -1
  141. package/dist/esm/packages/taco/src/components/Icon/components/ExportToExcel.js.map +1 -1
  142. package/dist/esm/packages/taco/src/components/Icon/components/ExportToPdf.js.map +1 -1
  143. package/dist/esm/packages/taco/src/components/Icon/components/Filter.js.map +1 -1
  144. package/dist/esm/packages/taco/src/components/Icon/components/FilterSolid.js.map +1 -1
  145. package/dist/esm/packages/taco/src/components/Icon/components/GraphSolid.js.map +1 -1
  146. package/dist/esm/packages/taco/src/components/Icon/components/Hash.js.map +1 -1
  147. package/dist/esm/packages/taco/src/components/Icon/components/Home.js.map +1 -1
  148. package/dist/esm/packages/taco/src/components/Icon/components/Images.js.map +1 -1
  149. package/dist/esm/packages/taco/src/components/Icon/components/Import.js.map +1 -1
  150. package/dist/esm/packages/taco/src/components/Icon/components/Inbox.js.map +1 -1
  151. package/dist/esm/packages/taco/src/components/Icon/components/InboxEinvoicing.js.map +1 -1
  152. package/dist/esm/packages/taco/src/components/Icon/components/InboxScanning.js.map +1 -1
  153. package/dist/esm/packages/taco/src/components/Icon/components/InboxSmart.js.map +1 -1
  154. package/dist/esm/packages/taco/src/components/Icon/components/Info.js.map +1 -1
  155. package/dist/esm/packages/taco/src/components/Icon/components/Inventory.js.map +1 -1
  156. package/dist/esm/packages/taco/src/components/Icon/components/InventoryMatrix.js.map +1 -1
  157. package/dist/esm/packages/taco/src/components/Icon/components/JournalPro.js.map +1 -1
  158. package/dist/esm/packages/taco/src/components/Icon/components/Layout.js.map +1 -1
  159. package/dist/esm/packages/taco/src/components/Icon/components/LayoutBoth.js.map +1 -1
  160. package/dist/esm/packages/taco/src/components/Icon/components/LayoutFirst.js.map +1 -1
  161. package/dist/esm/packages/taco/src/components/Icon/components/LayoutLast.js.map +1 -1
  162. package/dist/esm/packages/taco/src/components/Icon/components/LayoutNone.js.map +1 -1
  163. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCard.js.map +1 -1
  164. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  165. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  166. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  167. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  168. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  169. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  170. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  171. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  172. package/dist/esm/packages/taco/src/components/Icon/components/Lightbulb.js.map +1 -1
  173. package/dist/esm/packages/taco/src/components/Icon/components/Line.js.map +1 -1
  174. package/dist/esm/packages/taco/src/components/Icon/components/List.js.map +1 -1
  175. package/dist/esm/packages/taco/src/components/Icon/components/ListBulleted.js.map +1 -1
  176. package/dist/esm/packages/taco/src/components/Icon/components/ListSearch.js.map +1 -1
  177. package/dist/esm/packages/taco/src/components/Icon/components/LockOpen.js.map +1 -1
  178. package/dist/esm/packages/taco/src/components/Icon/components/Log.js.map +1 -1
  179. package/dist/esm/packages/taco/src/components/Icon/components/LogOut.js.map +1 -1
  180. package/dist/esm/packages/taco/src/components/Icon/components/Market.js.map +1 -1
  181. package/dist/esm/packages/taco/src/components/Icon/components/MatchAmount.js.map +1 -1
  182. package/dist/esm/packages/taco/src/components/Icon/components/MatchEntries.js.map +1 -1
  183. package/dist/esm/packages/taco/src/components/Icon/components/Menu.js.map +1 -1
  184. package/dist/esm/packages/taco/src/components/Icon/components/Mileage.js.map +1 -1
  185. package/dist/esm/packages/taco/src/components/Icon/components/ModalResize.js.map +1 -1
  186. package/dist/esm/packages/taco/src/components/Icon/components/ModalShrink.js.map +1 -1
  187. package/dist/esm/packages/taco/src/components/Icon/components/More.js.map +1 -1
  188. package/dist/esm/packages/taco/src/components/Icon/components/MoreSolid.js.map +1 -1
  189. package/dist/esm/packages/taco/src/components/Icon/components/Move.js.map +1 -1
  190. package/dist/esm/packages/taco/src/components/Icon/components/NavigationList.js.map +1 -1
  191. package/dist/esm/packages/taco/src/components/Icon/components/Note.js.map +1 -1
  192. package/dist/esm/packages/taco/src/components/Icon/components/NoteFollowUp.js.map +1 -1
  193. package/dist/esm/packages/taco/src/components/Icon/components/NoteRead.js.map +1 -1
  194. package/dist/esm/packages/taco/src/components/Icon/components/Numbers.js.map +1 -1
  195. package/dist/esm/packages/taco/src/components/Icon/components/PartnerApi.js.map +1 -1
  196. package/dist/esm/packages/taco/src/components/Icon/components/Period.js.map +1 -1
  197. package/dist/esm/packages/taco/src/components/Icon/components/PersonChange.js.map +1 -1
  198. package/dist/esm/packages/taco/src/components/Icon/components/PersonMinus.js.map +1 -1
  199. package/dist/esm/packages/taco/src/components/Icon/components/PersonPlus.js.map +1 -1
  200. package/dist/esm/packages/taco/src/components/Icon/components/PersonTick.js.map +1 -1
  201. package/dist/esm/packages/taco/src/components/Icon/components/Play.js.map +1 -1
  202. package/dist/esm/packages/taco/src/components/Icon/components/PlusMinus.js.map +1 -1
  203. package/dist/esm/packages/taco/src/components/Icon/components/Print.js.map +1 -1
  204. package/dist/esm/packages/taco/src/components/Icon/components/ProcessPayment.js.map +1 -1
  205. package/dist/esm/packages/taco/src/components/Icon/components/ProductLedgerCard.js.map +1 -1
  206. package/dist/esm/packages/taco/src/components/Icon/components/Profile.js.map +1 -1
  207. package/dist/esm/packages/taco/src/components/Icon/components/ProjectCards.js.map +1 -1
  208. package/dist/esm/packages/taco/src/components/Icon/components/Projects.js.map +1 -1
  209. package/dist/esm/packages/taco/src/components/Icon/components/Quicklinks.js.map +1 -1
  210. package/dist/esm/packages/taco/src/components/Icon/components/RatingBankruptcy.js.map +1 -1
  211. package/dist/esm/packages/taco/src/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  212. package/dist/esm/packages/taco/src/components/Icon/components/Reconciled.js.map +1 -1
  213. package/dist/esm/packages/taco/src/components/Icon/components/Refresh.js.map +1 -1
  214. package/dist/esm/packages/taco/src/components/Icon/components/Report.js.map +1 -1
  215. package/dist/esm/packages/taco/src/components/Icon/components/ReportSolid.js.map +1 -1
  216. package/dist/esm/packages/taco/src/components/Icon/components/Restore.js.map +1 -1
  217. package/dist/esm/packages/taco/src/components/Icon/components/RotateLeft.js.map +1 -1
  218. package/dist/esm/packages/taco/src/components/Icon/components/RotateRight.js.map +1 -1
  219. package/dist/esm/packages/taco/src/components/Icon/components/Sales.js.map +1 -1
  220. package/dist/esm/packages/taco/src/components/Icon/components/Search.js.map +1 -1
  221. package/dist/esm/packages/taco/src/components/Icon/components/SearchBold.js.map +1 -1
  222. package/dist/esm/packages/taco/src/components/Icon/components/Secure.js.map +1 -1
  223. package/dist/esm/packages/taco/src/components/Icon/components/SecureTick.js.map +1 -1
  224. package/dist/esm/packages/taco/src/components/Icon/components/Settings.js.map +1 -1
  225. package/dist/esm/packages/taco/src/components/Icon/components/SettingsSolid.js.map +1 -1
  226. package/dist/esm/packages/taco/src/components/Icon/components/Shortcuts.js.map +1 -1
  227. package/dist/esm/packages/taco/src/components/Icon/components/ShowAll.js.map +1 -1
  228. package/dist/esm/packages/taco/src/components/Icon/components/ShowLess.js.map +1 -1
  229. package/dist/esm/packages/taco/src/components/Icon/components/ShowMore.js.map +1 -1
  230. package/dist/esm/packages/taco/src/components/Icon/components/ShowTemplate.js.map +1 -1
  231. package/dist/esm/packages/taco/src/components/Icon/components/Sliders.js.map +1 -1
  232. package/dist/esm/packages/taco/src/components/Icon/components/Smartpay.js.map +1 -1
  233. package/dist/esm/packages/taco/src/components/Icon/components/SortBy.js.map +1 -1
  234. package/dist/esm/packages/taco/src/components/Icon/components/Spinner.js.map +1 -1
  235. package/dist/esm/packages/taco/src/components/Icon/components/Star.js.map +1 -1
  236. package/dist/esm/packages/taco/src/components/Icon/components/StarSolid.js.map +1 -1
  237. package/dist/esm/packages/taco/src/components/Icon/components/Subscriptions.js.map +1 -1
  238. package/dist/esm/packages/taco/src/components/Icon/components/SystemEntries.js.map +1 -1
  239. package/dist/esm/packages/taco/src/components/Icon/components/Tag.js.map +1 -1
  240. package/dist/esm/packages/taco/src/components/Icon/components/TemplateOverride.js.map +1 -1
  241. package/dist/esm/packages/taco/src/components/Icon/components/Templates.js.map +1 -1
  242. package/dist/esm/packages/taco/src/components/Icon/components/ThumbBoth.js.map +1 -1
  243. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDown.js.map +1 -1
  244. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDownSolid.js.map +1 -1
  245. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUp.js.map +1 -1
  246. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUpSolid.js.map +1 -1
  247. package/dist/esm/packages/taco/src/components/Icon/components/Tick.js.map +1 -1
  248. package/dist/esm/packages/taco/src/components/Icon/components/Time.js.map +1 -1
  249. package/dist/esm/packages/taco/src/components/Icon/components/Transfer.js.map +1 -1
  250. package/dist/esm/packages/taco/src/components/Icon/components/TransferCancel.js.map +1 -1
  251. package/dist/esm/packages/taco/src/components/Icon/components/TransferLocked.js.map +1 -1
  252. package/dist/esm/packages/taco/src/components/Icon/components/Undo.js.map +1 -1
  253. package/dist/esm/packages/taco/src/components/Icon/components/Undock.js.map +1 -1
  254. package/dist/esm/packages/taco/src/components/Icon/components/Unreconciled.js.map +1 -1
  255. package/dist/esm/packages/taco/src/components/Icon/components/Warning.js.map +1 -1
  256. package/dist/esm/packages/taco/src/components/Icon/components/Webshop.js.map +1 -1
  257. package/dist/esm/packages/taco/src/components/Icon/components/Website.js.map +1 -1
  258. package/dist/esm/packages/taco/src/components/Icon/components/Workflow.js.map +1 -1
  259. package/dist/esm/packages/taco/src/components/Icon/components/Zoom.js.map +1 -1
  260. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  261. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
  262. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
  263. package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
  264. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -1
  265. package/dist/esm/packages/taco/src/components/Listbox/useListbox.js.map +1 -1
  266. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js.map +1 -1
  267. package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -1
  268. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  269. package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js.map +1 -1
  270. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  271. package/dist/esm/packages/taco/src/components/Menu/components/Header.js.map +1 -1
  272. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  273. package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js.map +1 -1
  274. package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js.map +1 -1
  275. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js.map +1 -1
  276. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -1
  277. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -1
  278. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  279. package/dist/esm/packages/taco/src/components/Popover/Primitives.js.map +1 -1
  280. package/dist/esm/packages/taco/src/components/Popover/util.js.map +1 -1
  281. package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
  282. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
  283. package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js.map +1 -1
  284. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +1 -1
  285. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  286. package/dist/esm/packages/taco/src/components/Select/Select.js.map +1 -1
  287. package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
  288. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  289. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -1
  290. package/dist/esm/packages/taco/src/components/Select2/components/Context.js.map +1 -1
  291. package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
  292. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
  293. package/dist/esm/packages/taco/src/components/Select2/components/Group.js.map +1 -1
  294. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  295. package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
  296. package/dist/esm/packages/taco/src/components/Select2/components/Title.js.map +1 -1
  297. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  298. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
  299. package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
  300. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  301. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js.map +1 -1
  302. package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -1
  303. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
  304. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  305. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -1
  306. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  307. package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js.map +1 -1
  308. package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js.map +1 -1
  309. package/dist/esm/packages/taco/src/components/Table/util.js.map +1 -1
  310. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  311. package/dist/esm/packages/taco/src/components/Toast/Toast.js.map +1 -1
  312. package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -1
  313. package/dist/esm/packages/taco/src/components/Toast/util.js.map +1 -1
  314. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -1
  315. package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
  316. package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js.map +1 -1
  317. package/dist/esm/packages/taco/src/hooks/useId.js.map +1 -1
  318. package/dist/esm/packages/taco/src/hooks/useIsFormControl.js.map +1 -1
  319. package/dist/esm/packages/taco/src/hooks/useMergedRef.js.map +1 -1
  320. package/dist/esm/packages/taco/src/hooks/usePrevious.js.map +1 -1
  321. package/dist/esm/packages/taco/src/index.js +1 -1
  322. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
  323. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  324. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
  325. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js.map +1 -1
  326. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js.map +1 -1
  327. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -1
  328. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -1
  329. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js.map +1 -1
  330. package/dist/esm/packages/taco/src/utils/aria.js.map +1 -1
  331. package/dist/esm/packages/taco/src/utils/colors.js.map +1 -1
  332. package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
  333. package/dist/esm/packages/taco/src/utils/debounce.js.map +1 -1
  334. package/dist/esm/packages/taco/src/utils/device.js.map +1 -1
  335. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  336. package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js.map +1 -1
  337. package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  338. package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js.map +1 -1
  339. package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js.map +1 -1
  340. package/dist/esm/packages/taco/src/utils/hooks/useTimer.js.map +1 -1
  341. package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
  342. package/dist/esm/packages/taco/src/utils/mergeRefs.js.map +1 -1
  343. package/dist/esm/packages/taco/src/utils/taillwind.js.map +1 -1
  344. package/dist/index.css +190 -190
  345. package/dist/taco.cjs.development.js +47 -47
  346. package/dist/taco.cjs.development.js.map +1 -1
  347. package/dist/taco.cjs.production.min.js +1 -1
  348. package/dist/taco.cjs.production.min.js.map +1 -1
  349. package/package.json +2 -2
  350. package/plugins/tailwindcss-aria-attributes.js +73 -73
  351. package/tailwind.config.js +284 -284
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","sources":["../../../../../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport { v4 as uuid } from 'uuid';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { useLocalization } from '../Provider/Provider';\nimport { SelectProps } from './Select';\nimport { ListboxProps } from '../Listbox/Listbox';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { ScrollableListItemValue } from '../Listbox/ScrollableList';\nimport { createCustomEvent } from '../../utils/input';\n\ntype InternalButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\ntype InternalListboxProps = ListboxProps & { ref: React.ForwardedRef<HTMLInputElement> };\ntype InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.ForwardedRef<HTMLInputElement> };\n\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\n button: InternalButtonProps;\n listbox: InternalListboxProps;\n input: InternalInputProps;\n popover: Pick<PopoverPrimitive.PopoverProps, 'onOpenChange' | 'open'>;\n text: string | JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onBlur,\n onClick,\n onChange,\n readOnly,\n value,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const flattenedData = useFlattenedData(data);\n const listboxInputRef = useMergedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${uuid()}`, [nativeId]);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (value === undefined) {\n if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {\n setInputValueByRef(inputRef.current, defaultValue);\n } else {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0].value);\n }\n }\n } else {\n if (!multiselect && !findByValue(flattenedData, value)) {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0].value);\n }\n }\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.key) {\n case 'Escape': {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(listboxInputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case 'Tab':\n case 'Enter': {\n if (event.key !== 'Tab') {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n if (onBlur) {\n onBlur(createCustomEvent('blur'));\n }\n }\n };\n\n let text: string | JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(flattenedData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(flattenedData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, 'mr-1 -mt-px'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(flattenedData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const button: InternalButtonProps = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n disabled: disabled || readOnly,\n id: buttonId,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n type: 'button',\n };\n\n const listbox: InternalListboxProps = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onBlur,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(inputRef.current, event.target.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: listboxInputRef,\n value,\n };\n\n const input: InternalInputProps = {\n onChange: handleInputChange,\n ref: inputRef,\n value: String(value ?? ''),\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: open => {\n if (!open && onBlur) {\n onBlur(createCustomEvent('blur'));\n }\n setOpen(open);\n },\n },\n text,\n more,\n };\n};\n"],"names":["useSelect","ariaLabel","ariaLabelledBy","data","defaultValue","disabled","emptyValue","id","nativeId","multiselect","onBlur","onClick","onChange","readOnly","value","otherProps","ref","texts","useLocalization","flattenedData","useFlattenedData","listboxInputRef","useMergedRef","open","setOpen","React","uuid","inputRef","buttonId","lastValue","setLastValue","undefined","findByValue","setInputValueByRef","current","length","handleButtonKeyDown","event","key","preventDefault","handleListboxKeyDown","onKeyDown","handleListboxClick","createCustomEvent","text","more","selectedValues","toString","split","filter","item","select","allOptionsSelected","icon","className","cn","props","handleInputChange","persist","target","detail","sanitizeItem","indexes","path","pop","lastPath","parents","map","i","join","find","button","type","listbox","input","String","popover","onOpenChange"],"mappings":"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"}
1
+ {"version":3,"file":"useSelect.js","sources":["../../../../../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { v4 as uuid } from 'uuid';\r\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { SelectProps } from './Select';\r\nimport { ListboxProps } from '../Listbox/Listbox';\r\nimport { useMergedRef } from '../../hooks/useMergedRef';\r\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\r\nimport { ScrollableListItemValue } from '../Listbox/ScrollableList';\r\nimport { createCustomEvent } from '../../utils/input';\r\n\r\ntype InternalButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\r\ntype InternalListboxProps = ListboxProps & { ref: React.ForwardedRef<HTMLInputElement> };\r\ntype InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.ForwardedRef<HTMLInputElement> };\r\n\r\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\r\n button: InternalButtonProps;\r\n listbox: InternalListboxProps;\r\n input: InternalInputProps;\r\n popover: Pick<PopoverPrimitive.PopoverProps, 'onOpenChange' | 'open'>;\r\n text: string | JSX.Element;\r\n more?: number;\r\n};\r\n\r\nexport const useSelect = (\r\n {\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n data = [],\r\n defaultValue,\r\n disabled,\r\n emptyValue,\r\n id: nativeId,\r\n multiselect,\r\n onBlur,\r\n onClick,\r\n onChange,\r\n readOnly,\r\n value,\r\n ...otherProps\r\n }: SelectProps,\r\n ref: React.Ref<HTMLInputElement>\r\n): useSelect => {\r\n const { texts } = useLocalization();\r\n const flattenedData = useFlattenedData(data);\r\n const listboxInputRef = useMergedRef<HTMLInputElement>(ref);\r\n const [open, setOpen] = React.useState(false);\r\n const id = React.useMemo(() => nativeId || `select_${uuid()}`, [nativeId]);\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const buttonId = `${id}-button`;\r\n // support 'escape' resetting to the value that was set when the listbox opened\r\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\r\n\r\n React.useEffect(() => {\r\n setLastValue(value);\r\n }, [open]);\r\n\r\n React.useEffect(() => {\r\n if (value === undefined) {\r\n if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {\r\n setInputValueByRef(inputRef.current, defaultValue);\r\n } else {\r\n if (emptyValue !== undefined) {\r\n setInputValueByRef(inputRef.current, emptyValue);\r\n } else if (data.length > 0) {\r\n setInputValueByRef(inputRef.current, data[0].value);\r\n }\r\n }\r\n } else {\r\n if (!multiselect && !findByValue(flattenedData, value)) {\r\n if (emptyValue !== undefined) {\r\n setInputValueByRef(inputRef.current, emptyValue);\r\n } else if (data.length > 0) {\r\n setInputValueByRef(inputRef.current, data[0].value);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n // event handlers\r\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n setOpen(true);\r\n }\r\n };\r\n\r\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\r\n switch (event.key) {\r\n case 'Escape': {\r\n event.preventDefault();\r\n if (lastValue !== undefined) {\r\n setInputValueByRef(listboxInputRef.current, lastValue);\r\n }\r\n\r\n setOpen(false);\r\n break;\r\n }\r\n\r\n case 'Tab':\r\n case 'Enter': {\r\n if (event.key !== 'Tab') {\r\n event.preventDefault();\r\n }\r\n setOpen(false);\r\n break;\r\n }\r\n\r\n default:\r\n }\r\n\r\n if (otherProps.onKeyDown) {\r\n otherProps.onKeyDown(event);\r\n }\r\n };\r\n\r\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\r\n event.preventDefault();\r\n if (!multiselect) {\r\n setOpen(false);\r\n if (onBlur) {\r\n onBlur(createCustomEvent('blur'));\r\n }\r\n }\r\n };\r\n\r\n let text: string | JSX.Element = '';\r\n let more = 0;\r\n\r\n if (value !== undefined) {\r\n if (multiselect) {\r\n const selectedValues = value?.toString().split(',') || [];\r\n\r\n if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {\r\n text = texts.select.allOptionsSelected;\r\n } else {\r\n text = findByValue(flattenedData, selectedValues[0])?.text ?? '';\r\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\r\n }\r\n } else {\r\n const item = findByValue(flattenedData, value);\r\n\r\n if (item) {\r\n text = item.icon ? (\r\n <>\r\n {React.cloneElement(item.icon, {\r\n className: cn(item.icon.props.className, 'mr-1 -mt-px'),\r\n })}\r\n {item.text}\r\n </>\r\n ) : (\r\n item.text\r\n );\r\n }\r\n }\r\n }\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n if (onChange) {\r\n const item = findByValue(flattenedData, event.target.value);\r\n (event as any).detail = sanitizeItem(item);\r\n\r\n const indexes = item?.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 (event as any).detail.parents = indexes.map(i => {\r\n lastPath = lastPath ? [lastPath, i].join('.') : i;\r\n return sanitizeItem(flattenedData.find(i => i.path === lastPath));\r\n });\r\n }\r\n\r\n onChange(event);\r\n }\r\n };\r\n\r\n const button: InternalButtonProps = {\r\n 'aria-haspopup': 'listbox' as const,\r\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\r\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\r\n disabled: disabled || readOnly,\r\n id: buttonId,\r\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\r\n type: 'button',\r\n };\r\n\r\n const listbox: InternalListboxProps = {\r\n ...otherProps,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n data,\r\n disabled,\r\n emptyValue,\r\n onBlur,\r\n onClick: handleListboxClick,\r\n onChange: event => {\r\n setInputValueByRef(inputRef.current, event.target.value);\r\n },\r\n onKeyDown: handleListboxKeyDown,\r\n ref: listboxInputRef,\r\n value,\r\n };\r\n\r\n const input: InternalInputProps = {\r\n onChange: handleInputChange,\r\n ref: inputRef,\r\n value: String(value ?? ''),\r\n };\r\n\r\n return {\r\n button,\r\n listbox,\r\n input,\r\n popover: {\r\n open,\r\n onOpenChange: open => {\r\n if (!open && onBlur) {\r\n onBlur(createCustomEvent('blur'));\r\n }\r\n setOpen(open);\r\n },\r\n },\r\n text,\r\n more,\r\n };\r\n};\r\n"],"names":["useSelect","ariaLabel","ariaLabelledBy","data","defaultValue","disabled","emptyValue","id","nativeId","multiselect","onBlur","onClick","onChange","readOnly","value","otherProps","ref","texts","useLocalization","flattenedData","useFlattenedData","listboxInputRef","useMergedRef","open","setOpen","React","uuid","inputRef","buttonId","lastValue","setLastValue","undefined","findByValue","setInputValueByRef","current","length","handleButtonKeyDown","event","key","preventDefault","handleListboxKeyDown","onKeyDown","handleListboxClick","createCustomEvent","text","more","selectedValues","toString","split","filter","item","select","allOptionsSelected","icon","className","cn","props","handleInputChange","persist","target","detail","sanitizeItem","indexes","path","pop","lastPath","parents","map","i","join","find","button","type","listbox","input","String","popover","onOpenChange"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select2.js","sources":["../../../../../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport { Select2OptionValue, Select2Value } from './types';\nimport { Option, Select2OptionProps } from './components/Option';\nimport { Group, Select2GroupProps } from './components/Group';\nimport { Select2TitleProps, Title } from './components/Title';\nimport { Select2Context } from './components/Context';\nimport { createCollectionClassName } from './utilities';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { Trigger } from './components/Trigger';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport { Search } from './components/Search';\nimport { useChildren } from './hooks/useChildren';\nimport { Color } from '../../utils/colors';\nimport { Create } from './components/Create';\nimport { Collection } from './components/Collection';\nimport { CollectionRef } from '../../primitives/Collection/Collection';\nimport { useLocalization } from '../Provider/Provider';\n//import { All } from './components/All';\n\nexport type Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n};\n\nexport type Select2Props = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n children: React.ReactElement<Select2OptionProps>[];\n defaultValue?: Select2Value;\n emptyValue?: Select2OptionValue;\n disabled?: boolean;\n disableSearch?: boolean;\n highlighted?: boolean;\n invalid?: boolean;\n multiple?: boolean;\n name?: string;\n onChange?: (value: Select2Value) => void;\n onCreate?: (name: string, color: Color | undefined) => Promise<Select2OptionProps>;\n onDelete?: (value: Select2OptionValue) => Promise<void>;\n onEdit?: (value: Select2OptionValue, text: string, color: Color | undefined) => Promise<void>;\n readOnly?: boolean;\n tags?: boolean;\n value?: Select2Value;\n};\nexport type Select2PropsWithStatics = React.ForwardRefExoticComponent<Select2Props & React.RefAttributes<HTMLButtonElement>> & {\n Option: React.ForwardRefExoticComponent<Select2OptionProps>;\n Group: React.ForwardRefExoticComponent<Select2GroupProps>;\n Title: React.ForwardRefExoticComponent<Select2TitleProps>;\n};\n\nexport const Select2 = React.forwardRef<HTMLButtonElement, Select2Props>(function Select2(props, ref) {\n const {\n children: initialChildren,\n defaultValue: defaultProp,\n disabled = false,\n disableSearch = false,\n emptyValue = undefined,\n highlighted = false,\n invalid = false,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n readOnly = false,\n tabIndex = 0,\n tags = false,\n value: prop,\n ...otherProps\n } = props;\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControllableState<Select2Value>({\n // uncontrolled\n defaultProp,\n // controlled\n onChange,\n prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(multiple, _setValue);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const { allChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n tags,\n validationError,\n value,\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n setOpen(true);\n }\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n };\n\n const className = cn('border-grey-dark rounded border bg-white py-1.5 shadow-md outline-none', createCollectionClassName());\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={allChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n <PopoverPrimitive.Trigger asChild data-taco=\"Select2\" type={undefined}>\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n children={allChildren}\n onKeyDown={handleKeyDown}\n ref={internalRef}\n />\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n asChild\n align=\"start\"\n onOpenAutoFocus={event => {\n event.preventDefault();\n event.stopPropagation();\n internalRef.current?.focus();\n }}\n onCloseAutoFocus={event => {\n event.preventDefault();\n event.stopPropagation();\n internalRef.current?.focus();\n }}\n sideOffset={4}\n tabIndex={-1}>\n <div className={className} style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}>\n {!disableSearch ? (\n <Search\n placeholder={onCreate ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n />\n ) : null}\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n tabIndex={-1}\n value={value}>\n {/*multiple && !searchQuery && Array.isArray(value) ? (\n <All\n children={allChildren}\n onToggle={_setValue}\n selected={value.length === allChildren.length}\n />\n ) : null*/}\n <Collection>{filteredChildren}</Collection>\n {onCreate ? <Create onCreate={onCreate} options={allChildren} /> : null}\n </ListboxPrimitive.Root>\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}) as Select2PropsWithStatics;\nSelect2.Option = Option;\nSelect2.Group = Group;\nSelect2.Title = Title;\n\nconst ControlledHiddenField = props => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} value={bubbleValue}>\n {emptyValue !== undefined ? <option value={emptyValue} /> : null}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\n"],"names":["Select2","React","forwardRef","props","ref","children","initialChildren","defaultValue","defaultProp","disabled","disableSearch","emptyValue","undefined","highlighted","invalid","multiple","name","onChange","onCreate","onDelete","onEdit","readOnly","tabIndex","tags","value","prop","otherProps","internalRef","useMergedRef","listboxRef","useRef","searchRef","texts","useLocalization","dimensions","useBoundingClientRectListener","open","setOpen","useState","_setValue","useControllableState","setValue","ListboxPrimitive","validationError","setValidationError","allChildren","filteredChildren","searchQuery","setSearchQuery","useChildren","context","handleKeyDown","event","preventDefault","key","current","dispatchEvent","createCustomKeyboardEvent","className","cn","createCollectionClassName","Select2Context","Provider","PopoverPrimitive","onOpenChange","ControlledHiddenField","options","map","child","parentRef","asChild","type","Trigger","onKeyDown","align","onOpenAutoFocus","stopPropagation","focus","onCloseAutoFocus","sideOffset","style","minWidth","width","Search","placeholder","select2","searchOrCreate","search","customSelector","Collection","Create","Option","Group","Title","isFormControl","useIsFormControl","bubbleValue","Array","isArray","String","BubbleSelect","option"],"mappings":"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"}
1
+ {"version":3,"file":"Select2.js","sources":["../../../../../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\r\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\r\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\r\nimport { Select2OptionValue, Select2Value } from './types';\r\nimport { Option, Select2OptionProps } from './components/Option';\r\nimport { Group, Select2GroupProps } from './components/Group';\r\nimport { Select2TitleProps, Title } from './components/Title';\r\nimport { Select2Context } from './components/Context';\r\nimport { createCollectionClassName } from './utilities';\r\nimport { useMergedRef } from '../../hooks/useMergedRef';\r\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\r\nimport { createCustomKeyboardEvent } from '../../utils/input';\r\nimport { Trigger } from './components/Trigger';\r\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\r\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\r\nimport { Search } from './components/Search';\r\nimport { useChildren } from './hooks/useChildren';\r\nimport { Color } from '../../utils/colors';\r\nimport { Create } from './components/Create';\r\nimport { Collection } from './components/Collection';\r\nimport { CollectionRef } from '../../primitives/Collection/Collection';\r\nimport { useLocalization } from '../Provider/Provider';\r\n//import { All } from './components/All';\r\n\r\nexport type Select2Texts = {\r\n allSelect: string;\r\n allDeselect: string;\r\n cancel: string;\r\n chooseColor: string;\r\n create: string;\r\n delete: string;\r\n save: string;\r\n search: string;\r\n searchOrCreate: string;\r\n};\r\n\r\nexport type Select2Props = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\r\n children: React.ReactElement<Select2OptionProps>[];\r\n defaultValue?: Select2Value;\r\n emptyValue?: Select2OptionValue;\r\n disabled?: boolean;\r\n disableSearch?: boolean;\r\n highlighted?: boolean;\r\n invalid?: boolean;\r\n multiple?: boolean;\r\n name?: string;\r\n onChange?: (value: Select2Value) => void;\r\n onCreate?: (name: string, color: Color | undefined) => Promise<Select2OptionProps>;\r\n onDelete?: (value: Select2OptionValue) => Promise<void>;\r\n onEdit?: (value: Select2OptionValue, text: string, color: Color | undefined) => Promise<void>;\r\n readOnly?: boolean;\r\n tags?: boolean;\r\n value?: Select2Value;\r\n};\r\nexport type Select2PropsWithStatics = React.ForwardRefExoticComponent<Select2Props & React.RefAttributes<HTMLButtonElement>> & {\r\n Option: React.ForwardRefExoticComponent<Select2OptionProps>;\r\n Group: React.ForwardRefExoticComponent<Select2GroupProps>;\r\n Title: React.ForwardRefExoticComponent<Select2TitleProps>;\r\n};\r\n\r\nexport const Select2 = React.forwardRef<HTMLButtonElement, Select2Props>(function Select2(props, ref) {\r\n const {\r\n children: initialChildren,\r\n defaultValue: defaultProp,\r\n disabled = false,\r\n disableSearch = false,\r\n emptyValue = undefined,\r\n highlighted = false,\r\n invalid = false,\r\n multiple = false,\r\n name,\r\n onChange,\r\n onCreate,\r\n onDelete,\r\n onEdit,\r\n readOnly = false,\r\n tabIndex = 0,\r\n tags = false,\r\n value: prop,\r\n ...otherProps\r\n } = props;\r\n\r\n // refs\r\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\r\n const listboxRef = React.useRef<CollectionRef>(null);\r\n const searchRef = React.useRef<HTMLInputElement>(null);\r\n const { texts } = useLocalization();\r\n // align the listbox min width with the width of the input - it should never be smaller\r\n const dimensions = useBoundingClientRectListener(internalRef);\r\n\r\n // state\r\n const [open, setOpen] = React.useState(false);\r\n const [value, _setValue] = useControllableState<Select2Value>({\r\n // uncontrolled\r\n defaultProp,\r\n // controlled\r\n onChange,\r\n prop,\r\n });\r\n const setValue = ListboxPrimitive.createListboxValueSetter(multiple, _setValue);\r\n const [validationError, setValidationError] = React.useState<Error | undefined>();\r\n\r\n const { allChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\r\n children: initialChildren,\r\n emptyValue,\r\n open,\r\n setValue,\r\n value,\r\n });\r\n\r\n // context\r\n const context = {\r\n disabled,\r\n highlighted,\r\n invalid,\r\n listboxRef,\r\n multiple,\r\n onCreate,\r\n onDelete,\r\n onEdit,\r\n open,\r\n readOnly,\r\n ref: internalRef,\r\n searchQuery,\r\n searchRef,\r\n setOpen,\r\n setSearchQuery,\r\n setValidationError,\r\n setValue,\r\n tags,\r\n validationError,\r\n value,\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\r\n if (open) {\r\n event.preventDefault();\r\n } else {\r\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\r\n setOpen(true);\r\n }\r\n }\r\n\r\n // the focus should always remain on the input, so we forward events on to the listbox\r\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\r\n };\r\n\r\n const className = cn('border-grey-dark rounded border bg-white py-1.5 shadow-md outline-none', createCollectionClassName());\r\n\r\n return (\r\n <Select2Context.Provider value={context}>\r\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\r\n <ControlledHiddenField\r\n emptyValue={emptyValue}\r\n multiple={multiple || tags}\r\n name={name}\r\n options={allChildren.map(child => child.props.value)}\r\n parentRef={internalRef}\r\n setValue={setValue}\r\n value={value}\r\n />\r\n <PopoverPrimitive.Trigger asChild data-taco=\"Select2\" type={undefined}>\r\n <Trigger\r\n {...otherProps}\r\n aria-haspopup=\"listbox\"\r\n children={allChildren}\r\n onKeyDown={handleKeyDown}\r\n ref={internalRef}\r\n />\r\n </PopoverPrimitive.Trigger>\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n asChild\r\n align=\"start\"\r\n onOpenAutoFocus={event => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n internalRef.current?.focus();\r\n }}\r\n onCloseAutoFocus={event => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n internalRef.current?.focus();\r\n }}\r\n sideOffset={4}\r\n tabIndex={-1}>\r\n <div className={className} style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}>\r\n {!disableSearch ? (\r\n <Search\r\n placeholder={onCreate ? texts.select2.searchOrCreate : texts.select2.search}\r\n ref={searchRef}\r\n />\r\n ) : null}\r\n <ListboxPrimitive.Root\r\n className=\"flex flex-col gap-0.5\"\r\n customSelector=\":scope > button\"\r\n disabled={disabled}\r\n multiple={multiple}\r\n readOnly={readOnly}\r\n ref={listboxRef}\r\n setValue={setValue}\r\n tabIndex={-1}\r\n value={value}>\r\n {/*multiple && !searchQuery && Array.isArray(value) ? (\r\n <All\r\n children={allChildren}\r\n onToggle={_setValue}\r\n selected={value.length === allChildren.length}\r\n />\r\n ) : null*/}\r\n <Collection>{filteredChildren}</Collection>\r\n {onCreate ? <Create onCreate={onCreate} options={allChildren} /> : null}\r\n </ListboxPrimitive.Root>\r\n </div>\r\n </PopoverPrimitive.Content>\r\n </PopoverPrimitive.Portal>\r\n </PopoverPrimitive.Root>\r\n </Select2Context.Provider>\r\n );\r\n}) as Select2PropsWithStatics;\r\nSelect2.Option = Option;\r\nSelect2.Group = Group;\r\nSelect2.Title = Title;\r\n\r\nconst ControlledHiddenField = props => {\r\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\r\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\r\n\r\n let bubbleValue;\r\n\r\n if (isFormControl) {\r\n if (value !== undefined) {\r\n if (multiple) {\r\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\r\n } else {\r\n bubbleValue = value === null ? '' : String(value);\r\n }\r\n }\r\n\r\n return (\r\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} value={bubbleValue}>\r\n {emptyValue !== undefined ? <option value={emptyValue} /> : null}\r\n {options.map(option => (\r\n <option key={String(option)} value={String(option)} />\r\n ))}\r\n </BubbleSelect>\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n"],"names":["Select2","React","forwardRef","props","ref","children","initialChildren","defaultValue","defaultProp","disabled","disableSearch","emptyValue","undefined","highlighted","invalid","multiple","name","onChange","onCreate","onDelete","onEdit","readOnly","tabIndex","tags","value","prop","otherProps","internalRef","useMergedRef","listboxRef","useRef","searchRef","texts","useLocalization","dimensions","useBoundingClientRectListener","open","setOpen","useState","_setValue","useControllableState","setValue","ListboxPrimitive","validationError","setValidationError","allChildren","filteredChildren","searchQuery","setSearchQuery","useChildren","context","handleKeyDown","event","preventDefault","key","current","dispatchEvent","createCustomKeyboardEvent","className","cn","createCollectionClassName","Select2Context","Provider","PopoverPrimitive","onOpenChange","ControlledHiddenField","options","map","child","parentRef","asChild","type","Trigger","onKeyDown","align","onOpenAutoFocus","stopPropagation","focus","onCloseAutoFocus","sideOffset","style","minWidth","width","Search","placeholder","select2","searchOrCreate","search","customSelector","Collection","Create","Option","Group","Title","isFormControl","useIsFormControl","bubbleValue","Array","isArray","String","BubbleSelect","option"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Collection.js","sources":["../../../../../../../../src/components/Select2/components/Collection.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { Select2OptionProps } from './Option';\n\nexport type Select2CollectionProps = {\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const Collection = (props: Select2CollectionProps) => {\n const { children } = props;\n\n if (!children.length) {\n return (\n <div className=\"text-grey-darkest -mt-0.5 flex h-8 items-center px-2\" role=\"presentation\">\n No results found...\n </div>\n );\n }\n\n return <ScrollArea className=\"flex max-h-[10.25rem] w-full flex-col gap-y-0.5 px-1.5\">{children}</ScrollArea>;\n};\n"],"names":["Collection","props","children","length","React","className","role","ScrollArea"],"mappings":";;;MAQaA,UAAU,GAAIC,KAA6B;EACpD,MAAM;IAAEC;GAAU,GAAGD,KAAK;EAE1B,IAAI,CAACC,QAAQ,CAACC,MAAM,EAAE;IAClB,oBACIC;MAAKC,SAAS,EAAC,sDAAsD;MAACC,IAAI,EAAC;6BAErE;;EAId,oBAAOF,6BAACG,UAAU;IAACF,SAAS,EAAC;KAA0DH,QAAQ,CAAc;AACjH;;;;"}
1
+ {"version":3,"file":"Collection.js","sources":["../../../../../../../../src/components/Select2/components/Collection.tsx"],"sourcesContent":["import React from 'react';\r\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\r\nimport { Select2OptionProps } from './Option';\r\n\r\nexport type Select2CollectionProps = {\r\n children: React.ReactElement<Select2OptionProps>[];\r\n};\r\n\r\nexport const Collection = (props: Select2CollectionProps) => {\r\n const { children } = props;\r\n\r\n if (!children.length) {\r\n return (\r\n <div className=\"text-grey-darkest -mt-0.5 flex h-8 items-center px-2\" role=\"presentation\">\r\n No results found...\r\n </div>\r\n );\r\n }\r\n\r\n return <ScrollArea className=\"flex max-h-[10.25rem] w-full flex-col gap-y-0.5 px-1.5\">{children}</ScrollArea>;\r\n};\r\n"],"names":["Collection","props","children","length","React","className","role","ScrollArea"],"mappings":";;;MAQaA,UAAU,GAAIC,KAA6B;EACpD,MAAM;IAAEC;GAAU,GAAGD,KAAK;EAE1B,IAAI,CAACC,QAAQ,CAACC,MAAM,EAAE;IAClB,oBACIC;MAAKC,SAAS,EAAC,sDAAsD;MAACC,IAAI,EAAC;6BAErE;;EAId,oBAAOF,6BAACG,UAAU;IAACF,SAAS,EAAC;KAA0DH,QAAQ,CAAc;AACjH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../../../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\nimport { CollectionRef } from '../../../primitives/Collection/Collection';\nimport { Color } from '../../../utils/colors';\nimport { Select2OptionValue, Select2Value } from '../types';\nimport { Select2OptionProps } from './Option';\n\nexport type Select2ContextProps = {\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef>;\n multiple: boolean;\n onCreate?: (text: string, color: Color | undefined) => Promise<Select2OptionProps>;\n onDelete?: (value: Select2OptionValue) => Promise<void>;\n onEdit?: (value: Select2OptionValue, text: string, color: Color | undefined) => Promise<void>;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n"],"names":["Select2Context","React","createContext","useSelect2Context","useContext"],"mappings":";;MA6BaA,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAC,EAAyB;MAC9DC,iBAAiB,GAAG,MAAMF,cAAK,CAACG,UAAU,CAACJ,cAAc;;;;"}
1
+ {"version":3,"file":"Context.js","sources":["../../../../../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\r\nimport { CollectionRef } from '../../../primitives/Collection/Collection';\r\nimport { Color } from '../../../utils/colors';\r\nimport { Select2OptionValue, Select2Value } from '../types';\r\nimport { Select2OptionProps } from './Option';\r\n\r\nexport type Select2ContextProps = {\r\n disabled: boolean;\r\n highlighted: boolean;\r\n invalid: boolean;\r\n listboxRef: React.RefObject<CollectionRef>;\r\n multiple: boolean;\r\n onCreate?: (text: string, color: Color | undefined) => Promise<Select2OptionProps>;\r\n onDelete?: (value: Select2OptionValue) => Promise<void>;\r\n onEdit?: (value: Select2OptionValue, text: string, color: Color | undefined) => Promise<void>;\r\n open: boolean;\r\n readOnly: boolean;\r\n ref: React.RefObject<HTMLButtonElement>;\r\n searchQuery: string;\r\n searchRef?: React.RefObject<HTMLInputElement>;\r\n setOpen: (open: boolean) => void;\r\n setSearchQuery: (value: string) => void;\r\n setValidationError: (error: Error | undefined) => void;\r\n setValue: (value: Select2OptionValue) => void;\r\n tags?: boolean;\r\n validationError?: Error;\r\n value?: Select2Value;\r\n};\r\n\r\nexport const Select2Context = React.createContext({} as Select2ContextProps);\r\nexport const useSelect2Context = () => React.useContext(Select2Context);\r\n"],"names":["Select2Context","React","createContext","useSelect2Context","useContext"],"mappings":";;MA6BaA,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAC,EAAyB;MAC9DC,iBAAiB,GAAG,MAAMF,cAAK,CAACG,UAAU,CAACJ,cAAc;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Create.js","sources":["../../../../../../../../src/components/Select2/components/Create.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { Color } from '../../../utils/colors';\nimport { Tag } from '../../Tag/Tag';\nimport { createOptionClassName } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { useLocalization } from '../../Provider/Provider';\n\nexport type CreateProps = {\n onCreate: (name: string, color: Color | undefined) => Promise<Select2OptionProps>;\n options: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const getNextColor = (options: React.ReactElement<Select2OptionProps>[]): Color | undefined => {\n const occurences = options.reduce((occurences, option) => {\n if (option.props.color) {\n occurences[option.props.color] = occurences[option.props.color] ? occurences[option.props.color] + 1 : 1;\n }\n return occurences;\n }, {});\n\n const colors = Object.keys(occurences);\n\n if (colors.length) {\n return colors.sort((a, b) => occurences[b] - occurences[a])[0] as Color;\n }\n\n return undefined;\n};\n\nexport const Create = (props: CreateProps) => {\n const { onCreate: handleCreate, options } = props;\n const { multiple, searchQuery, setOpen, setSearchQuery, setValidationError, setValue } = useSelect2Context();\n const { texts } = useLocalization();\n\n // determine what the next color tag should be based on color occurences\n const nextColor = React.useMemo(() => getNextColor(options), [options]);\n\n if (!searchQuery) {\n return null;\n }\n\n const handleClick = async () => {\n try {\n const item = await handleCreate(searchQuery, nextColor);\n setValue(item.value);\n\n if (multiple) {\n setSearchQuery('');\n } else {\n setOpen(false);\n }\n } catch (error) {\n setValidationError(error);\n }\n };\n\n const handleKeyDown = event => {\n if (isAriaSelectionKey(event)) {\n event.currentTarget.click();\n }\n };\n\n const className = cn('!w-[calc(100%_-_theme(spacing.3))] ml-1.5', createOptionClassName());\n return (\n <button className={className} onClick={handleClick} onKeyDown={handleKeyDown}>\n <span className=\"flex items-center gap-1.5\">\n {texts.select2.create}\n <Tag color={nextColor} className=\"cursor-pointer\">\n {searchQuery}\n </Tag>\n </span>\n </button>\n );\n};\n"],"names":["getNextColor","options","occurences","reduce","option","props","color","colors","Object","keys","length","sort","a","b","undefined","Create","onCreate","handleCreate","multiple","searchQuery","setOpen","setSearchQuery","setValidationError","setValue","useSelect2Context","texts","useLocalization","nextColor","React","useMemo","handleClick","item","value","error","handleKeyDown","event","isAriaSelectionKey","currentTarget","click","className","cn","createOptionClassName","onClick","onKeyDown","select2","create","Tag"],"mappings":";;;;;;;;;MAeaA,YAAY,GAAIC,OAAiD;EAC1E,MAAMC,UAAU,GAAGD,OAAO,CAACE,MAAM,CAAC,CAACD,UAAU,EAAEE,MAAM;IACjD,IAAIA,MAAM,CAACC,KAAK,CAACC,KAAK,EAAE;MACpBJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAGJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAGJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;;IAE5G,OAAOJ,UAAU;GACpB,EAAE,EAAE,CAAC;EAEN,MAAMK,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACP,UAAU,CAAC;EAEtC,IAAIK,MAAM,CAACG,MAAM,EAAE;IACf,OAAOH,MAAM,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKX,UAAU,CAACW,CAAC,CAAC,GAAGX,UAAU,CAACU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU;;EAG3E,OAAOE,SAAS;AACpB;MAEaC,MAAM,GAAIV,KAAkB;EACrC,MAAM;IAAEW,QAAQ,EAAEC,YAAY;IAAEhB;GAAS,GAAGI,KAAK;EACjD,MAAM;IAAEa,QAAQ;IAAEC,WAAW;IAAEC,OAAO;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC;GAAU,GAAGC,iBAAiB,EAAE;EAC5G,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;;EAGnC,MAAMC,SAAS,GAAGC,cAAK,CAACC,OAAO,CAAC,MAAM7B,YAAY,CAACC,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEvE,IAAI,CAACkB,WAAW,EAAE;IACd,OAAO,IAAI;;EAGf,MAAMW,WAAW;IAAA;uCACT;QAAA,uBACmBb,YAAY,CAACE,WAAW,EAAEQ,SAAS,CAAC,iBAAjDI,IAAI;UACVR,QAAQ,CAACQ,IAAI,CAACC,KAAK,CAAC;UAAC,IAEjBd,QAAQ;YACRG,cAAc,CAAC,EAAE,CAAC;;YAElBD,OAAO,CAAC,KAAK,CAAC;;;OAErB,YAAQa,KAAK,EAAE;QACZX,kBAAkB,CAACW,KAAK,CAAC;OAC5B;MAAA;KACJ;MAAA;;;EAED,MAAMC,aAAa,GAAGC,KAAK;IACvB,IAAIC,kBAAkB,CAACD,KAAK,CAAC,EAAE;MAC3BA,KAAK,CAACE,aAAa,CAACC,KAAK,EAAE;;GAElC;EAED,MAAMC,SAAS,GAAGC,EAAE,CAAC,2CAA2C,EAAEC,qBAAqB,EAAE,CAAC;EAC1F,oBACIb;IAAQW,SAAS,EAAEA,SAAS;IAAEG,OAAO,EAAEZ,WAAW;IAAEa,SAAS,EAAET;kBAC3DN;IAAMW,SAAS,EAAC;KACXd,KAAK,CAACmB,OAAO,CAACC,MAAM,eACrBjB,6BAACkB,GAAG;IAACxC,KAAK,EAAEqB,SAAS;IAAEY,SAAS,EAAC;KAC5BpB,WAAW,CACV,CACH,CACF;AAEjB;;;;"}
1
+ {"version":3,"file":"Create.js","sources":["../../../../../../../../src/components/Select2/components/Create.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { isAriaSelectionKey } from '../../../utils/aria';\r\nimport { Color } from '../../../utils/colors';\r\nimport { Tag } from '../../Tag/Tag';\r\nimport { createOptionClassName } from '../utilities';\r\nimport { useSelect2Context } from './Context';\r\nimport { Select2OptionProps } from './Option';\r\nimport { useLocalization } from '../../Provider/Provider';\r\n\r\nexport type CreateProps = {\r\n onCreate: (name: string, color: Color | undefined) => Promise<Select2OptionProps>;\r\n options: React.ReactElement<Select2OptionProps>[];\r\n};\r\n\r\nexport const getNextColor = (options: React.ReactElement<Select2OptionProps>[]): Color | undefined => {\r\n const occurences = options.reduce((occurences, option) => {\r\n if (option.props.color) {\r\n occurences[option.props.color] = occurences[option.props.color] ? occurences[option.props.color] + 1 : 1;\r\n }\r\n return occurences;\r\n }, {});\r\n\r\n const colors = Object.keys(occurences);\r\n\r\n if (colors.length) {\r\n return colors.sort((a, b) => occurences[b] - occurences[a])[0] as Color;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const Create = (props: CreateProps) => {\r\n const { onCreate: handleCreate, options } = props;\r\n const { multiple, searchQuery, setOpen, setSearchQuery, setValidationError, setValue } = useSelect2Context();\r\n const { texts } = useLocalization();\r\n\r\n // determine what the next color tag should be based on color occurences\r\n const nextColor = React.useMemo(() => getNextColor(options), [options]);\r\n\r\n if (!searchQuery) {\r\n return null;\r\n }\r\n\r\n const handleClick = async () => {\r\n try {\r\n const item = await handleCreate(searchQuery, nextColor);\r\n setValue(item.value);\r\n\r\n if (multiple) {\r\n setSearchQuery('');\r\n } else {\r\n setOpen(false);\r\n }\r\n } catch (error) {\r\n setValidationError(error);\r\n }\r\n };\r\n\r\n const handleKeyDown = event => {\r\n if (isAriaSelectionKey(event)) {\r\n event.currentTarget.click();\r\n }\r\n };\r\n\r\n const className = cn('!w-[calc(100%_-_theme(spacing.3))] ml-1.5', createOptionClassName());\r\n return (\r\n <button className={className} onClick={handleClick} onKeyDown={handleKeyDown}>\r\n <span className=\"flex items-center gap-1.5\">\r\n {texts.select2.create}\r\n <Tag color={nextColor} className=\"cursor-pointer\">\r\n {searchQuery}\r\n </Tag>\r\n </span>\r\n </button>\r\n );\r\n};\r\n"],"names":["getNextColor","options","occurences","reduce","option","props","color","colors","Object","keys","length","sort","a","b","undefined","Create","onCreate","handleCreate","multiple","searchQuery","setOpen","setSearchQuery","setValidationError","setValue","useSelect2Context","texts","useLocalization","nextColor","React","useMemo","handleClick","item","value","error","handleKeyDown","event","isAriaSelectionKey","currentTarget","click","className","cn","createOptionClassName","onClick","onKeyDown","select2","create","Tag"],"mappings":";;;;;;;;;MAeaA,YAAY,GAAIC,OAAiD;EAC1E,MAAMC,UAAU,GAAGD,OAAO,CAACE,MAAM,CAAC,CAACD,UAAU,EAAEE,MAAM;IACjD,IAAIA,MAAM,CAACC,KAAK,CAACC,KAAK,EAAE;MACpBJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAGJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAGJ,UAAU,CAACE,MAAM,CAACC,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;;IAE5G,OAAOJ,UAAU;GACpB,EAAE,EAAE,CAAC;EAEN,MAAMK,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACP,UAAU,CAAC;EAEtC,IAAIK,MAAM,CAACG,MAAM,EAAE;IACf,OAAOH,MAAM,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKX,UAAU,CAACW,CAAC,CAAC,GAAGX,UAAU,CAACU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU;;EAG3E,OAAOE,SAAS;AACpB;MAEaC,MAAM,GAAIV,KAAkB;EACrC,MAAM;IAAEW,QAAQ,EAAEC,YAAY;IAAEhB;GAAS,GAAGI,KAAK;EACjD,MAAM;IAAEa,QAAQ;IAAEC,WAAW;IAAEC,OAAO;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC;GAAU,GAAGC,iBAAiB,EAAE;EAC5G,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;;EAGnC,MAAMC,SAAS,GAAGC,cAAK,CAACC,OAAO,CAAC,MAAM7B,YAAY,CAACC,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEvE,IAAI,CAACkB,WAAW,EAAE;IACd,OAAO,IAAI;;EAGf,MAAMW,WAAW;IAAA;uCACT;QAAA,uBACmBb,YAAY,CAACE,WAAW,EAAEQ,SAAS,CAAC,iBAAjDI,IAAI;UACVR,QAAQ,CAACQ,IAAI,CAACC,KAAK,CAAC;UAAC,IAEjBd,QAAQ;YACRG,cAAc,CAAC,EAAE,CAAC;;YAElBD,OAAO,CAAC,KAAK,CAAC;;;OAErB,YAAQa,KAAK,EAAE;QACZX,kBAAkB,CAACW,KAAK,CAAC;OAC5B;MAAA;KACJ;MAAA;;;EAED,MAAMC,aAAa,GAAGC,KAAK;IACvB,IAAIC,kBAAkB,CAACD,KAAK,CAAC,EAAE;MAC3BA,KAAK,CAACE,aAAa,CAACC,KAAK,EAAE;;GAElC;EAED,MAAMC,SAAS,GAAGC,EAAE,CAAC,2CAA2C,EAAEC,qBAAqB,EAAE,CAAC;EAC1F,oBACIb;IAAQW,SAAS,EAAEA,SAAS;IAAEG,OAAO,EAAEZ,WAAW;IAAEa,SAAS,EAAET;kBAC3DN;IAAMW,SAAS,EAAC;KACXd,KAAK,CAACmB,OAAO,CAACC,MAAM,eACrBjB,6BAACkB,GAAG;IAACxC,KAAK,EAAEqB,SAAS;IAAEY,SAAS,EAAC;KAC5BpB,WAAW,CACV,CACH,CACF;AAEjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Color, colors } from '../../../utils/colors';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Provider';\n\nconst AVAILABLE_COLORS = Object.keys(colors);\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps} modal>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-darkest flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn('flex h-6 w-6 cursor-pointer items-center justify-center rounded', colors[availableColor])}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["AVAILABLE_COLORS","Object","keys","colors","EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","Popover","modal","Content","onCloseAutoFocus","onInteractOutside","onClick","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","onKeyDown","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","map","availableColor","onFocus","asChild"],"mappings":"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"}
1
+ {"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport * as RadioGroup from '@radix-ui/react-radio-group';\r\nimport { Color, colors } from '../../../utils/colors';\r\nimport { Button } from '../../Button/Button';\r\nimport { Input } from '../../Input/Input';\r\nimport { Popover, PopoverProps } from '../../Popover/Popover';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { Select2OptionValue } from '../types';\r\nimport { useSelect2Context } from './Context';\r\nimport { Field } from '../../Field/Field';\r\nimport { Group } from '../../Group/Group';\r\nimport { useLocalization } from '../../Provider/Provider';\r\n\r\nconst AVAILABLE_COLORS = Object.keys(colors);\r\n\r\nexport type EditPopoverProps = PopoverProps & {\r\n color?: Color;\r\n text: string;\r\n value: Select2OptionValue;\r\n};\r\n\r\nexport const EditPopover = (props: EditPopoverProps) => {\r\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\r\n const ref = React.useRef<HTMLInputElement>(null);\r\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\r\n const { texts } = useLocalization();\r\n const [name, setName] = React.useState(initialName);\r\n const [color, setColor] = React.useState(initialColor);\r\n const [validationError, setValidationError] = React.useState<Error | undefined>();\r\n\r\n const handleInputChange = event => {\r\n setName(event.target.value);\r\n setValidationError(undefined);\r\n };\r\n\r\n const handleInputKeyDown = close => async event => {\r\n event.stopPropagation();\r\n\r\n if (event.key === 'Escape') {\r\n close();\r\n } else if (event.key === 'Enter') {\r\n handleSave(close)(event);\r\n }\r\n };\r\n\r\n const handleDelete = close => async event => {\r\n event.stopPropagation();\r\n close();\r\n\r\n if (onDelete) {\r\n await onDelete(value);\r\n }\r\n };\r\n\r\n const handleSave = close => async event => {\r\n if (onEdit && (name !== initialName || color !== initialColor)) {\r\n try {\r\n await onEdit(value, name, color);\r\n close();\r\n } catch (error) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n setValidationError(error);\r\n ref.current?.focus();\r\n }\r\n } else {\r\n close();\r\n }\r\n };\r\n\r\n const handleCloseAutoFocus = event => {\r\n event.preventDefault();\r\n setName(initialName);\r\n setColor(initialColor);\r\n setValidationError(undefined);\r\n\r\n if (searchRef?.current) {\r\n searchRef.current?.focus();\r\n } else {\r\n selectRef.current?.focus();\r\n }\r\n };\r\n\r\n const handleInteractOutside = () => {\r\n setName(initialName);\r\n setColor(initialColor);\r\n };\r\n\r\n const preventKeyDownPropagation = event => {\r\n if (event.key !== 'Escape') {\r\n event.stopPropagation();\r\n }\r\n };\r\n\r\n return (\r\n <Popover {...popoverProps} modal>\r\n <Popover.Content\r\n onCloseAutoFocus={handleCloseAutoFocus}\r\n onInteractOutside={handleInteractOutside}\r\n onClick={event => event.stopPropagation()}\r\n placement=\"right\"\r\n tabIndex={-1}\r\n className=\"focus:!shadow-none\">\r\n {({ close }) => (\r\n <>\r\n <div className=\"flex w-32 flex-col space-y-2\">\r\n {onEdit ? (\r\n <>\r\n <Field\r\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\r\n invalid={!!validationError}\r\n message={validationError?.message}>\r\n <Input\r\n invalid={!!validationError}\r\n onChange={handleInputChange}\r\n onKeyDown={handleInputKeyDown(close)}\r\n ref={ref}\r\n value={name}\r\n />\r\n </Field>\r\n {initialColor ? (\r\n <>\r\n <h5>Colours</h5>\r\n <Colours\r\n color={color}\r\n onChangeColor={setColor}\r\n onKeyDown={preventKeyDownPropagation}\r\n />\r\n </>\r\n ) : null}\r\n <Group>\r\n <Button onClick={close}>{texts.select2.cancel}</Button>\r\n <Button appearance=\"primary\" onClick={handleSave(close)}>\r\n {texts.select2.save}\r\n </Button>\r\n </Group>\r\n </>\r\n ) : null}\r\n {onEdit && onDelete ? <hr /> : null}\r\n {onDelete ? (\r\n <button\r\n className=\"hover:text-grey-darkest flex items-center justify-start gap-1\"\r\n onClick={handleDelete(close)}\r\n onKeyDown={preventKeyDownPropagation}>\r\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\r\n </button>\r\n ) : null}\r\n </div>\r\n </>\r\n )}\r\n </Popover.Content>\r\n </Popover>\r\n );\r\n};\r\n\r\nconst Colours = props => {\r\n const { color, onChangeColor, onClick, onKeyDown } = props;\r\n const { texts } = useLocalization();\r\n\r\n return (\r\n <RadioGroup.Root\r\n aria-label={texts.select2.chooseColor}\r\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\r\n onClick={onClick}\r\n onKeyDown={onKeyDown}\r\n onValueChange={color => onChangeColor(color)}\r\n value={color}>\r\n {AVAILABLE_COLORS.map((availableColor: string) => (\r\n <RadioGroup.Item\r\n aria-label={color}\r\n className={cn('flex h-6 w-6 cursor-pointer items-center justify-center rounded', colors[availableColor])}\r\n key={availableColor}\r\n onFocus={() => onChangeColor(availableColor)}\r\n value={availableColor}>\r\n <RadioGroup.Indicator asChild>\r\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\r\n </RadioGroup.Indicator>\r\n </RadioGroup.Item>\r\n ))}\r\n </RadioGroup.Root>\r\n );\r\n};\r\n"],"names":["AVAILABLE_COLORS","Object","keys","colors","EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","Popover","modal","Content","onCloseAutoFocus","onInteractOutside","onClick","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","onKeyDown","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","map","availableColor","onFocus","asChild"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sources":["../../../../../../../../src/components/Select2/components/Group.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createCollectionClassName } from '../utilities';\n\nexport type Select2GroupProps = ListboxPrimitive.Listbox2GroupProps;\n\nexport const Group = React.forwardRef<HTMLDivElement, Select2GroupProps>(function Select2Group(props, ref) {\n const className = cn(createCollectionClassName(), props.className);\n return <ListboxPrimitive.Group {...props} className={className} ref={ref} />;\n});\n"],"names":["Group","React","forwardRef","Select2Group","props","ref","className","cn","createCollectionClassName","ListboxPrimitive"],"mappings":";;;;;;;;MAOaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAoC,SAASC,YAAY,CAACC,KAAK,EAAEC,GAAG;EACrG,MAAMC,SAAS,GAAGC,EAAE,CAACC,yBAAyB,EAAE,EAAEJ,KAAK,CAACE,SAAS,CAAC;EAClE,oBAAOL,6BAACQ,OAAsB,oBAAKL,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChF,CAAC;;;;"}
1
+ {"version":3,"file":"Group.js","sources":["../../../../../../../../src/components/Select2/components/Group.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\r\nimport { createCollectionClassName } from '../utilities';\r\n\r\nexport type Select2GroupProps = ListboxPrimitive.Listbox2GroupProps;\r\n\r\nexport const Group = React.forwardRef<HTMLDivElement, Select2GroupProps>(function Select2Group(props, ref) {\r\n const className = cn(createCollectionClassName(), props.className);\r\n return <ListboxPrimitive.Group {...props} className={className} ref={ref} />;\r\n});\r\n"],"names":["Group","React","forwardRef","Select2Group","props","ref","className","cn","createCollectionClassName","ListboxPrimitive"],"mappings":";;;;;;;;MAOaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAoC,SAASC,YAAY,CAACC,KAAK,EAAEC,GAAG;EACrG,MAAMC,SAAS,GAAGC,EAAE,CAACC,yBAAyB,EAAE,EAAEJ,KAAK,CAACE,SAAS,CAAC;EAClE,oBAAOL,6BAACQ,OAAsB,oBAAKL,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon, IconName, IconProps } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { Color } from '../../../utils/colors';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createOptionClassName } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { EditPopover } from './Edit';\nimport { isMobileDevice } from '../../../utils/device';\n\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children'> & {\n children: string;\n color?: Color;\n icon?: React.ReactElement<IconProps> | IconName;\n textValue?: string;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\n const { children, color, icon, ...otherProps } = props;\n const className = createOptionClassName();\n const { onDelete, onEdit, listboxRef, multiple, ref: selectRef, setOpen, tags, value } = useSelect2Context();\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (!multiple) {\n setOpen(false);\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event)) {\n if (!multiple || event.key === 'Tab') {\n setOpen(false);\n }\n }\n };\n\n const popover =\n onEdit || onDelete\n ? popoverProps => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"group-aria-selected:visible pointer-events-none invisible -mx-1 !h-4 !w-4\" />\n ) : null}\n {isTag ? (\n <Tag className=\"pointer-events-none\" color={color} icon={icon}>\n {children}\n </Tag>\n ) : (\n <>\n {icon ? typeof icon === 'string' ? <Icon name={icon} /> : icon : null}\n {children}\n </>\n )}\n {popover ? (\n <IconButton\n rounded\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn('group-aria-current:visible invisible ml-auto -mr-2 focus:!shadow-none group-hover:visible', {\n '!visible': isMobileDevice(window?.navigator),\n })}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndex(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["Option","React","forwardRef","Select2Option","props","ref","children","color","icon","otherProps","className","createOptionClassName","onDelete","onEdit","listboxRef","multiple","selectRef","setOpen","tags","value","useSelect2Context","hasValue","Array","isArray","length","undefined","isTag","handleClick","current","focus","handleKeyDown","event","isAriaSelectionKey","key","popover","popoverProps","EditPopover","textValue","String","text","ListboxPrimitive","onClick","onKeyDown","Icon","name","Tag","IconButton","rounded","appearance","cn","isMobileDevice","window","navigator","stopPropagation","setActiveIndex","currentTarget","parentElement","tabIndex"],"mappings":"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"}
1
+ {"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { Icon, IconName, IconProps } from '../../Icon/Icon';\r\nimport { Tag } from '../../Tag/Tag';\r\nimport { isAriaSelectionKey } from '../../../utils/aria';\r\nimport { Color } from '../../../utils/colors';\r\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\r\nimport { createOptionClassName } from '../utilities';\r\nimport { useSelect2Context } from './Context';\r\nimport { IconButton } from '../../IconButton/IconButton';\r\nimport { EditPopover } from './Edit';\r\nimport { isMobileDevice } from '../../../utils/device';\r\n\r\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children'> & {\r\n children: string;\r\n color?: Color;\r\n icon?: React.ReactElement<IconProps> | IconName;\r\n textValue?: string;\r\n};\r\n\r\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\r\n const { children, color, icon, ...otherProps } = props;\r\n const className = createOptionClassName();\r\n const { onDelete, onEdit, listboxRef, multiple, ref: selectRef, setOpen, tags, value } = useSelect2Context();\r\n\r\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\r\n const isTag = tags && !!color;\r\n\r\n const handleClick = () => {\r\n if (!multiple) {\r\n setOpen(false);\r\n } else {\r\n selectRef.current?.focus();\r\n }\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (isAriaSelectionKey(event)) {\r\n if (!multiple || event.key === 'Tab') {\r\n setOpen(false);\r\n }\r\n }\r\n };\r\n\r\n const popover =\r\n onEdit || onDelete\r\n ? popoverProps => (\r\n <EditPopover\r\n {...popoverProps}\r\n color={props.color}\r\n key={props.textValue ?? String(props.children)}\r\n text={props.textValue ?? String(props.children)}\r\n value={props.value}\r\n />\r\n )\r\n : undefined;\r\n\r\n return (\r\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\r\n {hasValue ? (\r\n <Icon name=\"tick\" className=\"group-aria-selected:visible pointer-events-none invisible -mx-1 !h-4 !w-4\" />\r\n ) : null}\r\n {isTag ? (\r\n <Tag className=\"pointer-events-none\" color={color} icon={icon}>\r\n {children}\r\n </Tag>\r\n ) : (\r\n <>\r\n {icon ? typeof icon === 'string' ? <Icon name={icon} /> : icon : null}\r\n {children}\r\n </>\r\n )}\r\n {popover ? (\r\n <IconButton\r\n rounded\r\n icon=\"ellipsis-vertical\"\r\n appearance=\"discrete\"\r\n className={cn('group-aria-current:visible invisible ml-auto -mr-2 focus:!shadow-none group-hover:visible', {\r\n '!visible': isMobileDevice(window?.navigator),\r\n })}\r\n onClick={event => {\r\n event.stopPropagation();\r\n listboxRef?.current?.setActiveIndex(event.currentTarget.parentElement as HTMLDivElement);\r\n }}\r\n popover={popover}\r\n tabIndex={-1}\r\n />\r\n ) : null}\r\n </ListboxPrimitive.Option>\r\n );\r\n});\r\n"],"names":["Option","React","forwardRef","Select2Option","props","ref","children","color","icon","otherProps","className","createOptionClassName","onDelete","onEdit","listboxRef","multiple","selectRef","setOpen","tags","value","useSelect2Context","hasValue","Array","isArray","length","undefined","isTag","handleClick","current","focus","handleKeyDown","event","isAriaSelectionKey","key","popover","popoverProps","EditPopover","textValue","String","text","ListboxPrimitive","onClick","onKeyDown","Icon","name","Tag","IconButton","rounded","appearance","cn","isMobileDevice","window","navigator","stopPropagation","setActiveIndex","currentTarget","parentElement","tabIndex"],"mappings":";;;;;;;;;;;;;;;MAoBaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAqC,SAASC,aAAa,CAACC,KAAK,EAAEC,GAAG;;EACxG,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,IAAI;IAAE,GAAGC;GAAY,GAAGL,KAAK;EACtD,MAAMM,SAAS,GAAGC,qBAAqB,EAAE;EACzC,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEV,GAAG,EAAEW,SAAS;IAAEC,OAAO;IAAEC,IAAI;IAAEC;GAAO,GAAGC,iBAAiB,EAAE;EAE5G,MAAMC,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAG,CAAC,CAACA,KAAK,CAACK,MAAM,GAAGL,KAAK,KAAKM,SAAS;EAC5E,MAAMC,KAAK,GAAGR,IAAI,IAAI,CAAC,CAACX,KAAK;EAE7B,MAAMoB,WAAW,GAAG;IAChB,IAAI,CAACZ,QAAQ,EAAE;MACXE,OAAO,CAAC,KAAK,CAAC;KACjB,MAAM;MAAA;MACH,sBAAAD,SAAS,CAACY,OAAO,uDAAjB,mBAAmBC,KAAK,EAAE;;GAEjC;EAED,MAAMC,aAAa,GAAIC,KAA0B;IAC7C,IAAIC,kBAAkB,CAACD,KAAK,CAAC,EAAE;MAC3B,IAAI,CAAChB,QAAQ,IAAIgB,KAAK,CAACE,GAAG,KAAK,KAAK,EAAE;QAClChB,OAAO,CAAC,KAAK,CAAC;;;GAGzB;EAED,MAAMiB,OAAO,GACTrB,MAAM,IAAID,QAAQ,GACZuB,YAAY;IAAA;IAAA,oBACRlC,6BAACmC,WAAW,oBACJD,YAAY;MAChB5B,KAAK,EAAEH,KAAK,CAACG,KAAK;MAClB0B,GAAG,sBAAE7B,KAAK,CAACiC,SAAS,+DAAIC,MAAM,CAAClC,KAAK,CAACE,QAAQ,CAAC;MAC9CiC,IAAI,uBAAEnC,KAAK,CAACiC,SAAS,iEAAIC,MAAM,CAAClC,KAAK,CAACE,QAAQ,CAAC;MAC/Ca,KAAK,EAAEf,KAAK,CAACe;OACf;GACL,GACDM,SAAS;EAEnB,oBACIxB,6BAACuC,QAAuB,oBAAK/B,UAAU;IAAEC,SAAS,EAAEA,SAAS;IAAE+B,OAAO,EAAEd,WAAW;IAAEe,SAAS,EAAEZ,aAAa;IAAEzB,GAAG,EAAEA;MAC/GgB,QAAQ,gBACLpB,6BAAC0C,IAAI;IAACC,IAAI,EAAC,MAAM;IAAClC,SAAS,EAAC;IAA8E,GAC1G,IAAI,EACPgB,KAAK,gBACFzB,6BAAC4C,GAAG;IAACnC,SAAS,EAAC,qBAAqB;IAACH,KAAK,EAAEA,KAAK;IAAEC,IAAI,EAAEA;KACpDF,QAAQ,CACP,gBAENL,4DACKO,IAAI,GAAG,OAAOA,IAAI,KAAK,QAAQ,gBAAGP,6BAAC0C,IAAI;IAACC,IAAI,EAAEpC;IAAQ,GAAGA,IAAI,GAAG,IAAI,EACpEF,QAAQ,CAEhB,EACA4B,OAAO,gBACJjC,6BAAC6C,UAAU;IACPC,OAAO;IACPvC,IAAI,EAAC,mBAAmB;IACxBwC,UAAU,EAAC,UAAU;IACrBtC,SAAS,EAAEuC,EAAE,CAAC,2FAA2F,EAAE;MACvG,UAAU,EAAEC,cAAc,YAACC,MAAM,4CAAN,QAAQC,SAAS;KAC/C,CAAC;IACFX,OAAO,EAAEV,KAAK;;MACVA,KAAK,CAACsB,eAAe,EAAE;MACvBvC,UAAU,aAAVA,UAAU,8CAAVA,UAAU,CAAEc,OAAO,wDAAnB,oBAAqB0B,cAAc,CAACvB,KAAK,CAACwB,aAAa,CAACC,aAA+B,CAAC;KAC3F;IACDtB,OAAO,EAAEA,OAAO;IAChBuB,QAAQ,EAAE,CAAC;IACb,GACF,IAAI,CACc;AAElC,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Select2/components/Search.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Input, InputProps } from '../../Input/Input';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { isAriaSelectionKey } from '../../../utils/aria';\n\nexport type Select2SearchProps = InputProps & {};\n\nexport const Search = React.forwardRef<HTMLInputElement, Select2SearchProps>(function ListboxSearch(props, ref) {\n const { ...otherProps } = props;\n const { listboxRef, searchQuery, setSearchQuery, setValidationError, validationError } = useSelect2Context();\n\n const handleChange = event => {\n if (validationError) {\n setValidationError(undefined);\n }\n\n setSearchQuery(event.target.value);\n };\n\n const handleKeyDown = event => {\n // space is an aria selection key, so we have to remove it to allow spaces\n if (event.key === ' ') {\n return;\n }\n\n if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n // forward navigation events onto the underlying collection - we want arrow keys to work from inside the filter input\n listboxRef?.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n return;\n }\n };\n\n return (\n <Field\n className={cn('mx-1.5 mb-1.5 !min-h-fit ', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n {...otherProps}\n aria-hidden\n autoFocus\n invalid={!!validationError}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={ref}\n value={searchQuery}\n />\n </Field>\n );\n});\n"],"names":["Search","React","forwardRef","ListboxSearch","props","ref","otherProps","listboxRef","searchQuery","setSearchQuery","setValidationError","validationError","useSelect2Context","handleChange","event","undefined","target","value","handleKeyDown","key","isAriaSelectionKey","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","Field","className","cn","invalid","message","Input","autoFocus","onChange","onKeyDown"],"mappings":";;;;;;;;MAUaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAuC,SAASC,aAAa,CAACC,KAAK,EAAEC,GAAG;EAC1G,MAAM;IAAE,GAAGC;GAAY,GAAGF,KAAK;EAC/B,MAAM;IAAEG,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC;GAAiB,GAAGC,iBAAiB,EAAE;EAE5G,MAAMC,YAAY,GAAGC,KAAK;IACtB,IAAIH,eAAe,EAAE;MACjBD,kBAAkB,CAACK,SAAS,CAAC;;IAGjCN,cAAc,CAACK,KAAK,CAACE,MAAM,CAACC,KAAK,CAAC;GACrC;EAED,MAAMC,aAAa,GAAGJ,KAAK;;IAEvB,IAAIA,KAAK,CAACK,GAAG,KAAK,GAAG,EAAE;MACnB;;IAGJ,IAAIC,kBAAkB,CAACN,KAAK,CAAC,IAAIA,KAAK,CAACK,GAAG,KAAK,WAAW,IAAIL,KAAK,CAACK,GAAG,KAAK,SAAS,EAAE;MAAA;MACnFL,KAAK,CAACO,cAAc,EAAE;;MAEtBd,UAAU,aAAVA,UAAU,8CAAVA,UAAU,CAAEe,OAAO,wDAAnB,oBAAqBC,aAAa,CAACC,yBAAyB,CAACV,KAA8C,CAAC,CAAC;MAC7G;;GAEP;EAED,oBACIb,6BAACwB,KAAK;IACFC,SAAS,EAAEC,EAAE,CAAC,2BAA2B,EAAE;MAAE,OAAO,EAAE,CAAChB;KAAiB,CAAC;IACzEiB,OAAO,EAAE,CAAC,CAACjB,eAAe;IAC1BkB,OAAO,EAAElB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEkB;kBAC1B5B,6BAAC6B,KAAK,oBACExB,UAAU;;IAEdyB,SAAS;IACTH,OAAO,EAAE,CAAC,CAACjB,eAAe;IAC1BqB,QAAQ,EAAEnB,YAAY;IACtBoB,SAAS,EAAEf,aAAa;IACxBb,GAAG,EAAEA,GAAG;IACRY,KAAK,EAAET;KACT,CACE;AAEhB,CAAC;;;;"}
1
+ {"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Select2/components/Search.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { createCustomKeyboardEvent } from '../../../utils/input';\r\nimport { Input, InputProps } from '../../Input/Input';\r\nimport { useSelect2Context } from './Context';\r\nimport { Field } from '../../Field/Field';\r\nimport { isAriaSelectionKey } from '../../../utils/aria';\r\n\r\nexport type Select2SearchProps = InputProps & {};\r\n\r\nexport const Search = React.forwardRef<HTMLInputElement, Select2SearchProps>(function ListboxSearch(props, ref) {\r\n const { ...otherProps } = props;\r\n const { listboxRef, searchQuery, setSearchQuery, setValidationError, validationError } = useSelect2Context();\r\n\r\n const handleChange = event => {\r\n if (validationError) {\r\n setValidationError(undefined);\r\n }\r\n\r\n setSearchQuery(event.target.value);\r\n };\r\n\r\n const handleKeyDown = event => {\r\n // space is an aria selection key, so we have to remove it to allow spaces\r\n if (event.key === ' ') {\r\n return;\r\n }\r\n\r\n if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n // forward navigation events onto the underlying collection - we want arrow keys to work from inside the filter input\r\n listboxRef?.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\r\n return;\r\n }\r\n };\r\n\r\n return (\r\n <Field\r\n className={cn('mx-1.5 mb-1.5 !min-h-fit ', { '!pb-0': !validationError })}\r\n invalid={!!validationError}\r\n message={validationError?.message}>\r\n <Input\r\n {...otherProps}\r\n aria-hidden\r\n autoFocus\r\n invalid={!!validationError}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n ref={ref}\r\n value={searchQuery}\r\n />\r\n </Field>\r\n );\r\n});\r\n"],"names":["Search","React","forwardRef","ListboxSearch","props","ref","otherProps","listboxRef","searchQuery","setSearchQuery","setValidationError","validationError","useSelect2Context","handleChange","event","undefined","target","value","handleKeyDown","key","isAriaSelectionKey","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","Field","className","cn","invalid","message","Input","autoFocus","onChange","onKeyDown"],"mappings":";;;;;;;;MAUaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAuC,SAASC,aAAa,CAACC,KAAK,EAAEC,GAAG;EAC1G,MAAM;IAAE,GAAGC;GAAY,GAAGF,KAAK;EAC/B,MAAM;IAAEG,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC;GAAiB,GAAGC,iBAAiB,EAAE;EAE5G,MAAMC,YAAY,GAAGC,KAAK;IACtB,IAAIH,eAAe,EAAE;MACjBD,kBAAkB,CAACK,SAAS,CAAC;;IAGjCN,cAAc,CAACK,KAAK,CAACE,MAAM,CAACC,KAAK,CAAC;GACrC;EAED,MAAMC,aAAa,GAAGJ,KAAK;;IAEvB,IAAIA,KAAK,CAACK,GAAG,KAAK,GAAG,EAAE;MACnB;;IAGJ,IAAIC,kBAAkB,CAACN,KAAK,CAAC,IAAIA,KAAK,CAACK,GAAG,KAAK,WAAW,IAAIL,KAAK,CAACK,GAAG,KAAK,SAAS,EAAE;MAAA;MACnFL,KAAK,CAACO,cAAc,EAAE;;MAEtBd,UAAU,aAAVA,UAAU,8CAAVA,UAAU,CAAEe,OAAO,wDAAnB,oBAAqBC,aAAa,CAACC,yBAAyB,CAACV,KAA8C,CAAC,CAAC;MAC7G;;GAEP;EAED,oBACIb,6BAACwB,KAAK;IACFC,SAAS,EAAEC,EAAE,CAAC,2BAA2B,EAAE;MAAE,OAAO,EAAE,CAAChB;KAAiB,CAAC;IACzEiB,OAAO,EAAE,CAAC,CAACjB,eAAe;IAC1BkB,OAAO,EAAElB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEkB;kBAC1B5B,6BAAC6B,KAAK,oBACExB,UAAU;;IAEdyB,SAAS;IACTH,OAAO,EAAE,CAAC,CAACjB,eAAe;IAC1BqB,QAAQ,EAAEnB,YAAY;IACtBoB,SAAS,EAAEf,aAAa;IACxBb,GAAG,EAAEA,GAAG;IACRY,KAAK,EAAET;KACT,CACE;AAEhB,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Title.js","sources":["../../../../../../../../src/components/Select2/components/Title.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\n\nexport type Select2TitleProps = ListboxPrimitive.Listbox2TitleProps;\n\nexport const Title = React.forwardRef<HTMLDivElement, Select2TitleProps>(function Select2Title(props, ref) {\n const className = cn('flex items-center text-xs pl-2 h-8', props.className);\n return <ListboxPrimitive.Title {...props} className={className} ref={ref} />;\n});\n"],"names":["Title","React","forwardRef","Select2Title","props","ref","className","cn","ListboxPrimitive"],"mappings":";;;;;;;MAMaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAoC,SAASC,YAAY,CAACC,KAAK,EAAEC,GAAG;EACrG,MAAMC,SAAS,GAAGC,EAAE,CAAC,oCAAoC,EAAEH,KAAK,CAACE,SAAS,CAAC;EAC3E,oBAAOL,6BAACO,OAAsB,oBAAKJ,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChF,CAAC;;;;"}
1
+ {"version":3,"file":"Title.js","sources":["../../../../../../../../src/components/Select2/components/Title.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\r\n\r\nexport type Select2TitleProps = ListboxPrimitive.Listbox2TitleProps;\r\n\r\nexport const Title = React.forwardRef<HTMLDivElement, Select2TitleProps>(function Select2Title(props, ref) {\r\n const className = cn('flex items-center text-xs pl-2 h-8', props.className);\r\n return <ListboxPrimitive.Title {...props} className={className} ref={ref} />;\r\n});\r\n"],"names":["Title","React","forwardRef","Select2Title","props","ref","className","cn","ListboxPrimitive"],"mappings":";;;;;;;MAMaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAoC,SAASC,YAAY,CAACC,KAAK,EAAEC,GAAG;EACrG,MAAMC,SAAS,GAAGC,EAAE,CAAC,oCAAoC,EAAEH,KAAK,CAACE,SAAS,CAAC;EAC3E,oBAAOL,6BAACO,OAAsB,oBAAKJ,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onClick, tabIndex = 0, ...otherProps } = props;\n const { disabled, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'cursor-pointer !px-1.5',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly }).replace('w-full ', ''),\n { 'w-full': !props.className?.includes('w-') },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled || readOnly ? -1 : tabIndex}\n type=\"button\">\n {children}\n <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"-mr-1 ml-auto\" />\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, value, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate flex items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (currentValue) {\n if (tags) {\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.icon}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n } else {\n output = (\n <>\n {currentValue.props.icon ? (\n typeof currentValue.props.icon === 'string' ? (\n <Icon name={currentValue.props.icon} />\n ) : (\n currentValue.props.icon\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <span className={contentClassName}>{output}</span>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, values = [], ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const contentRef = React.useRef<HTMLSpanElement>(null);\n\n const createClickHandler = tagValue => event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(tagValue);\n }\n };\n const valuesAsChildren = values.map(value =>\n children.find(c => c.props.value === value)\n ) as React.ReactElement<Select2OptionProps>[];\n\n if (open) {\n return (\n <span className=\"relative h-8\">\n <Button {...buttonProps} className={cn('absolute z-20', buttonProps.className)} ref={ref}>\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\">\n <span className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.map(child => (\n <Tag\n key={child.props.value}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={open ? createClickHandler(child.props.value) : undefined}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ))}\n </span>\n </ScrollArea>\n </Button>\n </span>\n );\n }\n\n const boundaryIndex = contentRef.current ? getIndexOfFirstChildOverflowingParent(contentRef.current, 30) : undefined;\n\n return (\n <Button {...buttonProps} ref={ref}>\n <span className=\"relative flex items-center gap-1 overflow-hidden\">\n <span className=\"flex gap-1 truncate\" ref={contentRef}>\n {valuesAsChildren.map((child, index) => {\n const tag = (\n <Tag\n key={child.props.value}\n className={cn('cursor-pointer', {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n })}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={open ? createClickHandler(child.props.value) : undefined}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={child.props.value} title={String(child.props.children)}>\n {tag}\n </Tooltip>\n );\n }\n\n return tag;\n })}\n </span>\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(child.props.children) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </span>\n </Button>\n );\n});\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n"],"names":["Trigger","React","forwardRef","Select2Trigger","props","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onClick","tabIndex","otherProps","disabled","highlighted","invalid","open","readOnly","className","cn","getInputClasses","replace","includes","handleClick","event","preventDefault","role","type","Icon","name","Select2TriggerSingle","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","Select2TriggerMultiple","setValue","contentRef","useRef","createClickHandler","tagValue","stopPropagation","valuesAsChildren","map","c","ScrollArea","child","key","onDelete","boundaryIndex","current","getIndexOfFirstChildOverflowingParent","index","tag","truncate","hidden","Tooltip","title","String","length","slice","join","Badge"],"mappings":"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"}
1
+ {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { Tag } from '../../Tag/Tag';\r\nimport { Tooltip } from '../../Tooltip/Tooltip';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { Badge } from '../../Badge/Badge';\r\nimport { getInputClasses } from '../../Input/util';\r\nimport { Select2OptionValue } from '../types';\r\nimport { useSelect2Context } from './Context';\r\nimport { Select2OptionProps } from './Option';\r\nimport { getIndexOfFirstChildOverflowingParent } from '../../../utils/dom';\r\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\r\n\r\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\r\n children: React.ReactElement<Select2OptionProps>[];\r\n};\r\n\r\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\r\n const { multiple, value } = useSelect2Context();\r\n\r\n if (Array.isArray(value) || multiple) {\r\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\r\n return <Multiple {...props} ref={ref} values={values} />;\r\n }\r\n\r\n return <Single {...props} ref={ref} value={value} />;\r\n});\r\n\r\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\r\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\r\n const { children, onClick, tabIndex = 0, ...otherProps } = props;\r\n const { disabled, highlighted, invalid, open, readOnly } = useSelect2Context();\r\n\r\n const className = cn(\r\n 'cursor-pointer !px-1.5',\r\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly }).replace('w-full ', ''),\r\n { 'w-full': !props.className?.includes('w-') },\r\n props.className\r\n );\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n if (disabled || readOnly) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick(event);\r\n }\r\n };\r\n\r\n return (\r\n <button\r\n {...otherProps}\r\n aria-invalid={invalid ? true : undefined}\r\n aria-readonly={readOnly ? true : undefined}\r\n className={className}\r\n disabled={disabled}\r\n onClick={handleClick}\r\n ref={ref}\r\n role=\"combobox\"\r\n tabIndex={disabled || readOnly ? -1 : tabIndex}\r\n type=\"button\">\r\n {children}\r\n <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"-mr-1 ml-auto\" />\r\n </button>\r\n );\r\n});\r\n\r\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue };\r\n\r\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\r\n const { children, value, ...buttonProps } = props;\r\n const { disabled, readOnly, tags } = useSelect2Context();\r\n const contentClassName = cn('truncate flex items-center gap-1');\r\n\r\n const currentValue = children.find(matchesValue(value));\r\n\r\n let output;\r\n\r\n if (currentValue) {\r\n if (tags) {\r\n output = (\r\n <Tag\r\n className=\"truncate\"\r\n color={currentValue.props.color}\r\n disabled={disabled}\r\n icon={currentValue.props.icon}\r\n readOnly={readOnly}>\r\n {currentValue.props.children}\r\n </Tag>\r\n );\r\n } else {\r\n output = (\r\n <>\r\n {currentValue.props.icon ? (\r\n typeof currentValue.props.icon === 'string' ? (\r\n <Icon name={currentValue.props.icon} />\r\n ) : (\r\n currentValue.props.icon\r\n )\r\n ) : null}\r\n {currentValue.props.children}\r\n </>\r\n );\r\n }\r\n }\r\n\r\n return (\r\n <Button {...buttonProps} ref={ref}>\r\n <span className={contentClassName}>{output}</span>\r\n </Button>\r\n );\r\n});\r\n\r\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\r\n values?: Select2OptionValue[];\r\n};\r\n\r\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\r\n const { children, values = [], ...buttonProps } = props;\r\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\r\n const contentRef = React.useRef<HTMLSpanElement>(null);\r\n\r\n const createClickHandler = tagValue => event => {\r\n event?.stopPropagation();\r\n event?.preventDefault();\r\n\r\n if (!disabled && !readOnly) {\r\n setValue(tagValue);\r\n }\r\n };\r\n const valuesAsChildren = values.map(value =>\r\n children.find(c => c.props.value === value)\r\n ) as React.ReactElement<Select2OptionProps>[];\r\n\r\n if (open) {\r\n return (\r\n <span className=\"relative h-8\">\r\n <Button {...buttonProps} className={cn('absolute z-20', buttonProps.className)} ref={ref}>\r\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\">\r\n <span className=\"flex flex-wrap gap-1\">\r\n {valuesAsChildren.map(child => (\r\n <Tag\r\n key={child.props.value}\r\n className=\"truncate\"\r\n color={tags ? child.props.color : undefined}\r\n disabled={disabled}\r\n icon={child.props.icon}\r\n onDelete={open ? createClickHandler(child.props.value) : undefined}\r\n readOnly={readOnly}>\r\n {child.props.children}\r\n </Tag>\r\n ))}\r\n </span>\r\n </ScrollArea>\r\n </Button>\r\n </span>\r\n );\r\n }\r\n\r\n const boundaryIndex = contentRef.current ? getIndexOfFirstChildOverflowingParent(contentRef.current, 30) : undefined;\r\n\r\n return (\r\n <Button {...buttonProps} ref={ref}>\r\n <span className=\"relative flex items-center gap-1 overflow-hidden\">\r\n <span className=\"flex gap-1 truncate\" ref={contentRef}>\r\n {valuesAsChildren.map((child, index) => {\r\n const tag = (\r\n <Tag\r\n key={child.props.value}\r\n className={cn('cursor-pointer', {\r\n truncate: index === boundaryIndex,\r\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\r\n })}\r\n color={tags ? child.props.color : undefined}\r\n disabled={disabled}\r\n icon={child.props.icon}\r\n onDelete={open ? createClickHandler(child.props.value) : undefined}\r\n readOnly={readOnly}>\r\n {child.props.children}\r\n </Tag>\r\n );\r\n\r\n if (index === boundaryIndex) {\r\n return (\r\n <Tooltip key={child.props.value} title={String(child.props.children)}>\r\n {tag}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return tag;\r\n })}\r\n </span>\r\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\r\n <Tooltip\r\n title={valuesAsChildren\r\n .slice(boundaryIndex + 1)\r\n .map(child => (child ? String(child.props.children) : ''))\r\n .join(', ')}>\r\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\r\n </Tooltip>\r\n ) : null}\r\n </span>\r\n </Button>\r\n );\r\n});\r\n\r\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\r\n if (Array.isArray(value)) {\r\n return value.includes(child.props.value);\r\n }\r\n\r\n return child.props.value === value;\r\n};\r\n"],"names":["Trigger","React","forwardRef","Select2Trigger","props","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onClick","tabIndex","otherProps","disabled","highlighted","invalid","open","readOnly","className","cn","getInputClasses","replace","includes","handleClick","event","preventDefault","role","type","Icon","name","Select2TriggerSingle","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","Select2TriggerMultiple","setValue","contentRef","useRef","createClickHandler","tagValue","stopPropagation","valuesAsChildren","map","c","ScrollArea","child","key","onDelete","boundaryIndex","current","getIndexOfFirstChildOverflowingParent","index","tag","truncate","hidden","Tooltip","title","String","length","slice","join","Badge"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useChildren.js","sources":["../../../../../../../../src/components/Select2/hooks/useChildren.tsx"],"sourcesContent":["import React from 'react';\nimport { Option, Select2OptionProps } from '../components/Option';\nimport { Select2OptionValue, Select2Value } from '../types';\n\nexport type useChildrenArgs = {\n children: React.ReactElement<Select2OptionProps>[];\n emptyValue?: Select2OptionValue;\n open?: boolean;\n setValue: (nextValue: Select2OptionValue) => void;\n value?: Select2Value;\n};\nexport const useChildren = ({ children: initialChildren, emptyValue, open, setValue, value }: useChildrenArgs) => {\n const [searchQuery, setSearchQuery] = React.useState<string>('');\n\n // support empty value - probably a more elegant way to achieve this\n const allChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n if (emptyValue !== undefined) {\n return [<Option key=\"__empty\" children=\"\" value={emptyValue} />, ...initialChildren];\n }\n\n return initialChildren;\n }, [initialChildren, emptyValue]);\n\n // set an initial value if none is set, we have to trigger state updates for controlled components\n React.useEffect(() => {\n if (emptyValue === undefined && value === undefined) {\n setValue(allChildren?.[0]?.props.value);\n }\n }, []);\n\n React.useEffect(() => {\n if (!open) {\n setSearchQuery('');\n }\n }, [open]);\n\n // apply filtering\n const filteredChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n return allChildren.filter(child => {\n if (child.props.textValue) {\n return child.props.textValue.toLowerCase().includes(searchQuery.toLowerCase());\n }\n\n return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());\n });\n }, [allChildren, searchQuery]);\n\n return {\n allChildren,\n filteredChildren,\n searchQuery,\n setSearchQuery,\n };\n};\n"],"names":["useChildren","children","initialChildren","emptyValue","open","setValue","value","searchQuery","setSearchQuery","React","useState","allChildren","useMemo","undefined","Option","key","useEffect","props","filteredChildren","filter","child","textValue","toLowerCase","includes","String"],"mappings":";;;MAWaA,WAAW,GAAG,CAAC;EAAEC,QAAQ,EAAEC,eAAe;EAAEC,UAAU;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;CAAwB;EACzG,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAS,EAAE,CAAC;;EAGhE,MAAMC,WAAW,GAA6CF,cAAK,CAACG,OAAO,CAAC;IACxE,IAAIT,UAAU,KAAKU,SAAS,EAAE;MAC1B,OAAO,cAACJ,6BAACK,MAAM;QAACC,GAAG,EAAC,SAAS;QAACd,QAAQ,EAAC,EAAE;QAACK,KAAK,EAAEH;QAAc,EAAE,GAAGD,eAAe,CAAC;;IAGxF,OAAOA,eAAe;GACzB,EAAE,CAACA,eAAe,EAAEC,UAAU,CAAC,CAAC;;EAGjCM,cAAK,CAACO,SAAS,CAAC;IACZ,IAAIb,UAAU,KAAKU,SAAS,IAAIP,KAAK,KAAKO,SAAS,EAAE;MAAA;MACjDR,QAAQ,CAACM,WAAW,aAAXA,WAAW,wCAAXA,WAAW,CAAG,CAAC,CAAC,kDAAhB,cAAkBM,KAAK,CAACX,KAAK,CAAC;;GAE9C,EAAE,EAAE,CAAC;EAENG,cAAK,CAACO,SAAS,CAAC;IACZ,IAAI,CAACZ,IAAI,EAAE;MACPI,cAAc,CAAC,EAAE,CAAC;;GAEzB,EAAE,CAACJ,IAAI,CAAC,CAAC;;EAGV,MAAMc,gBAAgB,GAA6CT,cAAK,CAACG,OAAO,CAAC;IAC7E,OAAOD,WAAW,CAACQ,MAAM,CAACC,KAAK;MAC3B,IAAIA,KAAK,CAACH,KAAK,CAACI,SAAS,EAAE;QACvB,OAAOD,KAAK,CAACH,KAAK,CAACI,SAAS,CAACC,WAAW,EAAE,CAACC,QAAQ,CAAChB,WAAW,CAACe,WAAW,EAAE,CAAC;;MAGlF,OAAOE,MAAM,CAACJ,KAAK,CAACH,KAAK,CAAChB,QAAQ,CAAC,CAACqB,WAAW,EAAE,CAACC,QAAQ,CAAChB,WAAW,CAACe,WAAW,EAAE,CAAC;KACxF,CAAC;GACL,EAAE,CAACX,WAAW,EAAEJ,WAAW,CAAC,CAAC;EAE9B,OAAO;IACHI,WAAW;IACXO,gBAAgB;IAChBX,WAAW;IACXC;GACH;AACL;;;;"}
1
+ {"version":3,"file":"useChildren.js","sources":["../../../../../../../../src/components/Select2/hooks/useChildren.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Option, Select2OptionProps } from '../components/Option';\r\nimport { Select2OptionValue, Select2Value } from '../types';\r\n\r\nexport type useChildrenArgs = {\r\n children: React.ReactElement<Select2OptionProps>[];\r\n emptyValue?: Select2OptionValue;\r\n open?: boolean;\r\n setValue: (nextValue: Select2OptionValue) => void;\r\n value?: Select2Value;\r\n};\r\nexport const useChildren = ({ children: initialChildren, emptyValue, open, setValue, value }: useChildrenArgs) => {\r\n const [searchQuery, setSearchQuery] = React.useState<string>('');\r\n\r\n // support empty value - probably a more elegant way to achieve this\r\n const allChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\r\n if (emptyValue !== undefined) {\r\n return [<Option key=\"__empty\" children=\"\" value={emptyValue} />, ...initialChildren];\r\n }\r\n\r\n return initialChildren;\r\n }, [initialChildren, emptyValue]);\r\n\r\n // set an initial value if none is set, we have to trigger state updates for controlled components\r\n React.useEffect(() => {\r\n if (emptyValue === undefined && value === undefined) {\r\n setValue(allChildren?.[0]?.props.value);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!open) {\r\n setSearchQuery('');\r\n }\r\n }, [open]);\r\n\r\n // apply filtering\r\n const filteredChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\r\n return allChildren.filter(child => {\r\n if (child.props.textValue) {\r\n return child.props.textValue.toLowerCase().includes(searchQuery.toLowerCase());\r\n }\r\n\r\n return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());\r\n });\r\n }, [allChildren, searchQuery]);\r\n\r\n return {\r\n allChildren,\r\n filteredChildren,\r\n searchQuery,\r\n setSearchQuery,\r\n };\r\n};\r\n"],"names":["useChildren","children","initialChildren","emptyValue","open","setValue","value","searchQuery","setSearchQuery","React","useState","allChildren","useMemo","undefined","Option","key","useEffect","props","filteredChildren","filter","child","textValue","toLowerCase","includes","String"],"mappings":";;;MAWaA,WAAW,GAAG,CAAC;EAAEC,QAAQ,EAAEC,eAAe;EAAEC,UAAU;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;CAAwB;EACzG,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAS,EAAE,CAAC;;EAGhE,MAAMC,WAAW,GAA6CF,cAAK,CAACG,OAAO,CAAC;IACxE,IAAIT,UAAU,KAAKU,SAAS,EAAE;MAC1B,OAAO,cAACJ,6BAACK,MAAM;QAACC,GAAG,EAAC,SAAS;QAACd,QAAQ,EAAC,EAAE;QAACK,KAAK,EAAEH;QAAc,EAAE,GAAGD,eAAe,CAAC;;IAGxF,OAAOA,eAAe;GACzB,EAAE,CAACA,eAAe,EAAEC,UAAU,CAAC,CAAC;;EAGjCM,cAAK,CAACO,SAAS,CAAC;IACZ,IAAIb,UAAU,KAAKU,SAAS,IAAIP,KAAK,KAAKO,SAAS,EAAE;MAAA;MACjDR,QAAQ,CAACM,WAAW,aAAXA,WAAW,wCAAXA,WAAW,CAAG,CAAC,CAAC,kDAAhB,cAAkBM,KAAK,CAACX,KAAK,CAAC;;GAE9C,EAAE,EAAE,CAAC;EAENG,cAAK,CAACO,SAAS,CAAC;IACZ,IAAI,CAACZ,IAAI,EAAE;MACPI,cAAc,CAAC,EAAE,CAAC;;GAEzB,EAAE,CAACJ,IAAI,CAAC,CAAC;;EAGV,MAAMc,gBAAgB,GAA6CT,cAAK,CAACG,OAAO,CAAC;IAC7E,OAAOD,WAAW,CAACQ,MAAM,CAACC,KAAK;MAC3B,IAAIA,KAAK,CAACH,KAAK,CAACI,SAAS,EAAE;QACvB,OAAOD,KAAK,CAACH,KAAK,CAACI,SAAS,CAACC,WAAW,EAAE,CAACC,QAAQ,CAAChB,WAAW,CAACe,WAAW,EAAE,CAAC;;MAGlF,OAAOE,MAAM,CAACJ,KAAK,CAACH,KAAK,CAAChB,QAAQ,CAAC,CAACqB,WAAW,EAAE,CAACC,QAAQ,CAAChB,WAAW,CAACe,WAAW,EAAE,CAAC;KACxF,CAAC;GACL,EAAE,CAACX,WAAW,EAAEJ,WAAW,CAAC,CAAC;EAE9B,OAAO;IACHI,WAAW;IACXO,gBAAgB;IAChBX,WAAW;IACXC;GACH;AACL;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["export const createOptionClassName = () =>\n 'group mb-px flex h-8 w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:bg-grey-light aria-current:bg-grey-light aria-disabled:text-black/25 aria-disabled:pointer-events-none';\n\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\n"],"names":["createOptionClassName","createCollectionClassName"],"mappings":"MAAaA,qBAAqB,GAAG,MACjC;MAESC,yBAAyB,GAAG,MAAM;;;;"}
1
+ {"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["export const createOptionClassName = () =>\r\n 'group mb-px flex h-8 w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:bg-grey-light aria-current:bg-grey-light aria-disabled:text-black/25 aria-disabled:pointer-events-none';\r\n\r\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\r\n"],"names":["createOptionClassName","createCollectionClassName"],"mappings":"MAAaA,qBAAqB,GAAG,MACjC;MAESC,yBAAyB,GAAG,MAAM;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../../../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as PrimitiveSwitch from '@radix-ui/react-switch';\n\ntype SwitchBaseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> & {\n /** Label for the switch */\n label?: React.ReactNode;\n /* Whether user input is required */\n required?: boolean;\n};\n\ninterface UncontrolledSwitchProps extends SwitchBaseProps {\n checked?: never;\n onChange?: never;\n /* The default checked state (uncontrolled) */\n defaultChecked?: boolean;\n}\n\ninterface ControlledSwitchProps extends SwitchBaseProps {\n defaultChecked?: never;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean) => void;\n}\n\nexport type SwitchProps = UncontrolledSwitchProps | ControlledSwitchProps;\n\nexport const Switch = React.forwardRef(function Switch(props: SwitchProps, ref: React.Ref<HTMLButtonElement>) {\n const { label, onChange, ...otherProps } = props;\n\n const className = cn(\n 'group h-5 w-9 flex flex-shrink-0 rounded-full inline-flex',\n {\n 'mr-2': !!label,\n 'bg-grey-darker hover:bg-grey-dark aria-checked:bg-blue aria-checked:hover:bg-blue-light focus:yt-focus':\n !props.disabled,\n 'bg-grey-light cursor-not-allowed aria-checked:bg-blue-light': props.disabled,\n },\n props.className\n );\n\n const element = (\n <PrimitiveSwitch.Root {...otherProps} className={className} onCheckedChange={onChange} ref={ref}>\n <PrimitiveSwitch.Thumb className=\"'will-change-transform group-aria-checked:translate-x-[1.1rem] mt-0.5 h-4 w-4 translate-x-[0.15rem] rounded-full bg-white transition-transform group-disabled:opacity-50\" />\n </PrimitiveSwitch.Root>\n );\n\n if (label) {\n const labelClassName = cn('flex self-start cursor-pointer', {\n 'cursor-not-allowed text-grey-dark': props.disabled,\n });\n\n return (\n <label className={labelClassName}>\n {element}\n {label}\n </label>\n );\n }\n\n return element;\n});\n"],"names":["Switch","React","props","ref","label","onChange","otherProps","className","cn","disabled","element","PrimitiveSwitch","onCheckedChange","labelClassName"],"mappings":";;;;MA4BaA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAM,CAACE,KAAkB,EAAEC,GAAiC;EACxG,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EAEhD,MAAMK,SAAS,GAAGC,EAAE,CAChB,2DAA2D,EAC3D;IACI,MAAM,EAAE,CAAC,CAACJ,KAAK;IACf,wGAAwG,EACpG,CAACF,KAAK,CAACO,QAAQ;IACnB,6DAA6D,EAAEP,KAAK,CAACO;GACxE,EACDP,KAAK,CAACK,SAAS,CAClB;EAED,MAAMG,OAAO,gBACTT,cAACU,IAAoB,oBAAKL,UAAU;IAAEC,SAAS,EAAEA,SAAS;IAAEK,eAAe,EAAEP,QAAQ;IAAEF,GAAG,EAAEA;mBACxFF,cAACU,KAAqB;IAACJ,SAAS,EAAC;IAA6K,CAErN;EAED,IAAIH,KAAK,EAAE;IACP,MAAMS,cAAc,GAAGL,EAAE,CAAC,gCAAgC,EAAE;MACxD,mCAAmC,EAAEN,KAAK,CAACO;KAC9C,CAAC;IAEF,oBACIR;MAAOM,SAAS,EAAEM;OACbH,OAAO,EACPN,KAAK,CACF;;EAIhB,OAAOM,OAAO;AAClB,CAAC;;;;"}
1
+ {"version":3,"file":"Switch.js","sources":["../../../../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport * as PrimitiveSwitch from '@radix-ui/react-switch';\r\n\r\ntype SwitchBaseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onChange'> & {\r\n /** Label for the switch */\r\n label?: React.ReactNode;\r\n /* Whether user input is required */\r\n required?: boolean;\r\n};\r\n\r\ninterface UncontrolledSwitchProps extends SwitchBaseProps {\r\n checked?: never;\r\n onChange?: never;\r\n /* The default checked state (uncontrolled) */\r\n defaultChecked?: boolean;\r\n}\r\n\r\ninterface ControlledSwitchProps extends SwitchBaseProps {\r\n defaultChecked?: never;\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) => void;\r\n}\r\n\r\nexport type SwitchProps = UncontrolledSwitchProps | ControlledSwitchProps;\r\n\r\nexport const Switch = React.forwardRef(function Switch(props: SwitchProps, ref: React.Ref<HTMLButtonElement>) {\r\n const { label, onChange, ...otherProps } = props;\r\n\r\n const className = cn(\r\n 'group h-5 w-9 flex flex-shrink-0 rounded-full inline-flex',\r\n {\r\n 'mr-2': !!label,\r\n 'bg-grey-darker hover:bg-grey-dark aria-checked:bg-blue aria-checked:hover:bg-blue-light focus:yt-focus':\r\n !props.disabled,\r\n 'bg-grey-light cursor-not-allowed aria-checked:bg-blue-light': props.disabled,\r\n },\r\n props.className\r\n );\r\n\r\n const element = (\r\n <PrimitiveSwitch.Root {...otherProps} className={className} onCheckedChange={onChange} ref={ref}>\r\n <PrimitiveSwitch.Thumb className=\"'will-change-transform group-aria-checked:translate-x-[1.1rem] mt-0.5 h-4 w-4 translate-x-[0.15rem] rounded-full bg-white transition-transform group-disabled:opacity-50\" />\r\n </PrimitiveSwitch.Root>\r\n );\r\n\r\n if (label) {\r\n const labelClassName = cn('flex self-start cursor-pointer', {\r\n 'cursor-not-allowed text-grey-dark': props.disabled,\r\n });\r\n\r\n return (\r\n <label className={labelClassName}>\r\n {element}\r\n {label}\r\n </label>\r\n );\r\n }\r\n\r\n return element;\r\n});\r\n"],"names":["Switch","React","props","ref","label","onChange","otherProps","className","cn","disabled","element","PrimitiveSwitch","onCheckedChange","labelClassName"],"mappings":";;;;MA4BaA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAM,CAACE,KAAkB,EAAEC,GAAiC;EACxG,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EAEhD,MAAMK,SAAS,GAAGC,EAAE,CAChB,2DAA2D,EAC3D;IACI,MAAM,EAAE,CAAC,CAACJ,KAAK;IACf,wGAAwG,EACpG,CAACF,KAAK,CAACO,QAAQ;IACnB,6DAA6D,EAAEP,KAAK,CAACO;GACxE,EACDP,KAAK,CAACK,SAAS,CAClB;EAED,MAAMG,OAAO,gBACTT,cAACU,IAAoB,oBAAKL,UAAU;IAAEC,SAAS,EAAEA,SAAS;IAAEK,eAAe,EAAEP,QAAQ;IAAEF,GAAG,EAAEA;mBACxFF,cAACU,KAAqB;IAACJ,SAAS,EAAC;IAA6K,CAErN;EAED,IAAIH,KAAK,EAAE;IACP,MAAMS,cAAc,GAAGL,EAAE,CAAC,gCAAgC,EAAE;MACxD,mCAAmC,EAAEN,KAAK,CAACO;KAC9C,CAAC;IAEF,oBACIR;MAAOM,SAAS,EAAEM;OACbH,OAAO,EACPN,KAAK,CACF;;EAIhB,OAAOM,OAAO;AAClB,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.js","sources":["../../../../../../../../src/components/Table/components/BaseTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { HeaderGroup } from 'react-table';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { InternalBaseTable } from '../types';\nimport './Table.css';\nimport { Column } from '../util/renderColumn';\n\nexport const DefaultEmptyState = (): React.ReactNode => null;\n\nexport const BaseTable = React.forwardRef(function BaseTable(props: InternalBaseTable, ref: React.Ref<HTMLDivElement>) {\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const { autoFocus, children, disableSorting: _, headerGroups, headerRef, bodyRef, ...otherProps } = props;\n\n React.useEffect(() => {\n if (autoFocus && tableRef.current) {\n tableRef.current.focus();\n }\n }, []);\n\n const className = cn('yt-table flex flex-col focus:yt-focus focus:rounded-sm', props.className);\n\n return (\n <div {...otherProps} role=\"table\" className={className} ref={tableRef}>\n <div role=\"rowgroup\" className=\"yt-table__head\" ref={headerRef}>\n {headerGroups?.map((headerGroup: HeaderGroup<object>, index: number) => (\n <div\n key={index}\n role=\"row\"\n className=\"border-grey-light flex h-auto min-h-[2.5rem] w-full select-none border-t-0 border-b-2 font-bold\">\n {headerGroup.headers.map((cell: any, index: number) => (\n <Column key={index} index={index} cell={cell} />\n ))}\n </div>\n ))}\n </div>\n\n <div role=\"rowgroup\" className=\"yt-table__body\" ref={bodyRef}>\n {children}\n </div>\n </div>\n );\n});\n"],"names":["DefaultEmptyState","BaseTable","React","forwardRef","props","ref","tableRef","useMergedRef","autoFocus","children","disableSorting","_","headerGroups","headerRef","bodyRef","otherProps","useEffect","current","focus","className","cn","role","map","headerGroup","index","key","headers","cell","Column"],"mappings":";;;;;MAQaA,iBAAiB,GAAG,MAAuB;MAE3CC,SAAS,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,SAAS,CAACG,KAAwB,EAAEC,GAA8B;EACjH,MAAMC,QAAQ,GAAGC,YAAY,CAAiBF,GAAG,CAAC;EAClD,MAAM;IAAEG,SAAS;IAAEC,QAAQ;IAAEC,cAAc,EAAEC,CAAC;IAAEC,YAAY;IAAEC,SAAS;IAAEC,OAAO;IAAE,GAAGC;GAAY,GAAGX,KAAK;EAEzGF,cAAK,CAACc,SAAS,CAAC;IACZ,IAAIR,SAAS,IAAIF,QAAQ,CAACW,OAAO,EAAE;MAC/BX,QAAQ,CAACW,OAAO,CAACC,KAAK,EAAE;;GAE/B,EAAE,EAAE,CAAC;EAEN,MAAMC,SAAS,GAAGC,EAAE,CAAC,wDAAwD,EAAEhB,KAAK,CAACe,SAAS,CAAC;EAE/F,oBACIjB,sDAASa,UAAU;IAAEM,IAAI,EAAC,OAAO;IAACF,SAAS,EAAEA,SAAS;IAAEd,GAAG,EAAEC;mBACzDJ;IAAKmB,IAAI,EAAC,UAAU;IAACF,SAAS,EAAC,gBAAgB;IAACd,GAAG,EAAEQ;KAChDD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,GAAG,CAAC,CAACC,WAAgC,EAAEC,KAAa,kBAC/DtB;IACIuB,GAAG,EAAED,KAAK;IACVH,IAAI,EAAC,KAAK;IACVF,SAAS,EAAC;KACTI,WAAW,CAACG,OAAO,CAACJ,GAAG,CAAC,CAACK,IAAS,EAAEH,KAAa,kBAC9CtB,6BAAC0B,MAAM;IAACH,GAAG,EAAED,KAAK;IAAEA,KAAK,EAAEA,KAAK;IAAEG,IAAI,EAAEA;IAC3C,CAAC,CAET,CAAC,CACA,eAENzB;IAAKmB,IAAI,EAAC,UAAU;IAACF,SAAS,EAAC,gBAAgB;IAACd,GAAG,EAAES;KAChDL,QAAQ,CACP,CACJ;AAEd,CAAC;;;;"}
1
+ {"version":3,"file":"BaseTable.js","sources":["../../../../../../../../src/components/Table/components/BaseTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { HeaderGroup } from 'react-table';\r\nimport { useMergedRef } from '../../../hooks/useMergedRef';\r\nimport { InternalBaseTable } from '../types';\r\nimport './Table.css';\r\nimport { Column } from '../util/renderColumn';\r\n\r\nexport const DefaultEmptyState = (): React.ReactNode => null;\r\n\r\nexport const BaseTable = React.forwardRef(function BaseTable(props: InternalBaseTable, ref: React.Ref<HTMLDivElement>) {\r\n const tableRef = useMergedRef<HTMLDivElement>(ref);\r\n const { autoFocus, children, disableSorting: _, headerGroups, headerRef, bodyRef, ...otherProps } = props;\r\n\r\n React.useEffect(() => {\r\n if (autoFocus && tableRef.current) {\r\n tableRef.current.focus();\r\n }\r\n }, []);\r\n\r\n const className = cn('yt-table flex flex-col focus:yt-focus focus:rounded-sm', props.className);\r\n\r\n return (\r\n <div {...otherProps} role=\"table\" className={className} ref={tableRef}>\r\n <div role=\"rowgroup\" className=\"yt-table__head\" ref={headerRef}>\r\n {headerGroups?.map((headerGroup: HeaderGroup<object>, index: number) => (\r\n <div\r\n key={index}\r\n role=\"row\"\r\n className=\"border-grey-light flex h-auto min-h-[2.5rem] w-full select-none border-t-0 border-b-2 font-bold\">\r\n {headerGroup.headers.map((cell: any, index: number) => (\r\n <Column key={index} index={index} cell={cell} />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <div role=\"rowgroup\" className=\"yt-table__body\" ref={bodyRef}>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n});\r\n"],"names":["DefaultEmptyState","BaseTable","React","forwardRef","props","ref","tableRef","useMergedRef","autoFocus","children","disableSorting","_","headerGroups","headerRef","bodyRef","otherProps","useEffect","current","focus","className","cn","role","map","headerGroup","index","key","headers","cell","Column"],"mappings":";;;;;MAQaA,iBAAiB,GAAG,MAAuB;MAE3CC,SAAS,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,SAAS,CAACG,KAAwB,EAAEC,GAA8B;EACjH,MAAMC,QAAQ,GAAGC,YAAY,CAAiBF,GAAG,CAAC;EAClD,MAAM;IAAEG,SAAS;IAAEC,QAAQ;IAAEC,cAAc,EAAEC,CAAC;IAAEC,YAAY;IAAEC,SAAS;IAAEC,OAAO;IAAE,GAAGC;GAAY,GAAGX,KAAK;EAEzGF,cAAK,CAACc,SAAS,CAAC;IACZ,IAAIR,SAAS,IAAIF,QAAQ,CAACW,OAAO,EAAE;MAC/BX,QAAQ,CAACW,OAAO,CAACC,KAAK,EAAE;;GAE/B,EAAE,EAAE,CAAC;EAEN,MAAMC,SAAS,GAAGC,EAAE,CAAC,wDAAwD,EAAEhB,KAAK,CAACe,SAAS,CAAC;EAE/F,oBACIjB,sDAASa,UAAU;IAAEM,IAAI,EAAC,OAAO;IAACF,SAAS,EAAEA,SAAS;IAAEd,GAAG,EAAEC;mBACzDJ;IAAKmB,IAAI,EAAC,UAAU;IAACF,SAAS,EAAC,gBAAgB;IAACd,GAAG,EAAEQ;KAChDD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,GAAG,CAAC,CAACC,WAAgC,EAAEC,KAAa,kBAC/DtB;IACIuB,GAAG,EAAED,KAAK;IACVH,IAAI,EAAC,KAAK;IACVF,SAAS,EAAC;KACTI,WAAW,CAACG,OAAO,CAACJ,GAAG,CAAC,CAACK,IAAS,EAAEH,KAAa,kBAC9CtB,6BAAC0B,MAAM;IAACH,GAAG,EAAED,KAAK;IAAEA,KAAK,EAAEA,KAAK;IAAEG,IAAI,EAAEA;IAC3C,CAAC,CAET,CAAC,CACA,eAENzB;IAAKmB,IAAI,EAAC,UAAU;IAACF,SAAS,EAAC,gBAAgB;IAACd,GAAG,EAAES;KAChDL,QAAQ,CACP,CACJ;AAEd,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { TableProps, InternalTableRow, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { Pagination } from '../../Pagination/Pagination';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\n\nexport const Table = React.forwardRef(function Table<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\n\n let paginationElement;\n\n if (pagination) {\n paginationElement = (\n <Pagination\n className=\"my-4 w-full\"\n length={pagination.length}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n setPageIndex={pagination.setPageIndex}\n setPageSize={pagination.setPageSize}\n showPageControls={pagination.length > pagination.pageSize}\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\n />\n );\n }\n\n return (\n <>\n {paginationElement}\n <BaseTable {...tableProps} ref={tableRef}>\n {rows.length\n ? rows.map((row: InternalTableRow, index: number) => {\n prepareRow(row, index);\n return (\n <Row\n {...rowProps}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n />\n );\n })\n : emptyStateRenderer()}\n </BaseTable>\n {paginationElement}\n </>\n );\n}) as ForwardedGenericTableWithStatics;\n\nTable.Column = () => null;\nTable.Group = () => null;\n"],"names":["Table","React","forwardRef","props","ref","emptyStateRenderer","DefaultEmptyState","otherProps","tableRef","useMergedRef","rowProps","tableProps","rows","prepareRow","pagination","instance","useTable","paginationElement","Pagination","className","length","pageIndex","pageSize","setPageIndex","setPageSize","showPageControls","dangerouslyHijackGlobalKeyboardNavigation","BaseTable","map","row","index","Row","key","headerGroups","Column","Group"],"mappings":";;;;;;;MASaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,KAAK,CAChDG,KAAoD,EACpDC,GAAwB;EAExB,MAAM;IAAEC,kBAAkB,GAAGC,iBAAiB;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACvE,MAAMK,QAAQ,GAAQC,YAAY,CAAiBL,GAAG,CAAC;EACvD,MAAM;IAAEM,QAAQ;IAAEC,UAAU;IAAEC,IAAI;IAAEC,UAAU;IAAEC,UAAU;IAAEC;GAAU,GAAGC,QAAQ,CAACT,UAAU,EAAEC,QAAQ,CAAC;EAEvG,IAAIS,iBAAiB;EAErB,IAAIH,UAAU,EAAE;IACZG,iBAAiB,gBACbhB,6BAACiB,UAAU;MACPC,SAAS,EAAC,aAAa;MACvBC,MAAM,EAAEN,UAAU,CAACM,MAAM;MACzBC,SAAS,EAAEP,UAAU,CAACO,SAAS;MAC/BC,QAAQ,EAAER,UAAU,CAACQ,QAAQ;MAC7BC,YAAY,EAAET,UAAU,CAACS,YAAY;MACrCC,WAAW,EAAEV,UAAU,CAACU,WAAW;MACnCC,gBAAgB,EAAEX,UAAU,CAACM,MAAM,GAAGN,UAAU,CAACQ,QAAQ;MACzDI,yCAAyC,EAAEvB,KAAK,CAACuB;MAExD;;EAGL,oBACIzB,4DACKgB,iBAAiB,eAClBhB,6BAAC0B,SAAS,oBAAKhB,UAAU;IAAEP,GAAG,EAAEI;MAC3BI,IAAI,CAACQ,MAAM,GACNR,IAAI,CAACgB,GAAG,CAAC,CAACC,GAAqB,EAAEC,KAAa;IAC1CjB,UAAU,CAACgB,GAAG,EAAEC,KAAK,CAAC;IACtB,oBACI7B,6BAAC8B,GAAG,oBACIrB,QAAQ;MACZsB,GAAG,EAAEF,KAAK;MACVA,KAAK,EAAEA,KAAK;MACZD,GAAG,EAAEA,GAAG;MACRd,QAAQ,EAAEA,QAAQ;MAClBkB,YAAY,EAAEtB,UAAU,CAACsB;OAC3B;GAET,CAAC,GACF5B,kBAAkB,EAAE,CAClB,EACXY,iBAAiB,CACnB;AAEX,CAAC;AAEDjB,KAAK,CAACkC,MAAM,GAAG,MAAM,IAAI;AACzBlC,KAAK,CAACmC,KAAK,GAAG,MAAM,IAAI;;;;"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PluginHook } from 'react-table';\r\nimport { TableProps, InternalTableRow, ForwardedGenericTableWithStatics, TableRef } from '../types';\r\nimport { useTable } from '../hooks/useTable';\r\nimport { Pagination } from '../../Pagination/Pagination';\r\nimport { useMergedRef } from '../../../hooks/useMergedRef';\r\nimport { Row } from '../util/renderRow';\r\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\r\n\r\nexport const Table = React.forwardRef(function Table<T>(\r\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\r\n ref: React.Ref<TableRef>\r\n) {\r\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\r\n const tableRef: any = useMergedRef<HTMLDivElement>(ref);\r\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\r\n\r\n let paginationElement;\r\n\r\n if (pagination) {\r\n paginationElement = (\r\n <Pagination\r\n className=\"my-4 w-full\"\r\n length={pagination.length}\r\n pageIndex={pagination.pageIndex}\r\n pageSize={pagination.pageSize}\r\n setPageIndex={pagination.setPageIndex}\r\n setPageSize={pagination.setPageSize}\r\n showPageControls={pagination.length > pagination.pageSize}\r\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {paginationElement}\r\n <BaseTable {...tableProps} ref={tableRef}>\r\n {rows.length\r\n ? rows.map((row: InternalTableRow, index: number) => {\r\n prepareRow(row, index);\r\n return (\r\n <Row\r\n {...rowProps}\r\n key={index}\r\n index={index}\r\n row={row}\r\n instance={instance}\r\n headerGroups={tableProps.headerGroups}\r\n />\r\n );\r\n })\r\n : emptyStateRenderer()}\r\n </BaseTable>\r\n {paginationElement}\r\n </>\r\n );\r\n}) as ForwardedGenericTableWithStatics;\r\n\r\nTable.Column = () => null;\r\nTable.Group = () => null;\r\n"],"names":["Table","React","forwardRef","props","ref","emptyStateRenderer","DefaultEmptyState","otherProps","tableRef","useMergedRef","rowProps","tableProps","rows","prepareRow","pagination","instance","useTable","paginationElement","Pagination","className","length","pageIndex","pageSize","setPageIndex","setPageSize","showPageControls","dangerouslyHijackGlobalKeyboardNavigation","BaseTable","map","row","index","Row","key","headerGroups","Column","Group"],"mappings":";;;;;;;MASaA,KAAK,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,KAAK,CAChDG,KAAoD,EACpDC,GAAwB;EAExB,MAAM;IAAEC,kBAAkB,GAAGC,iBAAiB;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACvE,MAAMK,QAAQ,GAAQC,YAAY,CAAiBL,GAAG,CAAC;EACvD,MAAM;IAAEM,QAAQ;IAAEC,UAAU;IAAEC,IAAI;IAAEC,UAAU;IAAEC,UAAU;IAAEC;GAAU,GAAGC,QAAQ,CAACT,UAAU,EAAEC,QAAQ,CAAC;EAEvG,IAAIS,iBAAiB;EAErB,IAAIH,UAAU,EAAE;IACZG,iBAAiB,gBACbhB,6BAACiB,UAAU;MACPC,SAAS,EAAC,aAAa;MACvBC,MAAM,EAAEN,UAAU,CAACM,MAAM;MACzBC,SAAS,EAAEP,UAAU,CAACO,SAAS;MAC/BC,QAAQ,EAAER,UAAU,CAACQ,QAAQ;MAC7BC,YAAY,EAAET,UAAU,CAACS,YAAY;MACrCC,WAAW,EAAEV,UAAU,CAACU,WAAW;MACnCC,gBAAgB,EAAEX,UAAU,CAACM,MAAM,GAAGN,UAAU,CAACQ,QAAQ;MACzDI,yCAAyC,EAAEvB,KAAK,CAACuB;MAExD;;EAGL,oBACIzB,4DACKgB,iBAAiB,eAClBhB,6BAAC0B,SAAS,oBAAKhB,UAAU;IAAEP,GAAG,EAAEI;MAC3BI,IAAI,CAACQ,MAAM,GACNR,IAAI,CAACgB,GAAG,CAAC,CAACC,GAAqB,EAAEC,KAAa;IAC1CjB,UAAU,CAACgB,GAAG,EAAEC,KAAK,CAAC;IACtB,oBACI7B,6BAAC8B,GAAG,oBACIrB,QAAQ;MACZsB,GAAG,EAAEF,KAAK;MACVA,KAAK,EAAEA,KAAK;MACZD,GAAG,EAAEA,GAAG;MACRd,QAAQ,EAAEA,QAAQ;MAClBkB,YAAY,EAAEtB,UAAU,CAACsB;OAC3B;GAET,CAAC,GACF5B,kBAAkB,EAAE,CAClB,EACXY,iBAAiB,CACnB;AAEX,CAAC;AAEDjB,KAAK,CAACkC,MAAM,GAAG,MAAM,IAAI;AACzBlC,KAAK,CAACmC,KAAK,GAAG,MAAM,IAAI;;;;"}