@economic/taco 1.1.3 → 1.1.5-alpha.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 (405) hide show
  1. package/README.md +82 -82
  2. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  4. package/dist/esm/components/Badge/Badge.js.map +1 -1
  5. package/dist/esm/components/Banner/Banner.js.map +1 -1
  6. package/dist/esm/components/Banner/util.js +1 -1
  7. package/dist/esm/components/Banner/util.js.map +1 -1
  8. package/dist/esm/components/Button/Button.js.map +1 -1
  9. package/dist/esm/components/Button/util.js +18 -23
  10. package/dist/esm/components/Button/util.js.map +1 -1
  11. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  12. package/dist/esm/components/Card/Card.js +14 -12
  13. package/dist/esm/components/Card/Card.js.map +1 -1
  14. package/dist/esm/components/Checkbox/Checkbox.js +15 -18
  15. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  16. package/dist/esm/components/Combobox/Combobox.js +23 -25
  17. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  18. package/dist/esm/components/Combobox/useCombobox.js +67 -87
  19. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  20. package/dist/esm/components/Datepicker/Datepicker.js +48 -52
  21. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  22. package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
  23. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  24. package/dist/esm/components/Dialog/Context.js +4 -4
  25. package/dist/esm/components/Dialog/Context.js.map +1 -1
  26. package/dist/esm/components/Dialog/Dialog.js +39 -58
  27. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  28. package/dist/esm/components/Dialog/components/Content.js +39 -44
  29. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  30. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  31. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  32. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  33. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  34. package/dist/esm/components/Dialog/components/Trigger.js +2 -2
  35. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  36. package/dist/esm/components/Field/Field.js +10 -12
  37. package/dist/esm/components/Field/Field.js.map +1 -1
  38. package/dist/esm/components/Form/Form.js +6 -8
  39. package/dist/esm/components/Form/Form.js.map +1 -1
  40. package/dist/esm/components/Group/Group.js +6 -8
  41. package/dist/esm/components/Group/Group.js.map +1 -1
  42. package/dist/esm/components/Hanger/Hanger.js +27 -35
  43. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  44. package/dist/esm/components/HoverCard/HoverCard.js +8 -9
  45. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  46. package/dist/esm/components/Icon/Icon.js +7 -8
  47. package/dist/esm/components/Icon/Icon.js.map +1 -1
  48. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  49. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  50. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  51. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  52. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  53. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  54. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  55. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  56. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  57. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  58. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  59. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  60. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  61. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  62. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  63. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  64. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  65. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  66. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  67. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  68. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  69. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  70. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  71. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  72. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  73. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  74. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  75. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  76. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  77. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  78. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  79. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  80. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  81. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  82. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  83. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  84. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  85. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  86. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -1
  87. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -1
  88. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -1
  89. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -1
  90. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  91. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  92. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  93. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  94. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  95. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  96. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  97. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  98. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  99. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  100. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  101. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  102. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  103. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  104. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  105. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  106. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  107. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  108. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  109. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  110. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  111. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  112. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  113. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  114. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  115. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  116. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  117. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  118. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  119. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  120. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  121. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  122. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  123. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  124. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  125. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  126. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  127. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  128. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  129. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  130. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  131. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  132. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  133. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  134. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  135. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  136. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  137. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  138. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  139. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  140. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  141. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  142. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  143. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  144. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  145. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  146. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  147. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  148. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  149. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  150. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  151. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  152. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  153. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  154. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  155. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  156. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  157. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  158. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  159. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  160. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  161. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  162. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  163. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  164. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  165. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  166. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  167. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  168. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  169. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  170. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  171. package/dist/esm/components/Icon/components/List.js.map +1 -1
  172. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  173. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  174. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  175. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  176. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  177. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  178. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  179. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  180. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  181. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  182. package/dist/esm/components/Icon/components/More.js.map +1 -1
  183. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  184. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  185. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  186. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  187. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  188. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  189. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  190. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  191. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  192. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  193. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  194. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  195. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  196. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  197. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  198. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  199. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  200. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  201. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  202. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  203. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  204. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  205. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  206. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  207. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  208. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  209. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  210. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  211. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  212. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  213. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  214. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  216. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  217. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  218. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  219. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  220. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  221. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  222. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  223. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  224. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  225. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  226. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  227. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  229. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  230. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  231. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  232. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  233. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  234. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  235. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  236. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  237. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  238. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  239. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  240. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  241. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  242. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  243. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  244. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  245. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  246. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  247. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  248. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  249. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  250. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  251. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  252. package/dist/esm/components/Icon/components/index.js +4 -4
  253. package/dist/esm/components/Icon/components/index.js.map +1 -1
  254. package/dist/esm/components/IconButton/IconButton.js +9 -11
  255. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  256. package/dist/esm/components/Input/Input.js +25 -25
  257. package/dist/esm/components/Input/Input.js.map +1 -1
  258. package/dist/esm/components/Input/util.js +2 -2
  259. package/dist/esm/components/Input/util.js.map +1 -1
  260. package/dist/esm/components/Listbox/Listbox.js +24 -25
  261. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  262. package/dist/esm/components/Listbox/ScrollableList.js +64 -83
  263. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  264. package/dist/esm/components/Listbox/useListbox.js +51 -60
  265. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  266. package/dist/esm/components/Listbox/useMultiListbox.js +64 -91
  267. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  268. package/dist/esm/components/Listbox/useTypeahead.js +10 -9
  269. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  270. package/dist/esm/components/Listbox/util.js +48 -85
  271. package/dist/esm/components/Listbox/util.js.map +1 -1
  272. package/dist/esm/components/Menu/Context.js +2 -2
  273. package/dist/esm/components/Menu/Context.js.map +1 -1
  274. package/dist/esm/components/Menu/Menu.js +16 -34
  275. package/dist/esm/components/Menu/Menu.js.map +1 -1
  276. package/dist/esm/components/Menu/components/Checkbox.js +8 -9
  277. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  278. package/dist/esm/components/Menu/components/Content.js +9 -11
  279. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  280. package/dist/esm/components/Menu/components/Header.js +3 -3
  281. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  282. package/dist/esm/components/Menu/components/Item.js +30 -31
  283. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  284. package/dist/esm/components/Menu/components/Link.js +10 -11
  285. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  286. package/dist/esm/components/Menu/components/RadioGroup.js +16 -18
  287. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  288. package/dist/esm/components/Menu/components/Separator.js +1 -1
  289. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  290. package/dist/esm/components/Menu/components/Trigger.js +4 -4
  291. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  292. package/dist/esm/components/Navigation/Navigation.js +35 -44
  293. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  294. package/dist/esm/components/Pagination/PageNumbers.js +23 -28
  295. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  296. package/dist/esm/components/Pagination/Pagination.js +39 -56
  297. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  298. package/dist/esm/components/Pagination/usePagination.js +7 -21
  299. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  300. package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
  301. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  302. package/dist/esm/components/Popover/Popover.js +29 -34
  303. package/dist/esm/components/Popover/Popover.js.map +1 -1
  304. package/dist/esm/components/Popover/Primitives.js +7 -8
  305. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  306. package/dist/esm/components/Progress/Progress.js +11 -15
  307. package/dist/esm/components/Progress/Progress.js.map +1 -1
  308. package/dist/esm/components/Provider/Provider.js +13 -18
  309. package/dist/esm/components/Provider/Provider.js.map +1 -1
  310. package/dist/esm/components/RadioGroup/RadioGroup.js +45 -57
  311. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  312. package/dist/esm/components/SearchInput/SearchInput.js +12 -12
  313. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  314. package/dist/esm/components/Select/Select.js +30 -31
  315. package/dist/esm/components/Select/Select.js.map +1 -1
  316. package/dist/esm/components/Select/useSelect.js +63 -81
  317. package/dist/esm/components/Select/useSelect.js.map +1 -1
  318. package/dist/esm/components/Spinner/Spinner.js +12 -19
  319. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  320. package/dist/esm/components/Switch/Switch.js +9 -10
  321. package/dist/esm/components/Switch/Switch.js.map +1 -1
  322. package/dist/esm/components/Table/components/BaseTable.js +23 -30
  323. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  324. package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
  325. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  326. package/dist/esm/components/Table/components/Table.js +18 -25
  327. package/dist/esm/components/Table/components/Table.js.map +1 -1
  328. package/dist/esm/components/Table/components/WindowedTable.js +89 -109
  329. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  330. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
  331. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  332. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
  333. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  334. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
  335. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  336. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +79 -89
  337. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  338. package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
  339. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  340. package/dist/esm/components/Table/hooks/useTable.js +119 -141
  341. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  342. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +13 -16
  343. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  344. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  345. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  346. package/dist/esm/components/Table/util/renderRow.js +37 -46
  347. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  348. package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
  349. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  350. package/dist/esm/components/Table/util/sortTypes.js +23 -31
  351. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  352. package/dist/esm/components/Table/util.js +29 -41
  353. package/dist/esm/components/Table/util.js.map +1 -1
  354. package/dist/esm/components/Tabs/Tabs.js +25 -27
  355. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  356. package/dist/esm/components/Textarea/Textarea.js +11 -9
  357. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  358. package/dist/esm/components/Toast/Toast.js +20 -21
  359. package/dist/esm/components/Toast/Toast.js.map +1 -1
  360. package/dist/esm/components/Toast/Toaster.js +88 -118
  361. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  362. package/dist/esm/components/Toast/util.js +2 -2
  363. package/dist/esm/components/Toast/util.js.map +1 -1
  364. package/dist/esm/components/Tooltip/Tooltip.js +7 -8
  365. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  366. package/dist/esm/components/Tour/Tour.js +44 -50
  367. package/dist/esm/components/Tour/Tour.js.map +1 -1
  368. package/dist/esm/components/Treeview/Treeview.js +26 -36
  369. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  370. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  371. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  372. package/dist/esm/index.css +661 -661
  373. package/dist/esm/index.js +2 -1
  374. package/dist/esm/index.js.map +1 -1
  375. package/dist/esm/primitives/Button.js +9 -13
  376. package/dist/esm/primitives/Button.js.map +1 -1
  377. package/dist/esm/utils/date.js.map +1 -1
  378. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  379. package/dist/esm/utils/hooks/useDraggable.js +16 -17
  380. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  381. package/dist/esm/utils/hooks/useDropTarget.js +7 -10
  382. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  383. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  384. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  385. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  386. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  387. package/dist/esm/utils/hooks/useTimer.js +9 -17
  388. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  389. package/dist/esm/utils/input.js +7 -11
  390. package/dist/esm/utils/input.js.map +1 -1
  391. package/dist/esm/utils/mergeRefs.js +2 -2
  392. package/dist/esm/utils/mergeRefs.js.map +1 -1
  393. package/dist/esm/utils/taillwind.js +2 -2
  394. package/dist/esm/utils/taillwind.js.map +1 -1
  395. package/dist/index.css +661 -661
  396. package/dist/index.d.ts +1 -0
  397. package/dist/taco.cjs.development.js +2115 -2585
  398. package/dist/taco.cjs.development.js.map +1 -1
  399. package/dist/taco.cjs.production.min.js +1 -1
  400. package/dist/taco.cjs.production.min.js.map +1 -1
  401. package/dist/utils/tailwind.d.ts +1 -1
  402. package/package.json +4 -5
  403. package/plugins/tailwindcss-aria-attributes.js +73 -73
  404. package/tailwind.config.js +260 -255
  405. package/types.json +2603 -7007
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../../src/components/SearchInput/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport { Input, InputProps, useLocalization, IconButton } from '../..';\n\nexport type SearchInputTexts = {\n /**\n * aria-label text for input\n */\n inputLabel: string;\n};\n\nexport type SearchInputProps = Omit<InputProps, 'icon'> & {\n /** Current input value will be passed to the method. In order to get the value, the component must be controlled otherwise value will always be undefined */\n onSearch?: (value: string | number | readonly string[] | undefined) => void;\n};\n\nexport const SearchInput = React.forwardRef(function SearchInput(\n { onSearch, ...props }: SearchInputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const { texts } = useLocalization();\n\n const handleClick = (): void => {\n if (!props.disabled) {\n onSearch?.(props.value);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n const isEnterKeyPressed = event.keyCode === keycode('enter');\n\n if (isEnterKeyPressed) {\n handleClick();\n }\n\n props.onKeyDown?.(event);\n };\n\n return (\n <Input\n aria-label={texts.searchInput.inputLabel}\n {...props}\n button={\n <IconButton\n icon=\"search\"\n className=\"!border-transparent !bg-transparent focus:!border-transparent peer-focus:!border-transparent peer-focus:peer-active:!border-transparent\"\n disabled={props.disabled}\n onClick={handleClick}\n />\n }\n onKeyDown={handleKeyDown}\n ref={ref}\n type=\"search\"\n />\n );\n});\n"],"names":["SearchInput","React","ref","onSearch","props","useLocalization","texts","handleClick","disabled","value","handleKeyDown","event","isEnterKeyPressed","keyCode","keycode","onKeyDown","Input","searchInput","inputLabel","button","IconButton","icon","className","onClick","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBaA,WAAW,gBAAGC,UAAA,CAAiB,SAASD,WAAT,OAExCE,GAFwC;MACtCC,gBAAAA;MAAaC;;EAGf,uBAAkBC,eAAe,EAAjC;MAAQC,KAAR,oBAAQA,KAAR;;EAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAI,CAACH,KAAK,CAACI,QAAX,EAAqB;MACjBL,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGC,KAAK,CAACK,KAAT,CAAR;;GAFR;;EAMA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;;;IAClB,IAAMC,iBAAiB,GAAGD,KAAK,CAACE,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAAnD;;IAEA,IAAIF,iBAAJ,EAAuB;MACnBL,WAAW;;;IAGf,oBAAAH,KAAK,CAACW,SAAN,2EAAAX,KAAK,EAAaO,KAAb,CAAL;GAPJ;;EAUA,OACIV,aAAA,CAACe,KAAD;kBACgBV,KAAK,CAACW,WAAN,CAAkBC;KAC1Bd;IACJe,MAAM,EACFlB,aAAA,CAACmB,UAAD;MACIC,IAAI,EAAC;MACLC,SAAS,EAAC;MACVd,QAAQ,EAAEJ,KAAK,CAACI;MAChBe,OAAO,EAAEhB;KAJb;IAOJQ,SAAS,EAAEL;IACXR,GAAG,EAAEA;IACLsB,IAAI,EAAC;IAbT,CADJ;AAiBH,CAvC0B;;;;"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../../src/components/SearchInput/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport keycode from 'keycode';\r\nimport { Input, InputProps, useLocalization, IconButton } from '../..';\r\n\r\nexport type SearchInputTexts = {\r\n /**\r\n * aria-label text for input\r\n */\r\n inputLabel: string;\r\n};\r\n\r\nexport type SearchInputProps = Omit<InputProps, 'icon'> & {\r\n /** Current input value will be passed to the method. In order to get the value, the component must be controlled otherwise value will always be undefined */\r\n onSearch?: (value: string | number | readonly string[] | undefined) => void;\r\n};\r\n\r\nexport const SearchInput = React.forwardRef(function SearchInput(\r\n { onSearch, ...props }: SearchInputProps,\r\n ref: React.Ref<HTMLInputElement>\r\n) {\r\n const { texts } = useLocalization();\r\n\r\n const handleClick = (): void => {\r\n if (!props.disabled) {\r\n onSearch?.(props.value);\r\n }\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\r\n const isEnterKeyPressed = event.keyCode === keycode('enter');\r\n\r\n if (isEnterKeyPressed) {\r\n handleClick();\r\n }\r\n\r\n props.onKeyDown?.(event);\r\n };\r\n\r\n return (\r\n <Input\r\n aria-label={texts.searchInput.inputLabel}\r\n {...props}\r\n button={\r\n <IconButton\r\n icon=\"search\"\r\n className=\"!border-transparent !bg-transparent focus:!border-transparent peer-focus:!border-transparent peer-focus:peer-active:!border-transparent\"\r\n disabled={props.disabled}\r\n onClick={handleClick}\r\n />\r\n }\r\n onKeyDown={handleKeyDown}\r\n ref={ref}\r\n type=\"search\"\r\n />\r\n );\r\n});\r\n"],"names":["SearchInput","React","onSearch","props","ref","texts","useLocalization","handleClick","disabled","value","handleKeyDown","event","isEnterKeyPressed","keyCode","keycode","onKeyDown","Input","searchInput","inputLabel","button","IconButton","icon","className","onClick","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBaA,WAAW,gBAAGC,UAAA,CAAiB,SAASD,WAAT,CACxC;EAAEE,QAAF;EAAY,GAAGC;AAAf,CADwC,EAExCC,GAFwC;EAIxC,MAAM;IAAEC;MAAUC,eAAe,EAAjC;;EAEA,MAAMC,WAAW,GAAG;IAChB,IAAI,CAACJ,KAAK,CAACK,QAAX,EAAqB;MACjBN,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGC,KAAK,CAACM,KAAT,CAAR;;GAFR;;EAMA,MAAMC,aAAa,GAAIC,KAAD;;;IAClB,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAAnD;;IAEA,IAAIF,iBAAJ,EAAuB;MACnBL,WAAW;;;IAGf,oBAAAJ,KAAK,CAACY,SAAN,2EAAAZ,KAAK,EAAaQ,KAAb,CAAL;GAPJ;;EAUA,OACIV,aAAA,CAACe,KAAD;kBACgBX,KAAK,CAACY,WAAN,CAAkBC;KAC1Bf;IACJgB,MAAM,EACFlB,aAAA,CAACmB,UAAD;MACIC,IAAI,EAAC;MACLC,SAAS,EAAC;MACVd,QAAQ,EAAEL,KAAK,CAACK;MAChBe,OAAO,EAAEhB;KAJb;IAOJQ,SAAS,EAAEL;IACXN,GAAG,EAAEA;IACLoB,IAAI,EAAC;IAbT,CADJ;AAiBH,CAvC0B;;;;"}
@@ -1,4 +1,3 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { forwardRef, createElement, useRef, useEffect, Fragment } from 'react';
3
2
  import cn from 'classnames';
4
3
  import { Icon } from '../Icon/Icon.js';
@@ -10,54 +9,52 @@ import { Combobox } from '../Combobox/Combobox.js';
10
9
  import { MultiListbox, Listbox } from '../Listbox/Listbox.js';
11
10
  import { useSelect } from './useSelect.js';
12
11
 
13
- var _excluded = ["autoFocus", "className", "highlighted", "style"],
14
- _excluded2 = ["editable"];
15
- var BaseSelect = /*#__PURE__*/forwardRef(function BaseSelect(props, ref) {
16
- var autoFocus = props.autoFocus,
17
- externalClassName = props.className,
18
- style = props.style,
19
- otherProps = _objectWithoutPropertiesLoose(props, _excluded);
20
-
21
- var _useSelect = useSelect(otherProps, ref),
22
- button = _useSelect.button,
23
- listbox = _useSelect.listbox,
24
- popover = _useSelect.popover,
25
- input = _useSelect.input,
26
- text = _useSelect.text,
27
- _useSelect$more = _useSelect.more,
28
- more = _useSelect$more === void 0 ? 0 : _useSelect$more;
29
-
30
- var internalRef = useRef(null);
31
- var selectDimensions = useBoundingClientRectListener(internalRef);
32
- var className = cn('inline-flex relative w-full', {
12
+ const BaseSelect = /*#__PURE__*/forwardRef(function BaseSelect(props, ref) {
13
+ const {
14
+ autoFocus,
15
+ className: externalClassName,
16
+ highlighted,
17
+ style,
18
+ ...otherProps
19
+ } = props;
20
+ const {
21
+ button,
22
+ listbox,
23
+ popover,
24
+ input,
25
+ text,
26
+ more = 0
27
+ } = useSelect(otherProps, ref);
28
+ const internalRef = useRef(null);
29
+ const selectDimensions = useBoundingClientRectListener(internalRef);
30
+ const className = cn('inline-flex relative w-full', {
33
31
  'yt-select--readonly': props.readOnly
34
32
  }, externalClassName);
35
- var inputClassname = cn(getInputClasses(props), 'h-8 text-left pr-0', {
33
+ const inputClassname = cn(getInputClasses(props), 'h-8 text-left pr-0', {
36
34
  'border-blue': popover.open
37
35
  });
38
- useEffect(function () {
36
+ useEffect(() => {
39
37
  if (autoFocus && internalRef.current) {
40
38
  internalRef.current.focus();
41
39
  }
42
40
  }, []);
43
41
 
44
- var renderMultiSelection = function renderMultiSelection() {
42
+ const renderMultiSelection = () => {
45
43
  return createElement(Fragment, null, createElement("span", {
46
44
  className: "flex-grow truncate text-left"
47
45
  }, text), more > 0 && createElement(Badge, {
48
46
  className: "ml-2"
49
- }, "+" + more));
47
+ }, `+${more}`));
50
48
  };
51
49
 
52
- var commonListboxProps = _extends({}, listbox, {
50
+ const commonListboxProps = { ...listbox,
53
51
  className: 'w-auto',
54
52
  invalid: undefined,
55
53
  style: {
56
54
  minWidth: selectDimensions === null || selectDimensions === void 0 ? void 0 : selectDimensions.width
57
55
  },
58
56
  tabIndex: popover.open ? 0 : -1
59
- });
60
-
57
+ };
61
58
  return createElement("span", {
62
59
  className: className,
63
60
  "data-taco": "select",
@@ -80,9 +77,11 @@ var BaseSelect = /*#__PURE__*/forwardRef(function BaseSelect(props, ref) {
80
77
  type: "text"
81
78
  }))));
82
79
  });
83
- var Select = /*#__PURE__*/forwardRef(function Select(props, ref) {
84
- var editable = props.editable,
85
- otherProps = _objectWithoutPropertiesLoose(props, _excluded2);
80
+ const Select = /*#__PURE__*/forwardRef(function Select(props, ref) {
81
+ const {
82
+ editable,
83
+ ...otherProps
84
+ } = props;
86
85
 
87
86
  if (editable) {
88
87
  return createElement(Combobox, Object.assign({}, otherProps, {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { Icon } from '../Icon/Icon';\nimport { Listbox, MultiListbox, ListboxProps } from '../Listbox/Listbox';\nimport { useBoundingClientRectListener } from '../../utils/hooks/useBoundingClientRectListener';\nimport { useSelect } from './useSelect';\nimport { Combobox, ComboboxProps } from '../Combobox/Combobox';\nimport { Badge } from '../Badge/Badge';\nimport { getInputClasses } from '../Input/util';\n\nexport type SelectTexts = {\n /**\n * The text displayed when all options are selected when multiselect mode in on.\n */\n allOptionsSelected: string;\n};\n\nexport type BaseSelectProps = Omit<ListboxProps, 'dialog'> &\n Omit<ComboboxProps, 'inline'> & {\n /**\n * Allows to select multiple values.\n * All the selected values will be combined in a comma-seperated string as the value of the input.\n */\n multiselect?: boolean;\n };\n\nexport type SelectProps = BaseSelectProps & {\n /**\n * Creates an editable select.\n * Setting this will render a inline Combobox which will display the provided data on click/focus,\n * even if there is no value in the input.\n * After user starts typing, matching data will be displayed.\n */\n editable?: boolean;\n};\n\nconst BaseSelect = React.forwardRef(function BaseSelect(props: BaseSelectProps, ref: React.Ref<HTMLInputElement>) {\n const { autoFocus, className: externalClassName, highlighted, style, ...otherProps } = props;\n const { button, listbox, popover, input, text, more = 0 } = useSelect(otherProps, ref);\n const internalRef = React.useRef<HTMLButtonElement>(null);\n const selectDimensions = useBoundingClientRectListener(internalRef);\n const className = cn('inline-flex relative w-full', { 'yt-select--readonly': props.readOnly }, externalClassName);\n const inputClassname = cn(getInputClasses(props), 'h-8 text-left pr-0', {\n 'border-blue': popover.open,\n });\n\n React.useEffect(() => {\n if (autoFocus && internalRef.current) {\n internalRef.current.focus();\n }\n }, []);\n\n const renderMultiSelection = (): React.ReactNode => {\n return (\n <>\n <span className=\"flex-grow truncate text-left\">{text}</span>\n {more > 0 && <Badge className=\"ml-2\">{`+${more}`}</Badge>}\n </>\n );\n };\n\n const commonListboxProps: ListboxProps = {\n ...listbox,\n className: 'w-auto',\n invalid: undefined,\n style: { minWidth: selectDimensions?.width },\n tabIndex: popover.open ? 0 : -1,\n };\n\n return (\n <span className={className} data-taco=\"select\" style={style}>\n <PopoverPrimitive.Root {...popover}>\n <PopoverPrimitive.Trigger {...button} className={inputClassname} ref={internalRef}>\n {props.multiselect ? renderMultiSelection() : <span className=\"flex-grow truncate text-left\">{text}</span>}\n <span className=\"flex h-8 w-8 items-center justify-center\">\n <Icon className=\"pointer-events-none\" name={popover.open ? 'chevron-up' : 'chevron-down'} />\n </span>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content align=\"start\" sideOffset={4}>\n {props.multiselect ? <MultiListbox {...commonListboxProps} /> : <Listbox {...commonListboxProps} />}\n </PopoverPrimitive.Content>\n <input {...input} className=\"hidden\" type=\"text\" />\n </PopoverPrimitive.Root>\n </span>\n );\n});\n\nexport const Select = React.forwardRef(function Select(props: SelectProps, ref: React.Ref<HTMLInputElement>) {\n const { editable, ...otherProps } = props;\n\n if (editable) {\n return <Combobox {...otherProps} dialog={undefined} inline ref={ref} />;\n }\n\n return <BaseSelect {...otherProps} ref={ref} />;\n});\n"],"names":["BaseSelect","React","props","ref","autoFocus","externalClassName","className","style","otherProps","useSelect","button","listbox","popover","input","text","more","internalRef","selectDimensions","useBoundingClientRectListener","cn","readOnly","inputClassname","getInputClasses","open","current","focus","renderMultiSelection","Badge","commonListboxProps","invalid","undefined","minWidth","width","tabIndex","PopoverPrimitive","multiselect","Icon","name","align","sideOffset","MultiListbox","Listbox","type","Select","editable","Combobox","dialog","inline"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\r\nimport { Icon } from '../Icon/Icon';\r\nimport { Listbox, MultiListbox, ListboxProps } from '../Listbox/Listbox';\r\nimport { useBoundingClientRectListener } from '../../utils/hooks/useBoundingClientRectListener';\r\nimport { useSelect } from './useSelect';\r\nimport { Combobox, ComboboxProps } from '../Combobox/Combobox';\r\nimport { Badge } from '../Badge/Badge';\r\nimport { getInputClasses } from '../Input/util';\r\n\r\nexport type SelectTexts = {\r\n /**\r\n * The text displayed when all options are selected when multiselect mode in on.\r\n */\r\n allOptionsSelected: string;\r\n};\r\n\r\nexport type BaseSelectProps = Omit<ListboxProps, 'dialog'> &\r\n Omit<ComboboxProps, 'inline'> & {\r\n /**\r\n * Allows to select multiple values.\r\n * All the selected values will be combined in a comma-seperated string as the value of the input.\r\n */\r\n multiselect?: boolean;\r\n };\r\n\r\nexport type SelectProps = BaseSelectProps & {\r\n /**\r\n * Creates an editable select.\r\n * Setting this will render a inline Combobox which will display the provided data on click/focus,\r\n * even if there is no value in the input.\r\n * After user starts typing, matching data will be displayed.\r\n */\r\n editable?: boolean;\r\n};\r\n\r\nconst BaseSelect = React.forwardRef(function BaseSelect(props: BaseSelectProps, ref: React.Ref<HTMLInputElement>) {\r\n const { autoFocus, className: externalClassName, highlighted, style, ...otherProps } = props;\r\n const { button, listbox, popover, input, text, more = 0 } = useSelect(otherProps, ref);\r\n const internalRef = React.useRef<HTMLButtonElement>(null);\r\n const selectDimensions = useBoundingClientRectListener(internalRef);\r\n const className = cn('inline-flex relative w-full', { 'yt-select--readonly': props.readOnly }, externalClassName);\r\n const inputClassname = cn(getInputClasses(props), 'h-8 text-left pr-0', {\r\n 'border-blue': popover.open,\r\n });\r\n\r\n React.useEffect(() => {\r\n if (autoFocus && internalRef.current) {\r\n internalRef.current.focus();\r\n }\r\n }, []);\r\n\r\n const renderMultiSelection = (): React.ReactNode => {\r\n return (\r\n <>\r\n <span className=\"flex-grow truncate text-left\">{text}</span>\r\n {more > 0 && <Badge className=\"ml-2\">{`+${more}`}</Badge>}\r\n </>\r\n );\r\n };\r\n\r\n const commonListboxProps: ListboxProps = {\r\n ...listbox,\r\n className: 'w-auto',\r\n invalid: undefined,\r\n style: { minWidth: selectDimensions?.width },\r\n tabIndex: popover.open ? 0 : -1,\r\n };\r\n\r\n return (\r\n <span className={className} data-taco=\"select\" style={style}>\r\n <PopoverPrimitive.Root {...popover}>\r\n <PopoverPrimitive.Trigger {...button} className={inputClassname} ref={internalRef}>\r\n {props.multiselect ? renderMultiSelection() : <span className=\"flex-grow truncate text-left\">{text}</span>}\r\n <span className=\"flex h-8 w-8 items-center justify-center\">\r\n <Icon className=\"pointer-events-none\" name={popover.open ? 'chevron-up' : 'chevron-down'} />\r\n </span>\r\n </PopoverPrimitive.Trigger>\r\n <PopoverPrimitive.Content align=\"start\" sideOffset={4}>\r\n {props.multiselect ? <MultiListbox {...commonListboxProps} /> : <Listbox {...commonListboxProps} />}\r\n </PopoverPrimitive.Content>\r\n <input {...input} className=\"hidden\" type=\"text\" />\r\n </PopoverPrimitive.Root>\r\n </span>\r\n );\r\n});\r\n\r\nexport const Select = React.forwardRef(function Select(props: SelectProps, ref: React.Ref<HTMLInputElement>) {\r\n const { editable, ...otherProps } = props;\r\n\r\n if (editable) {\r\n return <Combobox {...otherProps} dialog={undefined} inline ref={ref} />;\r\n }\r\n\r\n return <BaseSelect {...otherProps} ref={ref} />;\r\n});\r\n"],"names":["BaseSelect","React","props","ref","autoFocus","className","externalClassName","highlighted","style","otherProps","button","listbox","popover","input","text","more","useSelect","internalRef","selectDimensions","useBoundingClientRectListener","cn","readOnly","inputClassname","getInputClasses","open","current","focus","renderMultiSelection","Badge","commonListboxProps","invalid","undefined","minWidth","width","tabIndex","PopoverPrimitive","multiselect","Icon","name","align","sideOffset","MultiListbox","Listbox","type","Select","editable","Combobox","dialog","inline"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useState, useMemo, useRef, useEffect, createElement, Fragment, cloneElement } from 'react';
3
2
  import cn from 'classnames';
4
3
  import { v4 } from 'uuid';
@@ -8,47 +7,37 @@ import keycode from 'keycode';
8
7
  import { createCustomEvent } from '../../utils/input.js';
9
8
  import { useFlattenedData, findByValue, setInputValueByRef, sanitizeItem } from '../Listbox/util.js';
10
9
 
11
- var _excluded = ["aria-label", "aria-labelledby", "data", "defaultValue", "disabled", "emptyValue", "id", "multiselect", "onBlur", "onClick", "onChange", "readOnly", "value"];
12
- var useSelect = function useSelect(_ref, ref) {
13
- var ariaLabel = _ref['aria-label'],
14
- ariaLabelledBy = _ref['aria-labelledby'],
15
- _ref$data = _ref.data,
16
- data = _ref$data === void 0 ? [] : _ref$data,
17
- defaultValue = _ref.defaultValue,
18
- disabled = _ref.disabled,
19
- emptyValue = _ref.emptyValue,
20
- nativeId = _ref.id,
21
- multiselect = _ref.multiselect,
22
- onBlur = _ref.onBlur,
23
- onChange = _ref.onChange,
24
- readOnly = _ref.readOnly,
25
- value = _ref.value,
26
- otherProps = _objectWithoutPropertiesLoose(_ref, _excluded);
27
-
28
- var _useLocalization = useLocalization(),
29
- texts = _useLocalization.texts;
30
-
31
- var flattenedData = useFlattenedData(data);
32
- var listboxInputRef = useProxiedRef(ref);
33
-
34
- var _React$useState = useState(false),
35
- open = _React$useState[0],
36
- setOpen = _React$useState[1];
37
-
38
- var id = useMemo(function () {
39
- return nativeId || "select_" + v4();
40
- }, [nativeId]);
41
- var inputRef = useRef(null);
42
- var buttonId = id + "-button"; // support 'escape' resetting to the value that was set when the listbox opened
43
-
44
- var _React$useState2 = useState(value),
45
- lastValue = _React$useState2[0],
46
- setLastValue = _React$useState2[1];
47
-
48
- useEffect(function () {
10
+ const useSelect = ({
11
+ 'aria-label': ariaLabel,
12
+ 'aria-labelledby': ariaLabelledBy,
13
+ data = [],
14
+ defaultValue,
15
+ disabled,
16
+ emptyValue,
17
+ id: nativeId,
18
+ multiselect,
19
+ onBlur,
20
+ onClick,
21
+ onChange,
22
+ readOnly,
23
+ value,
24
+ ...otherProps
25
+ }, ref) => {
26
+ const {
27
+ texts
28
+ } = useLocalization();
29
+ const flattenedData = useFlattenedData(data);
30
+ const listboxInputRef = useProxiedRef(ref);
31
+ const [open, setOpen] = useState(false);
32
+ const id = useMemo(() => nativeId || `select_${v4()}`, [nativeId]);
33
+ const inputRef = useRef(null);
34
+ const buttonId = `${id}-button`; // support 'escape' resetting to the value that was set when the listbox opened
35
+
36
+ const [lastValue, setLastValue] = useState(value);
37
+ useEffect(() => {
49
38
  setLastValue(value);
50
39
  }, [open]);
51
- useEffect(function () {
40
+ useEffect(() => {
52
41
  if (value === undefined) {
53
42
  if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {
54
43
  setInputValueByRef(inputRef.current, defaultValue);
@@ -70,14 +59,14 @@ var useSelect = function useSelect(_ref, ref) {
70
59
  }
71
60
  }, []); // event handlers
72
61
 
73
- var handleButtonKeyDown = function handleButtonKeyDown(event) {
62
+ const handleButtonKeyDown = event => {
74
63
  if (event.keyCode === keycode('up') || event.keyCode === keycode('down')) {
75
64
  event.preventDefault();
76
65
  setOpen(true);
77
66
  }
78
67
  };
79
68
 
80
- var handleListboxKeyDown = function handleListboxKeyDown(event) {
69
+ const handleListboxKeyDown = event => {
81
70
  switch (event.keyCode) {
82
71
  case keycode('escape'):
83
72
  {
@@ -108,7 +97,7 @@ var useSelect = function useSelect(_ref, ref) {
108
97
  }
109
98
  };
110
99
 
111
- var handleListboxClick = function handleListboxClick(event) {
100
+ const handleListboxClick = event => {
112
101
  event.preventDefault();
113
102
 
114
103
  if (!multiselect) {
@@ -120,16 +109,14 @@ var useSelect = function useSelect(_ref, ref) {
120
109
  }
121
110
  };
122
111
 
123
- var text = '';
124
- var more = 0;
112
+ let text = '';
113
+ let more = 0;
125
114
 
126
115
  if (value !== undefined) {
127
116
  if (multiselect) {
128
- var selectedValues = (value === null || value === void 0 ? void 0 : value.toString().split(',')) || [];
117
+ const selectedValues = (value === null || value === void 0 ? void 0 : value.toString().split(',')) || [];
129
118
 
130
- if (selectedValues.length === flattenedData.filter(function (item) {
131
- return !item.disabled;
132
- }).length) {
119
+ if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {
133
120
  text = texts.select.allOptionsSelected;
134
121
  } else {
135
122
  var _findByValue$text, _findByValue;
@@ -138,7 +125,7 @@ var useSelect = function useSelect(_ref, ref) {
138
125
  more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;
139
126
  }
140
127
  } else {
141
- var item = findByValue(flattenedData, value);
128
+ const item = findByValue(flattenedData, value);
142
129
 
143
130
  if (item) {
144
131
  text = item.icon ? createElement(Fragment, null, cloneElement(item.icon, {
@@ -148,27 +135,24 @@ var useSelect = function useSelect(_ref, ref) {
148
135
  }
149
136
  }
150
137
 
151
- var handleInputChange = function handleInputChange(event) {
138
+ const handleInputChange = event => {
152
139
  event.persist();
153
140
 
154
141
  if (onChange) {
155
142
  var _item$path$split, _item$path;
156
143
 
157
- var _item = findByValue(flattenedData, event.target.value);
158
-
159
- event.detail = sanitizeItem(_item);
160
- var indexes = (_item$path$split = _item === null || _item === void 0 ? void 0 : (_item$path = _item.path) === null || _item$path === void 0 ? void 0 : _item$path.split('.')) !== null && _item$path$split !== void 0 ? _item$path$split : [];
144
+ const item = findByValue(flattenedData, event.target.value);
145
+ event.detail = sanitizeItem(item);
146
+ const indexes = (_item$path$split = item === null || item === void 0 ? void 0 : (_item$path = item.path) === null || _item$path === void 0 ? void 0 : _item$path.split('.')) !== null && _item$path$split !== void 0 ? _item$path$split : [];
161
147
 
162
148
  if (indexes.length > 1) {
163
149
  // we don't want to map the current item
164
150
  indexes.pop(); // we need to rebuild the path as we map
165
151
 
166
- var lastPath;
167
- event.detail.parents = indexes.map(function (i) {
152
+ let lastPath;
153
+ event.detail.parents = indexes.map(i => {
168
154
  lastPath = lastPath ? [lastPath, i].join('.') : i;
169
- return sanitizeItem(flattenedData.find(function (i) {
170
- return i.path === lastPath;
171
- }));
155
+ return sanitizeItem(flattenedData.find(i => i.path === lastPath));
172
156
  });
173
157
  }
174
158
 
@@ -176,44 +160,42 @@ var useSelect = function useSelect(_ref, ref) {
176
160
  }
177
161
  };
178
162
 
179
- var button = {
163
+ const button = {
180
164
  'aria-haspopup': 'listbox',
181
- 'aria-label': ariaLabel ? ariaLabel + " " + text : undefined,
182
- 'aria-labelledby': ariaLabelledBy ? ariaLabelledBy + " " + buttonId : undefined,
165
+ 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,
166
+ 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,
183
167
  disabled: disabled || readOnly,
184
168
  id: buttonId,
185
169
  onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,
186
170
  type: 'button'
187
171
  };
188
-
189
- var listbox = _extends({}, otherProps, {
172
+ const listbox = { ...otherProps,
190
173
  'aria-label': ariaLabel,
191
174
  'aria-labelledby': ariaLabelledBy,
192
- data: data,
193
- disabled: disabled,
194
- emptyValue: emptyValue,
195
- onBlur: onBlur,
175
+ data,
176
+ disabled,
177
+ emptyValue,
178
+ onBlur,
196
179
  onClick: handleListboxClick,
197
- onChange: function onChange(event) {
180
+ onChange: event => {
198
181
  setInputValueByRef(inputRef.current, event.target.value);
199
182
  },
200
183
  onKeyDown: handleListboxKeyDown,
201
184
  ref: listboxInputRef,
202
- value: value
203
- });
204
-
205
- var input = {
185
+ value
186
+ };
187
+ const input = {
206
188
  onChange: handleInputChange,
207
189
  ref: inputRef,
208
190
  value: String(value !== null && value !== void 0 ? value : '')
209
191
  };
210
192
  return {
211
- button: button,
212
- listbox: listbox,
213
- input: input,
193
+ button,
194
+ listbox,
195
+ input,
214
196
  popover: {
215
- open: open,
216
- onOpenChange: function onOpenChange(open) {
197
+ open,
198
+ onOpenChange: open => {
217
199
  if (!open && onBlur) {
218
200
  onBlur(createCustomEvent('blur'));
219
201
  }
@@ -221,8 +203,8 @@ var useSelect = function useSelect(_ref, ref) {
221
203
  setOpen(open);
222
204
  }
223
205
  },
224
- text: text,
225
- more: more
206
+ text,
207
+ more
226
208
  };
227
209
  };
228
210
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","sources":["../../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\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 { useProxiedRef } from '../../utils/hooks/useProxiedRef';\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 = useProxiedRef<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.keyCode === keycode('up') || event.keyCode === keycode('down')) {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.keyCode) {\n case keycode('escape'): {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(listboxInputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case keycode('tab'):\n case keycode('enter'): {\n if (event.keyCode !== keycode('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","ref","ariaLabel","ariaLabelledBy","data","defaultValue","disabled","emptyValue","nativeId","id","multiselect","onBlur","onChange","readOnly","value","otherProps","useLocalization","texts","flattenedData","useFlattenedData","listboxInputRef","useProxiedRef","React","open","setOpen","uuid","inputRef","buttonId","lastValue","setLastValue","undefined","findByValue","setInputValueByRef","current","length","handleButtonKeyDown","event","keyCode","keycode","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","onClick","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 keycode from 'keycode';\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 { useProxiedRef } from '../../utils/hooks/useProxiedRef';\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 = useProxiedRef<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.keyCode === keycode('up') || event.keyCode === keycode('down')) {\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.keyCode) {\r\n case keycode('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 keycode('tab'):\r\n case keycode('enter'): {\r\n if (event.keyCode !== keycode('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","useProxiedRef","open","setOpen","React","uuid","inputRef","buttonId","lastValue","setLastValue","undefined","findByValue","setInputValueByRef","current","length","handleButtonKeyDown","event","keyCode","keycode","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,28 +1,21 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import cn from 'classnames';
4
3
 
5
- var _excluded = ["delay", "label"];
6
- var Spinner = /*#__PURE__*/React__default.forwardRef(function Spinner(props, ref) {
7
- var _props$delay = props.delay,
8
- delay = _props$delay === void 0 ? 500 : _props$delay,
9
- label = props.label,
10
- otherProps = _objectWithoutPropertiesLoose(props, _excluded);
11
-
12
- var _React$useState = React__default.useState(!delay),
13
- visible = _React$useState[0],
14
- setVisibility = _React$useState[1];
15
-
16
- React__default.useEffect(function () {
17
- var timeout;
4
+ const Spinner = /*#__PURE__*/React__default.forwardRef(function Spinner(props, ref) {
5
+ const {
6
+ delay = 500,
7
+ label,
8
+ ...otherProps
9
+ } = props;
10
+ const [visible, setVisibility] = React__default.useState(!delay);
11
+ React__default.useEffect(() => {
12
+ let timeout;
18
13
 
19
14
  if (delay) {
20
- timeout = window.setTimeout(function () {
21
- return setVisibility(true);
22
- }, delay);
15
+ timeout = window.setTimeout(() => setVisibility(true), delay);
23
16
  }
24
17
 
25
- return function () {
18
+ return () => {
26
19
  if (timeout) {
27
20
  clearTimeout(timeout);
28
21
  }
@@ -33,7 +26,7 @@ var Spinner = /*#__PURE__*/React__default.forwardRef(function Spinner(props, ref
33
26
  return null;
34
27
  }
35
28
 
36
- var className = cn('inline-flex flex-col relative items-center', otherProps.className);
29
+ const className = cn('inline-flex flex-col relative items-center', otherProps.className);
37
30
  return React__default.createElement("div", Object.assign({}, otherProps, {
38
31
  className: className,
39
32
  "data-taco": "spinner",
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport './Spinner.css';\n\nexport type SpinnerProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * Define a delay in milliseconds after which the spinner is shown.\n * Default value is `500`ms\n */\n delay?: number;\n /** Define a text that will be displayed below spinner */\n label?: string;\n};\n\nexport const Spinner = React.forwardRef(function Spinner(props: SpinnerProps, ref: React.Ref<HTMLDivElement>) {\n const { delay = 500, label, ...otherProps } = props;\n const [visible, setVisibility] = React.useState(!delay);\n\n React.useEffect(() => {\n let timeout: number;\n\n if (delay) {\n timeout = window.setTimeout(() => setVisibility(true), delay);\n }\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n }, [delay]);\n\n if (!visible) {\n return null;\n }\n\n const className = cn('inline-flex flex-col relative items-center', otherProps.className);\n\n return (\n <div {...otherProps} className={className} data-taco=\"spinner\" ref={ref}>\n <svg\n className=\"h-10 w-10 animate-[spinnerRotation_2s_linear_infinite]\"\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"50\" cy=\"50\" r=\"45\"></circle>\n </svg>\n {label && <span className=\"mt-4\">{label}</span>}\n </div>\n );\n});\n"],"names":["Spinner","React","forwardRef","props","ref","delay","label","otherProps","useState","visible","setVisibility","useEffect","timeout","window","setTimeout","clearTimeout","className","cn","viewBox","xmlns","cx","cy","r"],"mappings":";;;;;IAcaA,OAAO,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,OAAT,CAAiBG,KAAjB,EAAsCC,GAAtC;EACpC,mBAA8CD,KAA9C,CAAQE,KAAR;MAAQA,KAAR,6BAAgB,GAAhB;MAAqBC,KAArB,GAA8CH,KAA9C,CAAqBG,KAArB;MAA+BC,UAA/B,iCAA8CJ,KAA9C;;EACA,sBAAiCF,cAAK,CAACO,QAAN,CAAe,CAACH,KAAhB,CAAjC;MAAOI,OAAP;MAAgBC,aAAhB;;EAEAT,cAAK,CAACU,SAAN,CAAgB;IACZ,IAAIC,OAAJ;;IAEA,IAAIP,KAAJ,EAAW;MACPO,OAAO,GAAGC,MAAM,CAACC,UAAP,CAAkB;QAAA,OAAMJ,aAAa,CAAC,IAAD,CAAnB;OAAlB,EAA6CL,KAA7C,CAAV;;;IAGJ,OAAO;MACH,IAAIO,OAAJ,EAAa;QACTG,YAAY,CAACH,OAAD,CAAZ;;KAFR;GAPJ,EAYG,CAACP,KAAD,CAZH;;EAcA,IAAI,CAACI,OAAL,EAAc;IACV,OAAO,IAAP;;;EAGJ,IAAMO,SAAS,GAAGC,EAAE,CAAC,4CAAD,EAA+CV,UAAU,CAACS,SAA1D,CAApB;EAEA,OACIf,4BAAA,MAAA,oBAASM;IAAYS,SAAS,EAAEA;iBAAqB;IAAUZ,GAAG,EAAEA;IAApE,EACIH,4BAAA,MAAA;IACIe,SAAS,EAAC;IACVE,OAAO,EAAC;IACRC,KAAK,EAAC;GAHV,EAKIlB,4BAAA,SAAA;IAAQmB,EAAE,EAAC;IAAKC,EAAE,EAAC;IAAKC,CAAC,EAAC;GAA1B,CALJ,CADJ,EAQKhB,KAAK,IAAIL,4BAAA,OAAA;IAAMe,SAAS,EAAC;GAAhB,EAAwBV,KAAxB,CARd,CADJ;AAYH,CApCsB;;;;"}
1
+ {"version":3,"file":"Spinner.js","sources":["../../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport './Spinner.css';\r\n\r\nexport type SpinnerProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /**\r\n * Define a delay in milliseconds after which the spinner is shown.\r\n * Default value is `500`ms\r\n */\r\n delay?: number;\r\n /** Define a text that will be displayed below spinner */\r\n label?: string;\r\n};\r\n\r\nexport const Spinner = React.forwardRef(function Spinner(props: SpinnerProps, ref: React.Ref<HTMLDivElement>) {\r\n const { delay = 500, label, ...otherProps } = props;\r\n const [visible, setVisibility] = React.useState(!delay);\r\n\r\n React.useEffect(() => {\r\n let timeout: number;\r\n\r\n if (delay) {\r\n timeout = window.setTimeout(() => setVisibility(true), delay);\r\n }\r\n\r\n return () => {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n }\r\n };\r\n }, [delay]);\r\n\r\n if (!visible) {\r\n return null;\r\n }\r\n\r\n const className = cn('inline-flex flex-col relative items-center', otherProps.className);\r\n\r\n return (\r\n <div {...otherProps} className={className} data-taco=\"spinner\" ref={ref}>\r\n <svg\r\n className=\"h-10 w-10 animate-[spinnerRotation_2s_linear_infinite]\"\r\n viewBox=\"0 0 100 100\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"50\" cy=\"50\" r=\"45\"></circle>\r\n </svg>\r\n {label && <span className=\"mt-4\">{label}</span>}\r\n </div>\r\n );\r\n});\r\n"],"names":["Spinner","React","forwardRef","props","ref","delay","label","otherProps","visible","setVisibility","useState","useEffect","timeout","window","setTimeout","clearTimeout","className","cn","viewBox","xmlns","cx","cy","r"],"mappings":";;;MAcaA,OAAO,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,OAAT,CAAiBG,KAAjB,EAAsCC,GAAtC;EACpC,MAAM;IAAEC,KAAK,GAAG,GAAV;IAAeC,KAAf;IAAsB,GAAGC;MAAeJ,KAA9C;EACA,MAAM,CAACK,OAAD,EAAUC,aAAV,IAA2BR,cAAK,CAACS,QAAN,CAAe,CAACL,KAAhB,CAAjC;EAEAJ,cAAK,CAACU,SAAN,CAAgB;IACZ,IAAIC,OAAJ;;IAEA,IAAIP,KAAJ,EAAW;MACPO,OAAO,GAAGC,MAAM,CAACC,UAAP,CAAkB,MAAML,aAAa,CAAC,IAAD,CAArC,EAA6CJ,KAA7C,CAAV;;;IAGJ,OAAO;MACH,IAAIO,OAAJ,EAAa;QACTG,YAAY,CAACH,OAAD,CAAZ;;KAFR;GAPJ,EAYG,CAACP,KAAD,CAZH;;EAcA,IAAI,CAACG,OAAL,EAAc;IACV,OAAO,IAAP;;;EAGJ,MAAMQ,SAAS,GAAGC,EAAE,CAAC,4CAAD,EAA+CV,UAAU,CAACS,SAA1D,CAApB;EAEA,OACIf,4BAAA,MAAA,oBAASM;IAAYS,SAAS,EAAEA;iBAAqB;IAAUZ,GAAG,EAAEA;IAApE,EACIH,4BAAA,MAAA;IACIe,SAAS,EAAC;IACVE,OAAO,EAAC;IACRC,KAAK,EAAC;GAHV,EAKIlB,4BAAA,SAAA;IAAQmB,EAAE,EAAC;IAAKC,EAAE,EAAC;IAAKC,CAAC,EAAC;GAA1B,CALJ,CADJ,EAQKhB,KAAK,IAAIL,4BAAA,OAAA;IAAMe,SAAS,EAAC;GAAhB,EAAwBV,KAAxB,CARd,CADJ;AAYH,CApCsB;;;;"}
@@ -1,20 +1,19 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { forwardRef, createElement } from 'react';
3
2
  import cn from 'classnames';
4
3
  import { Root, Thumb } from '@radix-ui/react-switch';
5
4
 
6
- var _excluded = ["label", "onChange"];
7
- var Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
8
- var label = props.label,
9
- onChange = props.onChange,
10
- otherProps = _objectWithoutPropertiesLoose(props, _excluded);
11
-
12
- var className = cn('group h-5 w-9 flex rounded-full inline-flex', {
5
+ const Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
6
+ const {
7
+ label,
8
+ onChange,
9
+ ...otherProps
10
+ } = props;
11
+ const className = cn('group h-5 w-9 flex rounded-full inline-flex', {
13
12
  'mr-2': !!label,
14
13
  'bg-grey-darker hover:bg-grey-dark aria-checked:bg-blue aria-checked:hover:bg-blue-light focus:yt-focus': !props.disabled,
15
14
  'bg-grey-light cursor-not-allowed aria-checked:bg-blue-light': props.disabled
16
15
  }, props.className);
17
- var element = createElement(Root, Object.assign({}, otherProps, {
16
+ const element = createElement(Root, Object.assign({}, otherProps, {
18
17
  className: className,
19
18
  onCheckedChange: onChange,
20
19
  ref: ref
@@ -23,7 +22,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
23
22
  }));
24
23
 
25
24
  if (label) {
26
- var labelClassName = cn('flex items-center cursor-pointer', {
25
+ const labelClassName = cn('flex items-center cursor-pointer', {
27
26
  'cursor-not-allowed text-grey-dark': props.disabled
28
27
  });
29
28
  return createElement("label", {
@@ -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 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 items-center 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":";;;;;;IA4BaA,MAAM,gBAAGC,UAAA,CAAiB,SAASD,MAAT,CAAgBE,KAAhB,EAAoCC,GAApC;EACnC,IAAQC,KAAR,GAA2CF,KAA3C,CAAQE,KAAR;MAAeC,QAAf,GAA2CH,KAA3C,CAAeG,QAAf;MAA4BC,UAA5B,iCAA2CJ,KAA3C;;EAEA,IAAMK,SAAS,GAAGC,EAAE,CAChB,6CADgB,EAEhB;IACI,QAAQ,CAAC,CAACJ,KADd;IAEI,0GACI,CAACF,KAAK,CAACO,QAHf;IAII,+DAA+DP,KAAK,CAACO;GANzD,EAQhBP,KAAK,CAACK,SARU,CAApB;EAWA,IAAMG,OAAO,GACTT,aAAA,CAACU,IAAD,oBAA0BL;IAAYC,SAAS,EAAEA;IAAWK,eAAe,EAAEP;IAAUF,GAAG,EAAEA;IAA5F,EACIF,aAAA,CAACU,KAAD;IAAuBJ,SAAS,EAAC;GAAjC,CADJ,CADJ;;EAMA,IAAIH,KAAJ,EAAW;IACP,IAAMS,cAAc,GAAGL,EAAE,CAAC,kCAAD,EAAqC;MAC1D,qCAAqCN,KAAK,CAACO;KADtB,CAAzB;IAIA,OACIR,aAAA,QAAA;MAAOM,SAAS,EAAEM;KAAlB,EACKH,OADL,EAEKN,KAFL,CADJ;;;EAQJ,OAAOM,OAAP;AACH,CAlCqB;;;;"}
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 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 items-center 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,UAAA,CAAiB,SAASD,MAAT,CAAgBE,KAAhB,EAAoCC,GAApC;EACnC,MAAM;IAAEC,KAAF;IAASC,QAAT;IAAmB,GAAGC;MAAeJ,KAA3C;EAEA,MAAMK,SAAS,GAAGC,EAAE,CAChB,6CADgB,EAEhB;IACI,QAAQ,CAAC,CAACJ,KADd;IAEI,0GACI,CAACF,KAAK,CAACO,QAHf;IAII,+DAA+DP,KAAK,CAACO;GANzD,EAQhBP,KAAK,CAACK,SARU,CAApB;EAWA,MAAMG,OAAO,GACTT,aAAA,CAACU,IAAD,oBAA0BL;IAAYC,SAAS,EAAEA;IAAWK,eAAe,EAAEP;IAAUF,GAAG,EAAEA;IAA5F,EACIF,aAAA,CAACU,KAAD;IAAuBJ,SAAS,EAAC;GAAjC,CADJ,CADJ;;EAMA,IAAIH,KAAJ,EAAW;IACP,MAAMS,cAAc,GAAGL,EAAE,CAAC,kCAAD,EAAqC;MAC1D,qCAAqCN,KAAK,CAACO;KADtB,CAAzB;IAIA,OACIR,aAAA,QAAA;MAAOM,SAAS,EAAEM;KAAlB,EACKH,OADL,EAEKN,KAFL,CADJ;;;EAQJ,OAAOM,OAAP;AACH,CAlCqB;;;;"}