@economic/taco 0.0.33-alpha.6 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +84 -84
  2. package/dist/components/Icon/components/{Minus.d.ts → CircleClose.d.ts} +0 -0
  3. package/dist/components/Icon/components/{PlusCircle.d.ts → CircleMinus.d.ts} +0 -0
  4. package/dist/components/Icon/components/{TickCircle.d.ts → CirclePlus.d.ts} +0 -0
  5. package/dist/components/Icon/components/CircleTick.d.ts +3 -0
  6. package/dist/components/Icon/components/index.d.ts +1 -1
  7. package/dist/components/Input/Input.d.ts +1 -1
  8. package/dist/components/Menu/Menu.d.ts +2 -2
  9. package/dist/components/Menu/components/Item.d.ts +1 -1
  10. package/dist/components/Menu/components/Link.d.ts +1 -1
  11. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  12. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  13. package/dist/esm/components/Badge/Badge.js.map +1 -1
  14. package/dist/esm/components/Banner/Banner.js +5 -7
  15. package/dist/esm/components/Banner/Banner.js.map +1 -1
  16. package/dist/esm/components/Banner/util.js +1 -1
  17. package/dist/esm/components/Banner/util.js.map +1 -1
  18. package/dist/esm/components/Button/Button.js.map +1 -1
  19. package/dist/esm/components/Button/util.js +23 -18
  20. package/dist/esm/components/Button/util.js.map +1 -1
  21. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  22. package/dist/esm/components/Checkbox/Checkbox.js +18 -15
  23. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  24. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  25. package/dist/esm/components/Combobox/useCombobox.js +87 -67
  26. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  27. package/dist/esm/components/Datepicker/Datepicker.js +52 -48
  28. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  29. package/dist/esm/components/Datepicker/useDatepicker.js +34 -27
  30. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  31. package/dist/esm/components/Dialog/Context.js +4 -4
  32. package/dist/esm/components/Dialog/Context.js.map +1 -1
  33. package/dist/esm/components/Dialog/Dialog.js +58 -39
  34. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  35. package/dist/esm/components/Dialog/components/Content.js +44 -39
  36. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  37. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  38. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  39. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  40. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  41. package/dist/esm/components/Dialog/components/Trigger.js +2 -2
  42. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  43. package/dist/esm/components/Field/Field.js +12 -10
  44. package/dist/esm/components/Field/Field.js.map +1 -1
  45. package/dist/esm/components/Form/Form.js +8 -6
  46. package/dist/esm/components/Form/Form.js.map +1 -1
  47. package/dist/esm/components/Group/Group.js +8 -6
  48. package/dist/esm/components/Group/Group.js.map +1 -1
  49. package/dist/esm/components/Hanger/Hanger.js +33 -25
  50. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  51. package/dist/esm/components/Icon/Icon.js +8 -7
  52. package/dist/esm/components/Icon/Icon.js.map +1 -1
  53. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  54. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  55. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  56. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  57. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  58. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  59. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  60. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  61. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  62. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  63. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  64. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  65. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  66. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  67. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  68. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  69. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  70. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  71. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  72. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  73. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  74. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  75. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  76. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  77. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  78. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  79. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  80. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  81. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  82. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  83. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  84. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  85. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  86. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  87. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  88. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  89. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  90. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  91. package/dist/esm/components/Icon/components/CircleClose.js +19 -0
  92. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -0
  93. package/dist/esm/components/Icon/components/{Minus.js → CircleMinus.js} +4 -4
  94. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -0
  95. package/dist/esm/components/Icon/components/{PlusCircle.js → CirclePlus.js} +4 -4
  96. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -0
  97. package/dist/esm/components/Icon/components/{TickCircle.js → CircleTick.js} +4 -4
  98. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -0
  99. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  100. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  101. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  102. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  103. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  104. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  105. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  106. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  107. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  108. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  109. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  110. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  111. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  112. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  113. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  114. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  115. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  116. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  117. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  118. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  119. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  120. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  121. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  122. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  123. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  124. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  125. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  126. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  127. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  128. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  129. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  130. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  131. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  132. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  133. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  134. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  135. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  136. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  137. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  138. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  139. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  140. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  141. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  142. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  143. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  144. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  145. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  146. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  147. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  148. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  149. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  150. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  151. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  152. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  153. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  154. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  155. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  156. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  157. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  158. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  159. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  160. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  161. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  162. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  163. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  164. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  165. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  166. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  167. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  168. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  169. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  170. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  171. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  172. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  173. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  174. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  175. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  176. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  177. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  178. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  179. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  180. package/dist/esm/components/Icon/components/List.js.map +1 -1
  181. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  182. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  183. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  184. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  185. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  186. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  187. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  188. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  189. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  190. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  191. package/dist/esm/components/Icon/components/More.js.map +1 -1
  192. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  193. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  194. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  195. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  196. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  197. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  198. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  199. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  200. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  201. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  202. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  203. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  204. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  205. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  206. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  207. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  208. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  209. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  210. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  211. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  212. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  213. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  214. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  216. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  217. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  218. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  219. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  220. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  221. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  222. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  223. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  224. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  225. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  226. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  227. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  229. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  230. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  231. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  232. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  233. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  234. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  235. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  236. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  237. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  238. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  239. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  240. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  241. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  242. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  243. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  244. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  245. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  246. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  247. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  248. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  249. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  250. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  251. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  252. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  253. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  254. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  255. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  256. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  257. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  258. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  259. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  260. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  261. package/dist/esm/components/Icon/components/index.js +12 -10
  262. package/dist/esm/components/Icon/components/index.js.map +1 -1
  263. package/dist/esm/components/IconButton/IconButton.js +11 -9
  264. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  265. package/dist/esm/components/Input/Input.js +25 -27
  266. package/dist/esm/components/Input/Input.js.map +1 -1
  267. package/dist/esm/components/Input/util.js +2 -2
  268. package/dist/esm/components/Input/util.js.map +1 -1
  269. package/dist/esm/components/Listbox/Listbox.js +25 -24
  270. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  271. package/dist/esm/components/Listbox/ScrollableList.js +83 -64
  272. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  273. package/dist/esm/components/Listbox/useListbox.js +60 -51
  274. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  275. package/dist/esm/components/Listbox/useMultiListbox.js +91 -64
  276. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  277. package/dist/esm/components/Listbox/useTypeahead.js +9 -10
  278. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  279. package/dist/esm/components/Listbox/util.js +85 -48
  280. package/dist/esm/components/Listbox/util.js.map +1 -1
  281. package/dist/esm/components/Menu/Context.js +2 -2
  282. package/dist/esm/components/Menu/Context.js.map +1 -1
  283. package/dist/esm/components/Menu/Menu.js +43 -20
  284. package/dist/esm/components/Menu/Menu.js.map +1 -1
  285. package/dist/esm/components/Menu/components/Checkbox.js +9 -8
  286. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  287. package/dist/esm/components/Menu/components/Content.js +13 -10
  288. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  289. package/dist/esm/components/Menu/components/Header.js +4 -4
  290. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  291. package/dist/esm/components/Menu/components/Item.js +35 -34
  292. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  293. package/dist/esm/components/Menu/components/Link.js +11 -10
  294. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  295. package/dist/esm/components/Menu/components/RadioGroup.js +18 -16
  296. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  297. package/dist/esm/components/Menu/components/Separator.js +4 -4
  298. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  299. package/dist/esm/components/Menu/components/Trigger.js +5 -5
  300. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  301. package/dist/esm/components/Navigation/Navigation.js +44 -35
  302. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  303. package/dist/esm/components/Pagination/PageNumbers.js +28 -23
  304. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  305. package/dist/esm/components/Pagination/Pagination.js +56 -39
  306. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  307. package/dist/esm/components/Pagination/usePagination.js +21 -7
  308. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  309. package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
  310. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  311. package/dist/esm/components/Popover/Popover.js +34 -29
  312. package/dist/esm/components/Popover/Popover.js.map +1 -1
  313. package/dist/esm/components/Popover/Primitives.js +8 -7
  314. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  315. package/dist/esm/components/Progress/Progress.js +15 -11
  316. package/dist/esm/components/Progress/Progress.js.map +1 -1
  317. package/dist/esm/components/Provider/Provider.js +18 -13
  318. package/dist/esm/components/Provider/Provider.js.map +1 -1
  319. package/dist/esm/components/RadioGroup/RadioGroup.js +57 -45
  320. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  321. package/dist/esm/components/SearchInput/SearchInput.js +11 -10
  322. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  323. package/dist/esm/components/Select/Select.js +31 -30
  324. package/dist/esm/components/Select/Select.js.map +1 -1
  325. package/dist/esm/components/Select/useSelect.js +82 -64
  326. package/dist/esm/components/Select/useSelect.js.map +1 -1
  327. package/dist/esm/components/Spinner/Spinner.js +19 -12
  328. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  329. package/dist/esm/components/Switch/Switch.js +10 -9
  330. package/dist/esm/components/Switch/Switch.js.map +1 -1
  331. package/dist/esm/components/Table/components/BaseTable.js +30 -23
  332. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  333. package/dist/esm/components/Table/components/PaginatedTable.js +7 -3
  334. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  335. package/dist/esm/components/Table/components/Table.js +25 -18
  336. package/dist/esm/components/Table/components/Table.js.map +1 -1
  337. package/dist/esm/components/Table/components/WindowedTable.js +104 -88
  338. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  339. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +146 -122
  340. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  341. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +61 -57
  342. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  343. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +36 -39
  344. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  345. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +90 -80
  346. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  347. package/dist/esm/components/Table/hooks/useRowCreation.js +64 -29
  348. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  349. package/dist/esm/components/Table/hooks/useTable.js +141 -119
  350. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  351. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +15 -12
  352. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  353. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  354. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  355. package/dist/esm/components/Table/util/renderRow.js +46 -37
  356. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  357. package/dist/esm/components/Table/util/rowIndexPath.js +16 -14
  358. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  359. package/dist/esm/components/Table/util/sortTypes.js +31 -23
  360. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  361. package/dist/esm/components/Table/util.js +41 -29
  362. package/dist/esm/components/Table/util.js.map +1 -1
  363. package/dist/esm/components/Tabs/Tabs.js +27 -25
  364. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  365. package/dist/esm/components/Textarea/Textarea.js +9 -11
  366. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  367. package/dist/esm/components/Toast/Toast.js +21 -20
  368. package/dist/esm/components/Toast/Toast.js.map +1 -1
  369. package/dist/esm/components/Toast/Toaster.js +118 -88
  370. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  371. package/dist/esm/components/Toast/util.js +2 -2
  372. package/dist/esm/components/Toast/util.js.map +1 -1
  373. package/dist/esm/components/Tooltip/Tooltip.js +8 -7
  374. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  375. package/dist/esm/components/Tour/Tour.js +50 -44
  376. package/dist/esm/components/Tour/Tour.js.map +1 -1
  377. package/dist/esm/components/Treeview/Treeview.js +36 -26
  378. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  379. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  380. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  381. package/dist/esm/index.css +665 -665
  382. package/dist/esm/index.js +1 -1
  383. package/dist/esm/primitives/Button.js +13 -9
  384. package/dist/esm/primitives/Button.js.map +1 -1
  385. package/dist/esm/utils/date.js.map +1 -1
  386. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  387. package/dist/esm/utils/hooks/useDraggable.js +18 -16
  388. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  389. package/dist/esm/utils/hooks/useDropTarget.js +10 -7
  390. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  391. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  392. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  393. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  394. package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
  395. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  396. package/dist/esm/utils/hooks/useTimer.js +17 -9
  397. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  398. package/dist/esm/utils/input.js +11 -7
  399. package/dist/esm/utils/input.js.map +1 -1
  400. package/dist/esm/utils/mergeRefs.js +2 -2
  401. package/dist/esm/utils/mergeRefs.js.map +1 -1
  402. package/dist/esm/utils/taillwind.js +2 -2
  403. package/dist/esm/utils/taillwind.js.map +1 -1
  404. package/dist/index.css +665 -665
  405. package/dist/taco.cjs.development.js +2717 -2214
  406. package/dist/taco.cjs.development.js.map +1 -1
  407. package/dist/taco.cjs.production.min.js +1 -1
  408. package/dist/taco.cjs.production.min.js.map +1 -1
  409. package/dist/utils/tailwind.d.ts +1 -1
  410. package/package.json +2 -3
  411. package/plugins/tailwindcss-aria-attributes.js +73 -73
  412. package/tailwind.config.js +297 -297
  413. package/types.json +16 -12
  414. package/dist/esm/components/Icon/components/Minus.js.map +0 -1
  415. package/dist/esm/components/Icon/components/PlusCircle.js.map +0 -1
  416. package/dist/esm/components/Icon/components/TickCircle.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useCombobox.js","sources":["../../../../src/components/Combobox/useCombobox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport keycode from 'keycode';\r\nimport { v4 as uuid } from 'uuid';\r\nimport debounce from 'lodash/debounce';\r\nimport { ComboboxProps } from './Combobox';\r\nimport {\r\n setInputValueByRef,\r\n getIndexFromValue,\r\n findByValue,\r\n useFlattenedData,\r\n sanitizeItem,\r\n getOptionParents,\r\n filterData,\r\n} from '../Listbox/util';\r\nimport { createCustomKeyboardEvent } from '../../utils/input';\r\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\r\nimport { getId, ScrollableListItemValue, ScrollableListPropsWithRef } from '../Listbox/ScrollableList';\r\n\r\nconst debouncer = debounce(f => f(), 200);\r\n\r\nconst convertToInputValue = (value: ScrollableListItemValue | undefined) => String(value ?? '');\r\n\r\ntype useCombobox = React.HTMLAttributes<HTMLDivElement> & {\r\n combobox: React.HTMLAttributes<HTMLSpanElement>;\r\n input: Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue'> & { ref: React.RefObject<HTMLInputElement> };\r\n list: ScrollableListPropsWithRef;\r\n button: { ref: any };\r\n popover: { open: boolean; onOpenChange: (open: boolean) => void };\r\n};\r\n\r\nexport const useCombobox = (\r\n {\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n data: unfilteredData = [],\r\n defaultValue,\r\n disabled,\r\n id: nativeId,\r\n inline,\r\n loading: __,\r\n onChange,\r\n onClick,\r\n onKeyDown,\r\n onSearch,\r\n readOnly,\r\n value,\r\n ...props\r\n }: Omit<ComboboxProps, 'dialog'>,\r\n ref: React.Ref<HTMLInputElement>\r\n): useCombobox => {\r\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\r\n const buttonRef = React.useRef<HTMLButtonElement>(null);\r\n const listRef = React.useRef<HTMLUListElement>(null);\r\n const [open, setOpen] = React.useState(false);\r\n const listId = React.useMemo(() => uuid(), []);\r\n const [inputValue, setInputValue] = React.useState<string>(convertToInputValue(value));\r\n const shouldFilterData = !onSearch && (!inline || (inline && inputValue !== convertToInputValue(value)));\r\n const flattenedData = useFlattenedData(unfilteredData);\r\n const data = React.useMemo(\r\n () => (shouldFilterData ? filterData(flattenedData, inputValue) : flattenedData),\r\n [shouldFilterData, inputValue, flattenedData]\r\n );\r\n // listbox/select change value _with_ the index, but combobox changes on select of an index (click/enter), so we need state\r\n const [currentIndex, setCurrentIndex] = React.useState<number | undefined>(\r\n inputValue !== undefined ? getIndexFromValue(data, inputValue) : undefined\r\n );\r\n\r\n const setInputValueByIndex = (index: number | undefined): void => {\r\n if (index !== undefined) {\r\n const option = data[index];\r\n\r\n if (option && !option.disabled) {\r\n setInputValueByRef(inputRef.current, option.value, 'focusout');\r\n }\r\n }\r\n };\r\n\r\n const setCurrentValue = (index: number | undefined) => {\r\n if (index === undefined) {\r\n return;\r\n }\r\n\r\n const option = data[index];\r\n\r\n // if the selected option is not already selected, trigger blur event\r\n if (option.value !== value) {\r\n setInputValueByIndex(index);\r\n } else {\r\n // if the selected option is already selected, refill input with its value\r\n setInputValue(convertToInputValue(value));\r\n }\r\n };\r\n\r\n // ensure the external value is synced with the internal value when mounting, e.g. incase a default value was set\r\n React.useEffect(() => {\r\n if (defaultValue && !value) {\r\n setInputValueByIndex(getIndexFromValue(data, defaultValue));\r\n }\r\n }, [data]);\r\n\r\n // update input value if it changed 'externally', e.g. clicking/entering an item in the listbox, from a modal etc\r\n React.useEffect(() => {\r\n if (value !== undefined && value !== inputValue) {\r\n setInputValue(convertToInputValue(value));\r\n }\r\n }, [value]);\r\n\r\n React.useEffect(() => {\r\n if (onSearch) {\r\n debouncer(() => {\r\n onSearch(inputValue);\r\n });\r\n }\r\n }, [inputValue]);\r\n\r\n // show listbox based on input value\r\n React.useEffect(() => {\r\n // don't show the popover if the internal (input) value already is the current value\r\n // this prevents the popover showing after selecting a value or pressing escape\r\n const isCurrentValue = value !== undefined && value !== null && inputValue === String(value);\r\n\r\n if (inputValue && data.length && !isCurrentValue) {\r\n setCurrentIndex(0);\r\n\r\n if (!open) {\r\n setOpen(true);\r\n }\r\n } else {\r\n setOpen(false);\r\n }\r\n }, [inputValue, data]);\r\n\r\n React.useEffect(() => {\r\n if (open) {\r\n setCurrentIndex(getIndexFromValue(data, inputValue) || 0);\r\n } else {\r\n setCurrentIndex(undefined);\r\n }\r\n }, [open]);\r\n\r\n // event handlers\r\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n if (event.relatedTarget === listRef.current) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (onChange && event.target.value !== value) {\r\n const item = findByValue(flattenedData, event.target.value);\r\n (event as any).detail = sanitizeItem(item);\r\n\r\n const parents = getOptionParents(flattenedData, item?.path);\r\n\r\n if (parents !== null && parents.length > 0) {\r\n (event as any).detail.parents = parents;\r\n }\r\n\r\n onChange(event);\r\n }\r\n\r\n if (props.onBlur) {\r\n props.onBlur(event);\r\n }\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n setInputValue(event.target.value);\r\n };\r\n\r\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>): void => {\r\n if (inline || (!open && inputValue && data.length)) {\r\n setOpen(true);\r\n }\r\n\r\n if (onClick) {\r\n event.persist();\r\n onClick(event);\r\n }\r\n };\r\n\r\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n switch (event.keyCode) {\r\n case keycode('backspace'): {\r\n return;\r\n }\r\n\r\n case keycode('escape'): {\r\n event.preventDefault();\r\n setInputValue(convertToInputValue(value));\r\n setOpen(false);\r\n return;\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\r\n setCurrentValue(currentIndex);\r\n setOpen(false);\r\n return;\r\n }\r\n\r\n case keycode('down'):\r\n if (open) {\r\n event.preventDefault();\r\n } else {\r\n if (!inline && buttonRef.current) {\r\n buttonRef.current.click();\r\n }\r\n }\r\n break;\r\n\r\n case keycode('up'):\r\n case keycode('home'):\r\n case keycode('end'): {\r\n if (open) {\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n\r\n default:\r\n }\r\n\r\n // we aren't focused on the list, so manually forward the keydown event to it\r\n if (listRef.current) {\r\n listRef.current.dispatchEvent(createCustomKeyboardEvent(event));\r\n }\r\n\r\n if (inline && !open) {\r\n if (event.keyCode === keycode('up') || event.keyCode === keycode('down')) {\r\n event.preventDefault();\r\n const initialIndex = event.keyCode === keycode('up') ? data.length - 1 : 0;\r\n setCurrentIndex(currentIndex !== undefined ? currentIndex : initialIndex);\r\n setOpen(true);\r\n }\r\n }\r\n\r\n if (!event.isDefaultPrevented() && onKeyDown) {\r\n event.persist();\r\n onKeyDown(event);\r\n }\r\n };\r\n\r\n const handleListboxChange = (index: number): void => {\r\n setCurrentIndex(index);\r\n };\r\n\r\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\r\n event.preventDefault();\r\n setCurrentValue(index);\r\n setOpen(false);\r\n };\r\n\r\n const combobox = {\r\n 'aria-expanded': open,\r\n 'aria-owns': listId,\r\n 'aria-haspopup': 'listbox' as const,\r\n role: 'combobox',\r\n };\r\n\r\n const input = {\r\n ...props,\r\n 'aria-controls': listId,\r\n // Indicates that the autocomplete behavior of the text input is to suggest a list of possible values in a popup and that the suggestions\r\n // are related to the string that is present in the textbox\r\n 'aria-autocomplete': 'list' as const,\r\n // Enables assistive technologies to know which element the application regards as focused while DOM focus remains on the input element\r\n 'aria-activedescendant':\r\n currentIndex !== undefined && data[currentIndex] ? getId(listId, String(data[currentIndex].value)) : undefined,\r\n 'aria-labelledby': ariaLabelledBy,\r\n disabled,\r\n onBlur: !disabled && !readOnly ? handleInputBlur : undefined,\r\n onChange: !disabled && !readOnly ? handleInputChange : undefined,\r\n onClick: !disabled && !readOnly ? handleInputClick : undefined,\r\n onKeyDown: !disabled && !readOnly ? handleInputKeyDown : undefined,\r\n readOnly,\r\n ref: inputRef,\r\n type: 'text',\r\n value: inputValue ?? '',\r\n };\r\n\r\n const list: ScrollableListPropsWithRef = {\r\n 'aria-labelledby': ariaLabelledBy,\r\n data,\r\n disabled,\r\n id: listId,\r\n onChange: handleListboxChange,\r\n onClick: handleListboxClick,\r\n ref: listRef,\r\n scrollOnFocus: false,\r\n tabIndex: -1,\r\n value: currentIndex,\r\n };\r\n\r\n const button = {\r\n ref: buttonRef,\r\n };\r\n\r\n return {\r\n combobox,\r\n input,\r\n list,\r\n button,\r\n popover: {\r\n open,\r\n onOpenChange: setOpen,\r\n //visible: !data.length ? false : open,\r\n },\r\n };\r\n};\r\n"],"names":["debouncer","debounce","f","convertToInputValue","value","String","useCombobox","ariaLabel","ariaLabelledBy","data","unfilteredData","defaultValue","disabled","id","nativeId","inline","loading","__","onChange","onClick","onKeyDown","onSearch","readOnly","props","ref","inputRef","useProxiedRef","buttonRef","React","listRef","open","setOpen","listId","uuid","inputValue","setInputValue","shouldFilterData","flattenedData","useFlattenedData","filterData","currentIndex","setCurrentIndex","undefined","getIndexFromValue","setInputValueByIndex","index","option","setInputValueByRef","current","setCurrentValue","isCurrentValue","length","handleInputBlur","event","persist","relatedTarget","preventDefault","target","item","findByValue","detail","sanitizeItem","parents","getOptionParents","path","onBlur","handleInputChange","handleInputClick","handleInputKeyDown","keyCode","keycode","click","dispatchEvent","createCustomKeyboardEvent","initialIndex","isDefaultPrevented","handleListboxChange","handleListboxClick","combobox","role","input","getId","type","list","scrollOnFocus","tabIndex","button","popover","onOpenChange"],"mappings":";;;;;;;;;AAkBA,MAAMA,SAAS,gBAAGC,QAAQ,CAACC,CAAC,IAAIA,CAAC,EAAP,EAAW,GAAX,CAA1B;;AAEA,MAAMC,mBAAmB,GAAIC,KAAD,IAAgDC,MAAM,CAACD,KAAD,aAACA,KAAD,cAACA,KAAD,GAAU,EAAV,CAAlF;;MAUaE,WAAW,GAAG,CACvB;AACI,gBAAcC,SADlB;AAEI,qBAAmBC,cAFvB;AAGIC,EAAAA,IAAI,EAAEC,cAAc,GAAG,EAH3B;AAIIC,EAAAA,YAJJ;AAKIC,EAAAA,QALJ;AAMIC,EAAAA,EAAE,EAAEC,QANR;AAOIC,EAAAA,MAPJ;AAQIC,EAAAA,OAAO,EAAEC,EARb;AASIC,EAAAA,QATJ;AAUIC,EAAAA,OAVJ;AAWIC,EAAAA,SAXJ;AAYIC,EAAAA,QAZJ;AAaIC,EAAAA,QAbJ;AAcIlB,EAAAA,KAdJ;AAeI,KAAGmB;AAfP,CADuB,EAkBvBC,GAlBuB;AAoBvB,QAAMC,QAAQ,GAAGC,aAAa,CAAmBF,GAAnB,CAA9B;AACA,QAAMG,SAAS,GAAGC,MAAA,CAAgC,IAAhC,CAAlB;AACA,QAAMC,OAAO,GAAGD,MAAA,CAA+B,IAA/B,CAAhB;AACA,QAAM,CAACE,IAAD,EAAOC,OAAP,IAAkBH,QAAA,CAAe,KAAf,CAAxB;AACA,QAAMI,MAAM,GAAGJ,OAAA,CAAc,MAAMK,EAAI,EAAxB,EAA4B,EAA5B,CAAf;AACA,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BP,QAAA,CAAuBzB,mBAAmB,CAACC,KAAD,CAA1C,CAApC;AACA,QAAMgC,gBAAgB,GAAG,CAACf,QAAD,KAAc,CAACN,MAAD,IAAYA,MAAM,IAAImB,UAAU,KAAK/B,mBAAmB,CAACC,KAAD,CAAtE,CAAzB;AACA,QAAMiC,aAAa,GAAGC,gBAAgB,CAAC5B,cAAD,CAAtC;AACA,QAAMD,IAAI,GAAGmB,OAAA,CACT,MAAOQ,gBAAgB,GAAGG,UAAU,CAACF,aAAD,EAAgBH,UAAhB,CAAb,GAA2CG,aADzD,EAET,CAACD,gBAAD,EAAmBF,UAAnB,EAA+BG,aAA/B,CAFS,CAAb;;AAKA,QAAM,CAACG,YAAD,EAAeC,eAAf,IAAkCb,QAAA,CACpCM,UAAU,KAAKQ,SAAf,GAA2BC,iBAAiB,CAAClC,IAAD,EAAOyB,UAAP,CAA5C,GAAiEQ,SAD7B,CAAxC;;AAIA,QAAME,oBAAoB,GAAIC,KAAD;AACzB,QAAIA,KAAK,KAAKH,SAAd,EAAyB;AACrB,YAAMI,MAAM,GAAGrC,IAAI,CAACoC,KAAD,CAAnB;;AAEA,UAAIC,MAAM,IAAI,CAACA,MAAM,CAAClC,QAAtB,EAAgC;AAC5BmC,QAAAA,kBAAkB,CAACtB,QAAQ,CAACuB,OAAV,EAAmBF,MAAM,CAAC1C,KAA1B,EAAiC,UAAjC,CAAlB;AACH;AACJ;AACJ,GARD;;AAUA,QAAM6C,eAAe,GAAIJ,KAAD;AACpB,QAAIA,KAAK,KAAKH,SAAd,EAAyB;AACrB;AACH;;AAED,UAAMI,MAAM,GAAGrC,IAAI,CAACoC,KAAD,CAAnB;;AAGA,QAAIC,MAAM,CAAC1C,KAAP,KAAiBA,KAArB,EAA4B;AACxBwC,MAAAA,oBAAoB,CAACC,KAAD,CAApB;AACH,KAFD,MAEO;AACH;AACAV,MAAAA,aAAa,CAAChC,mBAAmB,CAACC,KAAD,CAApB,CAAb;AACH;AACJ,GAdD;;;AAiBAwB,EAAAA,SAAA,CAAgB;AACZ,QAAIjB,YAAY,IAAI,CAACP,KAArB,EAA4B;AACxBwC,MAAAA,oBAAoB,CAACD,iBAAiB,CAAClC,IAAD,EAAOE,YAAP,CAAlB,CAApB;AACH;AACJ,GAJD,EAIG,CAACF,IAAD,CAJH;;AAOAmB,EAAAA,SAAA,CAAgB;AACZ,QAAIxB,KAAK,KAAKsC,SAAV,IAAuBtC,KAAK,KAAK8B,UAArC,EAAiD;AAC7CC,MAAAA,aAAa,CAAChC,mBAAmB,CAACC,KAAD,CAApB,CAAb;AACH;AACJ,GAJD,EAIG,CAACA,KAAD,CAJH;AAMAwB,EAAAA,SAAA,CAAgB;AACZ,QAAIP,QAAJ,EAAc;AACVrB,MAAAA,SAAS,CAAC;AACNqB,QAAAA,QAAQ,CAACa,UAAD,CAAR;AACH,OAFQ,CAAT;AAGH;AACJ,GAND,EAMG,CAACA,UAAD,CANH;;AASAN,EAAAA,SAAA,CAAgB;AACZ;AACA;AACA,UAAMsB,cAAc,GAAG9C,KAAK,KAAKsC,SAAV,IAAuBtC,KAAK,KAAK,IAAjC,IAAyC8B,UAAU,KAAK7B,MAAM,CAACD,KAAD,CAArF;;AAEA,QAAI8B,UAAU,IAAIzB,IAAI,CAAC0C,MAAnB,IAA6B,CAACD,cAAlC,EAAkD;AAC9CT,MAAAA,eAAe,CAAC,CAAD,CAAf;;AAEA,UAAI,CAACX,IAAL,EAAW;AACPC,QAAAA,OAAO,CAAC,IAAD,CAAP;AACH;AACJ,KAND,MAMO;AACHA,MAAAA,OAAO,CAAC,KAAD,CAAP;AACH;AACJ,GAdD,EAcG,CAACG,UAAD,EAAazB,IAAb,CAdH;AAgBAmB,EAAAA,SAAA,CAAgB;AACZ,QAAIE,IAAJ,EAAU;AACNW,MAAAA,eAAe,CAACE,iBAAiB,CAAClC,IAAD,EAAOyB,UAAP,CAAjB,IAAuC,CAAxC,CAAf;AACH,KAFD,MAEO;AACHO,MAAAA,eAAe,CAACC,SAAD,CAAf;AACH;AACJ,GAND,EAMG,CAACZ,IAAD,CANH;;AASA,QAAMsB,eAAe,GAAIC,KAAD;AACpBA,IAAAA,KAAK,CAACC,OAAN;;AAEA,QAAID,KAAK,CAACE,aAAN,KAAwB1B,OAAO,CAACmB,OAApC,EAA6C;AACzCK,MAAAA,KAAK,CAACG,cAAN;AACA;AACH;;AAED,QAAItC,QAAQ,IAAImC,KAAK,CAACI,MAAN,CAAarD,KAAb,KAAuBA,KAAvC,EAA8C;AAC1C,YAAMsD,IAAI,GAAGC,WAAW,CAACtB,aAAD,EAAgBgB,KAAK,CAACI,MAAN,CAAarD,KAA7B,CAAxB;AACCiD,MAAAA,KAAa,CAACO,MAAd,GAAuBC,YAAY,CAACH,IAAD,CAAnC;AAED,YAAMI,OAAO,GAAGC,gBAAgB,CAAC1B,aAAD,EAAgBqB,IAAhB,aAAgBA,IAAhB,uBAAgBA,IAAI,CAAEM,IAAtB,CAAhC;;AAEA,UAAIF,OAAO,KAAK,IAAZ,IAAoBA,OAAO,CAACX,MAAR,GAAiB,CAAzC,EAA4C;AACvCE,QAAAA,KAAa,CAACO,MAAd,CAAqBE,OAArB,GAA+BA,OAA/B;AACJ;;AAED5C,MAAAA,QAAQ,CAACmC,KAAD,CAAR;AACH;;AAED,QAAI9B,KAAK,CAAC0C,MAAV,EAAkB;AACd1C,MAAAA,KAAK,CAAC0C,MAAN,CAAaZ,KAAb;AACH;AACJ,GAxBD;;AA0BA,QAAMa,iBAAiB,GAAIb,KAAD;AACtBlB,IAAAA,aAAa,CAACkB,KAAK,CAACI,MAAN,CAAarD,KAAd,CAAb;AACH,GAFD;;AAIA,QAAM+D,gBAAgB,GAAId,KAAD;AACrB,QAAItC,MAAM,IAAK,CAACe,IAAD,IAASI,UAAT,IAAuBzB,IAAI,CAAC0C,MAA3C,EAAoD;AAChDpB,MAAAA,OAAO,CAAC,IAAD,CAAP;AACH;;AAED,QAAIZ,OAAJ,EAAa;AACTkC,MAAAA,KAAK,CAACC,OAAN;AACAnC,MAAAA,OAAO,CAACkC,KAAD,CAAP;AACH;AACJ,GATD;;AAWA,QAAMe,kBAAkB,GAAIf,KAAD;AACvBA,IAAAA,KAAK,CAACC,OAAN;;AAEA,YAAQD,KAAK,CAACgB,OAAd;AACI,WAAKC,OAAO,CAAC,WAAD,CAAZ;AAA2B;AACvB;AACH;;AAED,WAAKA,OAAO,CAAC,QAAD,CAAZ;AAAwB;AACpBjB,UAAAA,KAAK,CAACG,cAAN;AACArB,UAAAA,aAAa,CAAChC,mBAAmB,CAACC,KAAD,CAApB,CAAb;AACA2B,UAAAA,OAAO,CAAC,KAAD,CAAP;AACA;AACH;;AAED,WAAKuC,OAAO,CAAC,KAAD,CAAZ;AACA,WAAKA,OAAO,CAAC,OAAD,CAAZ;AAAuB;AACnB,cAAIjB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,KAAD,CAA7B,EAAsC;AAClCjB,YAAAA,KAAK,CAACG,cAAN;AACH;;AAEDP,UAAAA,eAAe,CAACT,YAAD,CAAf;AACAT,UAAAA,OAAO,CAAC,KAAD,CAAP;AACA;AACH;;AAED,WAAKuC,OAAO,CAAC,MAAD,CAAZ;AACI,YAAIxC,IAAJ,EAAU;AACNuB,UAAAA,KAAK,CAACG,cAAN;AACH,SAFD,MAEO;AACH,cAAI,CAACzC,MAAD,IAAWY,SAAS,CAACqB,OAAzB,EAAkC;AAC9BrB,YAAAA,SAAS,CAACqB,OAAV,CAAkBuB,KAAlB;AACH;AACJ;;AACD;;AAEJ,WAAKD,OAAO,CAAC,IAAD,CAAZ;AACA,WAAKA,OAAO,CAAC,MAAD,CAAZ;AACA,WAAKA,OAAO,CAAC,KAAD,CAAZ;AAAqB;AACjB,cAAIxC,IAAJ,EAAU;AACNuB,YAAAA,KAAK,CAACG,cAAN;AACH;;AACD;AACH;AAxCL;;;AA8CA,QAAI3B,OAAO,CAACmB,OAAZ,EAAqB;AACjBnB,MAAAA,OAAO,CAACmB,OAAR,CAAgBwB,aAAhB,CAA8BC,yBAAyB,CAACpB,KAAD,CAAvD;AACH;;AAED,QAAItC,MAAM,IAAI,CAACe,IAAf,EAAqB;AACjB,UAAIuB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,IAAD,CAAzB,IAAmCjB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,MAAD,CAAhE,EAA0E;AACtEjB,QAAAA,KAAK,CAACG,cAAN;AACA,cAAMkB,YAAY,GAAGrB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,IAAD,CAAzB,GAAkC7D,IAAI,CAAC0C,MAAL,GAAc,CAAhD,GAAoD,CAAzE;AACAV,QAAAA,eAAe,CAACD,YAAY,KAAKE,SAAjB,GAA6BF,YAA7B,GAA4CkC,YAA7C,CAAf;AACA3C,QAAAA,OAAO,CAAC,IAAD,CAAP;AACH;AACJ;;AAED,QAAI,CAACsB,KAAK,CAACsB,kBAAN,EAAD,IAA+BvD,SAAnC,EAA8C;AAC1CiC,MAAAA,KAAK,CAACC,OAAN;AACAlC,MAAAA,SAAS,CAACiC,KAAD,CAAT;AACH;AACJ,GAlED;;AAoEA,QAAMuB,mBAAmB,GAAI/B,KAAD;AACxBJ,IAAAA,eAAe,CAACI,KAAD,CAAf;AACH,GAFD;;AAIA,QAAMgC,kBAAkB,GAAG,CAACxB,KAAD,EAAyCR,KAAzC;AACvBQ,IAAAA,KAAK,CAACG,cAAN;AACAP,IAAAA,eAAe,CAACJ,KAAD,CAAf;AACAd,IAAAA,OAAO,CAAC,KAAD,CAAP;AACH,GAJD;;AAMA,QAAM+C,QAAQ,GAAG;AACb,qBAAiBhD,IADJ;AAEb,iBAAaE,MAFA;AAGb,qBAAiB,SAHJ;AAIb+C,IAAAA,IAAI,EAAE;AAJO,GAAjB;AAOA,QAAMC,KAAK,GAAG,EACV,GAAGzD,KADO;AAEV,qBAAiBS,MAFP;AAGV;AACA;AACA,yBAAqB,MALX;AAMV;AACA,6BACIQ,YAAY,KAAKE,SAAjB,IAA8BjC,IAAI,CAAC+B,YAAD,CAAlC,GAAmDyC,KAAK,CAACjD,MAAD,EAAS3B,MAAM,CAACI,IAAI,CAAC+B,YAAD,CAAJ,CAAmBpC,KAApB,CAAf,CAAxD,GAAqGsC,SAR/F;AASV,uBAAmBlC,cATT;AAUVI,IAAAA,QAVU;AAWVqD,IAAAA,MAAM,EAAE,CAACrD,QAAD,IAAa,CAACU,QAAd,GAAyB8B,eAAzB,GAA2CV,SAXzC;AAYVxB,IAAAA,QAAQ,EAAE,CAACN,QAAD,IAAa,CAACU,QAAd,GAAyB4C,iBAAzB,GAA6CxB,SAZ7C;AAaVvB,IAAAA,OAAO,EAAE,CAACP,QAAD,IAAa,CAACU,QAAd,GAAyB6C,gBAAzB,GAA4CzB,SAb3C;AAcVtB,IAAAA,SAAS,EAAE,CAACR,QAAD,IAAa,CAACU,QAAd,GAAyB8C,kBAAzB,GAA8C1B,SAd/C;AAeVpB,IAAAA,QAfU;AAgBVE,IAAAA,GAAG,EAAEC,QAhBK;AAiBVyD,IAAAA,IAAI,EAAE,MAjBI;AAkBV9E,IAAAA,KAAK,EAAE8B,UAAF,aAAEA,UAAF,cAAEA,UAAF,GAAgB;AAlBX,GAAd;AAqBA,QAAMiD,IAAI,GAA+B;AACrC,uBAAmB3E,cADkB;AAErCC,IAAAA,IAFqC;AAGrCG,IAAAA,QAHqC;AAIrCC,IAAAA,EAAE,EAAEmB,MAJiC;AAKrCd,IAAAA,QAAQ,EAAE0D,mBAL2B;AAMrCzD,IAAAA,OAAO,EAAE0D,kBAN4B;AAOrCrD,IAAAA,GAAG,EAAEK,OAPgC;AAQrCuD,IAAAA,aAAa,EAAE,KARsB;AASrCC,IAAAA,QAAQ,EAAE,CAAC,CAT0B;AAUrCjF,IAAAA,KAAK,EAAEoC;AAV8B,GAAzC;AAaA,QAAM8C,MAAM,GAAG;AACX9D,IAAAA,GAAG,EAAEG;AADM,GAAf;AAIA,SAAO;AACHmD,IAAAA,QADG;AAEHE,IAAAA,KAFG;AAGHG,IAAAA,IAHG;AAIHG,IAAAA,MAJG;AAKHC,IAAAA,OAAO,EAAE;AACLzD,MAAAA,IADK;AAEL0D,MAAAA,YAAY,EAAEzD;AAFT;AALN,GAAP;AAWH;;;;"}
1
+ {"version":3,"file":"useCombobox.js","sources":["../../../../src/components/Combobox/useCombobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport keycode from 'keycode';\nimport { v4 as uuid } from 'uuid';\nimport debounce from 'lodash/debounce';\nimport { ComboboxProps } from './Combobox';\nimport {\n setInputValueByRef,\n getIndexFromValue,\n findByValue,\n useFlattenedData,\n sanitizeItem,\n getOptionParents,\n filterData,\n} from '../Listbox/util';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\nimport { getId, ScrollableListItemValue, ScrollableListPropsWithRef } from '../Listbox/ScrollableList';\n\nconst debouncer = debounce(f => f(), 200);\n\nconst convertToInputValue = (value: ScrollableListItemValue | undefined) => String(value ?? '');\n\ntype useCombobox = React.HTMLAttributes<HTMLDivElement> & {\n combobox: React.HTMLAttributes<HTMLSpanElement>;\n input: Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue'> & { ref: React.RefObject<HTMLInputElement> };\n list: ScrollableListPropsWithRef;\n button: { ref: any };\n popover: { open: boolean; onOpenChange: (open: boolean) => void };\n};\n\nexport const useCombobox = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data: unfilteredData = [],\n defaultValue,\n disabled,\n id: nativeId,\n inline,\n loading: __,\n onChange,\n onClick,\n onKeyDown,\n onSearch,\n readOnly,\n value,\n ...props\n }: Omit<ComboboxProps, 'dialog'>,\n ref: React.Ref<HTMLInputElement>\n): useCombobox => {\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const listRef = React.useRef<HTMLUListElement>(null);\n const [open, setOpen] = React.useState(false);\n const listId = React.useMemo(() => uuid(), []);\n const [inputValue, setInputValue] = React.useState<string>(convertToInputValue(value));\n const shouldFilterData = !onSearch && (!inline || (inline && inputValue !== convertToInputValue(value)));\n const flattenedData = useFlattenedData(unfilteredData);\n const data = React.useMemo(\n () => (shouldFilterData ? filterData(flattenedData, inputValue) : flattenedData),\n [shouldFilterData, inputValue, flattenedData]\n );\n // listbox/select change value _with_ the index, but combobox changes on select of an index (click/enter), so we need state\n const [currentIndex, setCurrentIndex] = React.useState<number | undefined>(\n inputValue !== undefined ? getIndexFromValue(data, inputValue) : undefined\n );\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n setInputValueByRef(inputRef.current, option.value, 'focusout');\n }\n }\n };\n\n const setCurrentValue = (index: number | undefined) => {\n if (index === undefined) {\n return;\n }\n\n const option = data[index];\n\n // if the selected option is not already selected, trigger blur event\n if (option.value !== value) {\n setInputValueByIndex(index);\n } else {\n // if the selected option is already selected, refill input with its value\n setInputValue(convertToInputValue(value));\n }\n };\n\n // ensure the external value is synced with the internal value when mounting, e.g. incase a default value was set\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByIndex(getIndexFromValue(data, defaultValue));\n }\n }, [data]);\n\n // update input value if it changed 'externally', e.g. clicking/entering an item in the listbox, from a modal etc\n React.useEffect(() => {\n if (value !== undefined && value !== inputValue) {\n setInputValue(convertToInputValue(value));\n }\n }, [value]);\n\n React.useEffect(() => {\n if (onSearch) {\n debouncer(() => {\n onSearch(inputValue);\n });\n }\n }, [inputValue]);\n\n // show listbox based on input value\n React.useEffect(() => {\n // don't show the popover if the internal (input) value already is the current value\n // this prevents the popover showing after selecting a value or pressing escape\n const isCurrentValue = value !== undefined && value !== null && inputValue === String(value);\n\n if (inputValue && data.length && !isCurrentValue) {\n setCurrentIndex(0);\n\n if (!open) {\n setOpen(true);\n }\n } else {\n setOpen(false);\n }\n }, [inputValue, data]);\n\n React.useEffect(() => {\n if (open) {\n setCurrentIndex(getIndexFromValue(data, inputValue) || 0);\n } else {\n setCurrentIndex(undefined);\n }\n }, [open]);\n\n // event handlers\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (event.relatedTarget === listRef.current) {\n event.preventDefault();\n return;\n }\n\n if (onChange && event.target.value !== value) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const parents = getOptionParents(flattenedData, item?.path);\n\n if (parents !== null && parents.length > 0) {\n (event as any).detail.parents = parents;\n }\n\n onChange(event);\n }\n\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>): void => {\n if (inline || (!open && inputValue && data.length)) {\n setOpen(true);\n }\n\n if (onClick) {\n event.persist();\n onClick(event);\n }\n };\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n event.persist();\n\n switch (event.keyCode) {\n case keycode('backspace'): {\n return;\n }\n\n case keycode('escape'): {\n event.preventDefault();\n setInputValue(convertToInputValue(value));\n setOpen(false);\n return;\n }\n\n case keycode('tab'):\n case keycode('enter'): {\n if (event.keyCode !== keycode('tab')) {\n event.preventDefault();\n }\n\n setCurrentValue(currentIndex);\n setOpen(false);\n return;\n }\n\n case keycode('down'):\n if (open) {\n event.preventDefault();\n } else {\n if (!inline && buttonRef.current) {\n buttonRef.current.click();\n }\n }\n break;\n\n case keycode('up'):\n case keycode('home'):\n case keycode('end'): {\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n default:\n }\n\n // we aren't focused on the list, so manually forward the keydown event to it\n if (listRef.current) {\n listRef.current.dispatchEvent(createCustomKeyboardEvent(event));\n }\n\n if (inline && !open) {\n if (event.keyCode === keycode('up') || event.keyCode === keycode('down')) {\n event.preventDefault();\n const initialIndex = event.keyCode === keycode('up') ? data.length - 1 : 0;\n setCurrentIndex(currentIndex !== undefined ? currentIndex : initialIndex);\n setOpen(true);\n }\n }\n\n if (!event.isDefaultPrevented() && onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxChange = (index: number): void => {\n setCurrentIndex(index);\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n setCurrentValue(index);\n setOpen(false);\n };\n\n const combobox = {\n 'aria-expanded': open,\n 'aria-owns': listId,\n 'aria-haspopup': 'listbox' as const,\n role: 'combobox',\n };\n\n const input = {\n ...props,\n 'aria-controls': listId,\n // Indicates that the autocomplete behavior of the text input is to suggest a list of possible values in a popup and that the suggestions\n // are related to the string that is present in the textbox\n 'aria-autocomplete': 'list' as const,\n // Enables assistive technologies to know which element the application regards as focused while DOM focus remains on the input element\n 'aria-activedescendant':\n currentIndex !== undefined && data[currentIndex] ? getId(listId, String(data[currentIndex].value)) : undefined,\n 'aria-labelledby': ariaLabelledBy,\n disabled,\n onBlur: !disabled && !readOnly ? handleInputBlur : undefined,\n onChange: !disabled && !readOnly ? handleInputChange : undefined,\n onClick: !disabled && !readOnly ? handleInputClick : undefined,\n onKeyDown: !disabled && !readOnly ? handleInputKeyDown : undefined,\n readOnly,\n ref: inputRef,\n type: 'text',\n value: inputValue ?? '',\n };\n\n const list: ScrollableListPropsWithRef = {\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n id: listId,\n onChange: handleListboxChange,\n onClick: handleListboxClick,\n ref: listRef,\n scrollOnFocus: false,\n tabIndex: -1,\n value: currentIndex,\n };\n\n const button = {\n ref: buttonRef,\n };\n\n return {\n combobox,\n input,\n list,\n button,\n popover: {\n open,\n onOpenChange: setOpen,\n //visible: !data.length ? false : open,\n },\n };\n};\n"],"names":["debouncer","debounce","f","convertToInputValue","value","String","useCombobox","ref","ariaLabelledBy","data","unfilteredData","defaultValue","disabled","inline","onChange","onClick","onKeyDown","onSearch","readOnly","props","inputRef","useProxiedRef","buttonRef","React","listRef","open","setOpen","listId","uuid","inputValue","setInputValue","shouldFilterData","flattenedData","useFlattenedData","filterData","undefined","getIndexFromValue","currentIndex","setCurrentIndex","setInputValueByIndex","index","option","setInputValueByRef","current","setCurrentValue","isCurrentValue","length","handleInputBlur","event","persist","relatedTarget","preventDefault","target","item","findByValue","detail","sanitizeItem","parents","getOptionParents","path","onBlur","handleInputChange","handleInputClick","handleInputKeyDown","keyCode","keycode","click","dispatchEvent","createCustomKeyboardEvent","initialIndex","isDefaultPrevented","handleListboxChange","handleListboxClick","combobox","role","input","getId","type","list","id","scrollOnFocus","tabIndex","button","popover","onOpenChange"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { forwardRef, createElement } from 'react';
2
3
  import cn from 'classnames';
3
4
  import { IconButton } from '../IconButton/IconButton.js';
@@ -7,25 +8,25 @@ import { Input } from '../Input/Input.js';
7
8
  import { useDatepicker } from './useDatepicker.js';
8
9
  import { Popover } from '../Popover/Popover.js';
9
10
 
10
- const Datepicker = /*#__PURE__*/forwardRef(function Datepicker(props, ref) {
11
+ var _excluded = ["className", "onReset", "style", "shortcuts", "shortcutsText"];
12
+ var Datepicker = /*#__PURE__*/forwardRef(function Datepicker(props, ref) {
11
13
  var _input$disabled;
12
14
 
13
- const {
14
- className: externalClassName,
15
- onReset: handleReset,
16
- style,
17
- shortcuts,
18
- shortcutsText,
19
- ...otherProps
20
- } = props;
21
- const {
22
- calendar,
23
- input
24
- } = useDatepicker(otherProps, ref);
25
- const {
26
- texts
27
- } = useLocalization();
28
- const className = cn('inline-flex w-full text-black font-normal', externalClassName);
15
+ var externalClassName = props.className,
16
+ handleReset = props.onReset,
17
+ style = props.style,
18
+ shortcuts = props.shortcuts,
19
+ shortcutsText = props.shortcutsText,
20
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
21
+
22
+ var _useDatepicker = useDatepicker(otherProps, ref),
23
+ calendar = _useDatepicker.calendar,
24
+ input = _useDatepicker.input;
25
+
26
+ var _useLocalization = useLocalization(),
27
+ texts = _useLocalization.texts;
28
+
29
+ var className = cn('inline-flex w-full text-black font-normal', externalClassName);
29
30
  return createElement("span", {
30
31
  className: className,
31
32
  "data-taco": "datepicker",
@@ -35,37 +36,40 @@ const Datepicker = /*#__PURE__*/forwardRef(function Datepicker(props, ref) {
35
36
  "aria-label": texts.datepicker.expand,
36
37
  disabled: (_input$disabled = input.disabled) !== null && _input$disabled !== void 0 ? _input$disabled : input.readOnly,
37
38
  icon: "calendar"
38
- })), createElement(Popover.Content, null, ({
39
- close
40
- }) => createElement("div", {
41
- className: "flex -m-3"
42
- }, createElement(Calendar, Object.assign({}, calendar, {
43
- onChange: (date, event) => {
44
- calendar.onChange(date, event);
45
- close();
46
- },
47
- tabIndex: -1
48
- })), shortcuts && createElement("div", {
49
- className: "border-l border-grey-dark flex flex-col"
50
- }, createElement("span", {
51
- className: "font-semibold text-xs m-4 flex items-center h-8 w-32 mb-3"
52
- }, shortcutsText !== null && shortcutsText !== void 0 ? shortcutsText : texts.datepicker.shortcuts), createElement("ul", null, shortcuts.map((shortcut, i) => createElement("li", {
53
- key: i
54
- }, createElement("button", {
55
- className: "w-full px-4 py-1 flex items-start hover:bg-grey-light text-xs",
56
- onClick: event => {
57
- event.persist();
58
- shortcut.onClick(event);
59
- close();
60
- }
61
- }, shortcut.text)))), handleReset && createElement("button", {
62
- className: "text-blue hover:text-blue-light inline-flex border-none bg-transparent text-xs cursor-pointer mt-auto my-4 mx-auto",
63
- onClick: event => {
64
- event.persist();
65
- handleReset(event);
66
- close();
67
- }
68
- }, texts.datepicker.clear)))))
39
+ })), createElement(Popover.Content, null, function (_ref) {
40
+ var close = _ref.close;
41
+ return createElement("div", {
42
+ className: "flex -m-3"
43
+ }, createElement(Calendar, Object.assign({}, calendar, {
44
+ onChange: function onChange(date, event) {
45
+ calendar.onChange(date, event);
46
+ close();
47
+ },
48
+ tabIndex: -1
49
+ })), shortcuts && createElement("div", {
50
+ className: "border-l border-grey-dark flex flex-col"
51
+ }, createElement("span", {
52
+ className: "font-semibold text-xs m-4 flex items-center h-8 w-32 mb-3"
53
+ }, shortcutsText !== null && shortcutsText !== void 0 ? shortcutsText : texts.datepicker.shortcuts), createElement("ul", null, shortcuts.map(function (shortcut, i) {
54
+ return createElement("li", {
55
+ key: i
56
+ }, createElement("button", {
57
+ className: "w-full px-4 py-1 flex items-start hover:bg-grey-light text-xs",
58
+ onClick: function onClick(event) {
59
+ event.persist();
60
+ shortcut.onClick(event);
61
+ close();
62
+ }
63
+ }, shortcut.text));
64
+ })), handleReset && createElement("button", {
65
+ className: "text-blue hover:text-blue-light inline-flex border-none bg-transparent text-xs cursor-pointer mt-auto my-4 mx-auto",
66
+ onClick: function onClick(event) {
67
+ event.persist();
68
+ handleReset(event);
69
+ close();
70
+ }
71
+ }, texts.datepicker.clear)));
72
+ }))
69
73
  })));
70
74
  });
71
75
 
@@ -1 +1 @@
1
- {"version":3,"file":"Datepicker.js","sources":["../../../../src/components/Datepicker/Datepicker.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { Calendar, CalendarProps } from '../Calendar/Calendar';\r\nimport { Input, InputProps } from '../Input/Input';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { useDatepicker } from './useDatepicker';\r\nimport { IconButton } from '../IconButton/IconButton';\r\nimport { Popover } from '../Popover/Popover';\r\n\r\nexport type DatepickerTexts = {\r\n /** Aria-label for calendar */\r\n calendar: string;\r\n /** Clear button text */\r\n clear: string;\r\n /**\r\n * Aria-label for calendar icon button in the input.\r\n * Calendar will open when user clicks this icon button.\r\n */\r\n expand: string;\r\n /** Shortcut heading text */\r\n shortcuts: string;\r\n};\r\n\r\nexport type DatepickerProps = Omit<InputProps, 'value'> & {\r\n /** [Calendar](component:calendar) component associated with the DatePicker */\r\n calendar?: CalendarProps;\r\n /** List of shortcuts */\r\n shortcuts?: any;\r\n /** Title for the shortcuts panel */\r\n shortcutsText?: string;\r\n /** Handler to be called when the clear button is clicked */\r\n onReset?: (event: React.MouseEvent<HTMLButtonElement>) => void;\r\n /**\r\n * Date value of the calendar.\r\n * This will be displayed in DatePicker's input in the format given to the [Provider](component:provider) component\r\n */\r\n value?: Date;\r\n};\r\n\r\nexport const Datepicker = React.forwardRef(function Datepicker(props: DatepickerProps, ref: React.Ref<HTMLInputElement>) {\r\n const { className: externalClassName, onReset: handleReset, style, shortcuts, shortcutsText, ...otherProps } = props;\r\n const { calendar, input } = useDatepicker(otherProps, ref);\r\n const { texts } = useLocalization();\r\n const className = cn('inline-flex w-full text-black font-normal', externalClassName);\r\n\r\n return (\r\n <span className={className} data-taco=\"datepicker\" style={style}>\r\n <Input\r\n {...input}\r\n button={\r\n <Popover>\r\n <Popover.Trigger>\r\n <IconButton\r\n aria-label={texts.datepicker.expand}\r\n disabled={input.disabled ?? input.readOnly}\r\n icon=\"calendar\"\r\n />\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n {({ close }) => (\r\n <div className=\"flex -m-3\">\r\n <Calendar\r\n {...calendar}\r\n onChange={(date: Date, event?: React.MouseEvent<HTMLDivElement>) => {\r\n calendar.onChange(date, event);\r\n close();\r\n }}\r\n tabIndex={-1}\r\n />\r\n {shortcuts && (\r\n <div className=\"border-l border-grey-dark flex flex-col\">\r\n <span className=\"font-semibold text-xs m-4 flex items-center h-8 w-32 mb-3\">\r\n {shortcutsText ?? texts.datepicker.shortcuts}\r\n </span>\r\n <ul>\r\n {shortcuts.map((shortcut, i) => (\r\n <li key={i}>\r\n <button\r\n className=\"w-full px-4 py-1 flex items-start hover:bg-grey-light text-xs\"\r\n onClick={event => {\r\n event.persist();\r\n shortcut.onClick(event);\r\n close();\r\n }}\r\n >\r\n {shortcut.text}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n {handleReset && (\r\n <button\r\n className=\"text-blue hover:text-blue-light inline-flex border-none bg-transparent text-xs cursor-pointer mt-auto my-4 mx-auto\"\r\n onClick={event => {\r\n event.persist();\r\n handleReset(event);\r\n close();\r\n }}\r\n >\r\n {texts.datepicker.clear}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </Popover.Content>\r\n </Popover>\r\n }\r\n />\r\n </span>\r\n );\r\n});\r\n"],"names":["Datepicker","React","props","ref","className","externalClassName","onReset","handleReset","style","shortcuts","shortcutsText","otherProps","calendar","input","useDatepicker","texts","useLocalization","cn","Input","button","Popover","Trigger","IconButton","datepicker","expand","disabled","readOnly","icon","Content","close","Calendar","onChange","date","event","tabIndex","map","shortcut","i","key","onClick","persist","text","clear"],"mappings":";;;;;;;;;MAuCaA,UAAU,gBAAGC,UAAA,CAAiB,SAASD,UAAT,CAAoBE,KAApB,EAA4CC,GAA5C;;;AACvC,QAAM;AAAEC,IAAAA,SAAS,EAAEC,iBAAb;AAAgCC,IAAAA,OAAO,EAAEC,WAAzC;AAAsDC,IAAAA,KAAtD;AAA6DC,IAAAA,SAA7D;AAAwEC,IAAAA,aAAxE;AAAuF,OAAGC;AAA1F,MAAyGT,KAA/G;AACA,QAAM;AAAEU,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAsBC,aAAa,CAACH,UAAD,EAAaR,GAAb,CAAzC;AACA,QAAM;AAAEY,IAAAA;AAAF,MAAYC,eAAe,EAAjC;AACA,QAAMZ,SAAS,GAAGa,EAAE,CAAC,2CAAD,EAA8CZ,iBAA9C,CAApB;AAEA,SACIJ,aAAA,OAAA;AAAMG,IAAAA,SAAS,EAAEA;iBAAqB;AAAaI,IAAAA,KAAK,EAAEA;GAA1D,EACIP,aAAA,CAACiB,KAAD,oBACQL;AACJM,IAAAA,MAAM,EACFlB,aAAA,CAACmB,OAAD,MAAA,EACInB,aAAA,CAACmB,OAAO,CAACC,OAAT,MAAA,EACIpB,aAAA,CAACqB,UAAD;oBACgBP,KAAK,CAACQ,UAAN,CAAiBC;AAC7BC,MAAAA,QAAQ,qBAAEZ,KAAK,CAACY,QAAR,6DAAoBZ,KAAK,CAACa;AAClCC,MAAAA,IAAI,EAAC;KAHT,CADJ,CADJ,EAQI1B,aAAA,CAACmB,OAAO,CAACQ,OAAT,MAAA,EACK,CAAC;AAAEC,MAAAA;AAAF,KAAD,KACG5B,aAAA,MAAA;AAAKG,MAAAA,SAAS,EAAC;KAAf,EACIH,aAAA,CAAC6B,QAAD,oBACQlB;AACJmB,MAAAA,QAAQ,EAAE,CAACC,IAAD,EAAaC,KAAb;AACNrB,QAAAA,QAAQ,CAACmB,QAAT,CAAkBC,IAAlB,EAAwBC,KAAxB;AACAJ,QAAAA,KAAK;AACR;AACDK,MAAAA,QAAQ,EAAE,CAAC;MANf,CADJ,EASKzB,SAAS,IACNR,aAAA,MAAA;AAAKG,MAAAA,SAAS,EAAC;KAAf,EACIH,aAAA,OAAA;AAAMG,MAAAA,SAAS,EAAC;KAAhB,EACKM,aADL,aACKA,aADL,cACKA,aADL,GACsBK,KAAK,CAACQ,UAAN,CAAiBd,SADvC,CADJ,EAIIR,aAAA,KAAA,MAAA,EACKQ,SAAS,CAAC0B,GAAV,CAAc,CAACC,QAAD,EAAWC,CAAX,KACXpC,aAAA,KAAA;AAAIqC,MAAAA,GAAG,EAAED;KAAT,EACIpC,aAAA,SAAA;AACIG,MAAAA,SAAS,EAAC;AACVmC,MAAAA,OAAO,EAAEN,KAAK;AACVA,QAAAA,KAAK,CAACO,OAAN;AACAJ,QAAAA,QAAQ,CAACG,OAAT,CAAiBN,KAAjB;AACAJ,QAAAA,KAAK;AACR;KANL,EAQKO,QAAQ,CAACK,IARd,CADJ,CADH,CADL,CAJJ,EAoBKlC,WAAW,IACRN,aAAA,SAAA;AACIG,MAAAA,SAAS,EAAC;AACVmC,MAAAA,OAAO,EAAEN,KAAK;AACVA,QAAAA,KAAK,CAACO,OAAN;AACAjC,QAAAA,WAAW,CAAC0B,KAAD,CAAX;AACAJ,QAAAA,KAAK;AACR;KANL,EAQKd,KAAK,CAACQ,UAAN,CAAiBmB,KARtB,CArBR,CAVR,CAFR,CARJ;IAHR,CADJ,CADJ;AAmEH,CAzEyB;;;;"}
1
+ {"version":3,"file":"Datepicker.js","sources":["../../../../src/components/Datepicker/Datepicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport { Calendar, CalendarProps } from '../Calendar/Calendar';\nimport { Input, InputProps } from '../Input/Input';\nimport { useLocalization } from '../Provider/Provider';\nimport { useDatepicker } from './useDatepicker';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Popover } from '../Popover/Popover';\n\nexport type DatepickerTexts = {\n /** Aria-label for calendar */\n calendar: string;\n /** Clear button text */\n clear: string;\n /**\n * Aria-label for calendar icon button in the input.\n * Calendar will open when user clicks this icon button.\n */\n expand: string;\n /** Shortcut heading text */\n shortcuts: string;\n};\n\nexport type DatepickerProps = Omit<InputProps, 'value'> & {\n /** [Calendar](component:calendar) component associated with the DatePicker */\n calendar?: CalendarProps;\n /** List of shortcuts */\n shortcuts?: any;\n /** Title for the shortcuts panel */\n shortcutsText?: string;\n /** Handler to be called when the clear button is clicked */\n onReset?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /**\n * Date value of the calendar.\n * This will be displayed in DatePicker's input in the format given to the [Provider](component:provider) component\n */\n value?: Date;\n};\n\nexport const Datepicker = React.forwardRef(function Datepicker(props: DatepickerProps, ref: React.Ref<HTMLInputElement>) {\n const { className: externalClassName, onReset: handleReset, style, shortcuts, shortcutsText, ...otherProps } = props;\n const { calendar, input } = useDatepicker(otherProps, ref);\n const { texts } = useLocalization();\n const className = cn('inline-flex w-full text-black font-normal', externalClassName);\n\n return (\n <span className={className} data-taco=\"datepicker\" style={style}>\n <Input\n {...input}\n button={\n <Popover>\n <Popover.Trigger>\n <IconButton\n aria-label={texts.datepicker.expand}\n disabled={input.disabled ?? input.readOnly}\n icon=\"calendar\"\n />\n </Popover.Trigger>\n <Popover.Content>\n {({ close }) => (\n <div className=\"flex -m-3\">\n <Calendar\n {...calendar}\n onChange={(date: Date, event?: React.MouseEvent<HTMLDivElement>) => {\n calendar.onChange(date, event);\n close();\n }}\n tabIndex={-1}\n />\n {shortcuts && (\n <div className=\"border-l border-grey-dark flex flex-col\">\n <span className=\"font-semibold text-xs m-4 flex items-center h-8 w-32 mb-3\">\n {shortcutsText ?? texts.datepicker.shortcuts}\n </span>\n <ul>\n {shortcuts.map((shortcut, i) => (\n <li key={i}>\n <button\n className=\"w-full px-4 py-1 flex items-start hover:bg-grey-light text-xs\"\n onClick={event => {\n event.persist();\n shortcut.onClick(event);\n close();\n }}\n >\n {shortcut.text}\n </button>\n </li>\n ))}\n </ul>\n {handleReset && (\n <button\n className=\"text-blue hover:text-blue-light inline-flex border-none bg-transparent text-xs cursor-pointer mt-auto my-4 mx-auto\"\n onClick={event => {\n event.persist();\n handleReset(event);\n close();\n }}\n >\n {texts.datepicker.clear}\n </button>\n )}\n </div>\n )}\n </div>\n )}\n </Popover.Content>\n </Popover>\n }\n />\n </span>\n );\n});\n"],"names":["Datepicker","React","props","ref","externalClassName","className","handleReset","onReset","style","shortcuts","shortcutsText","otherProps","useDatepicker","calendar","input","useLocalization","texts","cn","Input","button","Popover","Trigger","IconButton","datepicker","expand","disabled","readOnly","icon","Content","close","Calendar","onChange","date","event","tabIndex","map","shortcut","i","key","onClick","persist","text","clear"],"mappings":"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"}
@@ -1,26 +1,31 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useState, useEffect } from 'react';
2
3
  import { useLocalization } from '../Provider/Provider.js';
3
4
  import { useProxiedRef } from '../../utils/hooks/useProxiedRef.js';
4
5
  import { setInputValueByRef } from '../../utils/input.js';
5
6
  import { format, parseFromCustomString } from '../../utils/date.js';
6
7
 
7
- const useDatepicker = ({
8
- defaultValue: _,
9
- calendar,
10
- onBlur,
11
- onChange,
12
- value,
13
- ...props
14
- }, ref) => {
15
- const inputRef = useProxiedRef(ref);
16
- const {
17
- formatting
18
- } = useLocalization();
19
- const [internalValue, setInternalValue] = useState(value ? format(value, formatting.date) : ''); // update internal value if it changed 'externally'
20
-
21
- useEffect(() => {
8
+ var _excluded = ["defaultValue", "calendar", "onBlur", "onChange", "value"];
9
+ var useDatepicker = function useDatepicker(_ref, ref) {
10
+ var calendar = _ref.calendar,
11
+ onBlur = _ref.onBlur,
12
+ onChange = _ref.onChange,
13
+ value = _ref.value,
14
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
15
+
16
+ var inputRef = useProxiedRef(ref);
17
+
18
+ var _useLocalization = useLocalization(),
19
+ formatting = _useLocalization.formatting;
20
+
21
+ var _React$useState = useState(value ? format(value, formatting.date) : ''),
22
+ internalValue = _React$useState[0],
23
+ setInternalValue = _React$useState[1]; // update internal value if it changed 'externally'
24
+
25
+
26
+ useEffect(function () {
22
27
  if (value) {
23
- const formattedValue = format(value, formatting.date);
28
+ var formattedValue = format(value, formatting.date);
24
29
 
25
30
  if (formattedValue !== internalValue) {
26
31
  setInternalValue(formattedValue);
@@ -30,10 +35,10 @@ const useDatepicker = ({
30
35
  }
31
36
  }, [value]); // event handlers
32
37
 
33
- const handleInputBlur = event => {
38
+ var handleInputBlur = function handleInputBlur(event) {
34
39
  event.persist();
35
- const valueAsDate = parseFromCustomString(event.target.value);
36
- const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
40
+ var valueAsDate = parseFromCustomString(event.target.value);
41
+ var formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
37
42
  event.target.value = formattedValue;
38
43
 
39
44
  if (onChange) {
@@ -49,15 +54,15 @@ const useDatepicker = ({
49
54
  }
50
55
  };
51
56
 
52
- const handleInputChange = event => {
57
+ var handleInputChange = function handleInputChange(event) {
53
58
  setInternalValue(event.target.value);
54
59
  };
55
60
 
56
- const handleChange = date => {
61
+ var handleChange = function handleChange(date) {
57
62
  setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');
58
63
  };
59
64
 
60
- const handleKeyDown = event => {
65
+ var handleKeyDown = function handleKeyDown(event) {
61
66
  if (event.key === 'Enter') {
62
67
  event.target.dispatchEvent(new Event('focusout', {
63
68
  bubbles: true
@@ -65,7 +70,7 @@ const useDatepicker = ({
65
70
  }
66
71
  };
67
72
 
68
- const inputProps = { ...props,
73
+ var inputProps = _extends({}, props, {
69
74
  autoComplete: 'off',
70
75
  onBlur: handleInputBlur,
71
76
  onChange: handleInputChange,
@@ -73,11 +78,13 @@ const useDatepicker = ({
73
78
  ref: inputRef,
74
79
  type: 'text',
75
80
  value: internalValue
76
- };
77
- const calendarProps = { ...calendar,
81
+ });
82
+
83
+ var calendarProps = _extends({}, calendar, {
78
84
  onChange: handleChange,
79
- value
80
- };
85
+ value: value
86
+ });
87
+
81
88
  return {
82
89
  input: inputProps,
83
90
  calendar: calendarProps
@@ -1 +1 @@
1
- {"version":3,"file":"useDatepicker.js","sources":["../../../../src/components/Datepicker/useDatepicker.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { parseFromCustomString, format } from '../../utils/date';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { setInputValueByRef } from '../../utils/input';\r\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\r\nimport { DatepickerProps } from './Datepicker';\r\nimport { CalendarProps } from '../Calendar/Calendar';\r\n\r\ntype InputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.RefObject<HTMLInputElement> };\r\n\r\ntype useDatepicker = React.HTMLAttributes<HTMLDivElement> & {\r\n calendar: CalendarProps;\r\n input: InputProps;\r\n};\r\n\r\nexport const useDatepicker = (\r\n { defaultValue: _, calendar, onBlur, onChange, value, ...props }: DatepickerProps,\r\n ref: React.Ref<HTMLInputElement>\r\n): useDatepicker => {\r\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\r\n const { formatting } = useLocalization();\r\n const [internalValue, setInternalValue] = React.useState(value ? format(value, formatting.date) : '');\r\n\r\n // update internal value if it changed 'externally'\r\n React.useEffect(() => {\r\n if (value) {\r\n const formattedValue = format(value, formatting.date);\r\n\r\n if (formattedValue !== internalValue) {\r\n setInternalValue(formattedValue);\r\n }\r\n } else {\r\n setInternalValue('');\r\n }\r\n }, [value]);\r\n\r\n // event handlers\r\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n const valueAsDate = parseFromCustomString(event.target.value);\r\n const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';\r\n\r\n event.target.value = formattedValue;\r\n\r\n if (onChange) {\r\n (event as any).detail = valueAsDate;\r\n onChange(event);\r\n } else {\r\n // update the internal value to use the formatted date\r\n setInternalValue(formattedValue);\r\n }\r\n\r\n if (onBlur) {\r\n onBlur(event);\r\n }\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n setInternalValue(event.target.value);\r\n };\r\n\r\n const handleChange = date => {\r\n setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n event.target.dispatchEvent(new Event('focusout', { bubbles: true }));\r\n }\r\n };\r\n\r\n const inputProps: InputProps = {\r\n ...props,\r\n autoComplete: 'off',\r\n onBlur: handleInputBlur,\r\n onChange: handleInputChange,\r\n onKeyDown: handleKeyDown,\r\n ref: inputRef,\r\n type: 'text',\r\n value: internalValue,\r\n };\r\n\r\n const calendarProps: CalendarProps = {\r\n ...calendar,\r\n onChange: handleChange,\r\n value,\r\n };\r\n\r\n return {\r\n input: inputProps,\r\n calendar: calendarProps,\r\n };\r\n};\r\n"],"names":["useDatepicker","defaultValue","_","calendar","onBlur","onChange","value","props","ref","inputRef","useProxiedRef","formatting","useLocalization","internalValue","setInternalValue","React","format","date","formattedValue","handleInputBlur","event","persist","valueAsDate","parseFromCustomString","target","detail","handleInputChange","handleChange","setInputValueByRef","current","handleKeyDown","key","dispatchEvent","Event","bubbles","inputProps","autoComplete","onKeyDown","type","calendarProps","input"],"mappings":";;;;;;MAeaA,aAAa,GAAG,CACzB;AAAEC,EAAAA,YAAY,EAAEC,CAAhB;AAAmBC,EAAAA,QAAnB;AAA6BC,EAAAA,MAA7B;AAAqCC,EAAAA,QAArC;AAA+CC,EAAAA,KAA/C;AAAsD,KAAGC;AAAzD,CADyB,EAEzBC,GAFyB;AAIzB,QAAMC,QAAQ,GAAGC,aAAa,CAAmBF,GAAnB,CAA9B;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAiBC,eAAe,EAAtC;AACA,QAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCC,QAAA,CAAeT,KAAK,GAAGU,MAAM,CAACV,KAAD,EAAQK,UAAU,CAACM,IAAnB,CAAT,GAAoC,EAAxD,CAA1C;;AAGAF,EAAAA,SAAA,CAAgB;AACZ,QAAIT,KAAJ,EAAW;AACP,YAAMY,cAAc,GAAGF,MAAM,CAACV,KAAD,EAAQK,UAAU,CAACM,IAAnB,CAA7B;;AAEA,UAAIC,cAAc,KAAKL,aAAvB,EAAsC;AAClCC,QAAAA,gBAAgB,CAACI,cAAD,CAAhB;AACH;AACJ,KAND,MAMO;AACHJ,MAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACH;AACJ,GAVD,EAUG,CAACR,KAAD,CAVH;;AAaA,QAAMa,eAAe,GAAIC,KAAD;AACpBA,IAAAA,KAAK,CAACC,OAAN;AAEA,UAAMC,WAAW,GAAGC,qBAAqB,CAACH,KAAK,CAACI,MAAN,CAAalB,KAAd,CAAzC;AACA,UAAMY,cAAc,GAAGI,WAAW,GAAGN,MAAM,CAACM,WAAD,CAAN,IAAuB,EAA1B,GAA+B,EAAjE;AAEAF,IAAAA,KAAK,CAACI,MAAN,CAAalB,KAAb,GAAqBY,cAArB;;AAEA,QAAIb,QAAJ,EAAc;AACTe,MAAAA,KAAa,CAACK,MAAd,GAAuBH,WAAvB;AACDjB,MAAAA,QAAQ,CAACe,KAAD,CAAR;AACH,KAHD,MAGO;AACH;AACAN,MAAAA,gBAAgB,CAACI,cAAD,CAAhB;AACH;;AAED,QAAId,MAAJ,EAAY;AACRA,MAAAA,MAAM,CAACgB,KAAD,CAAN;AACH;AACJ,GAnBD;;AAqBA,QAAMM,iBAAiB,GAAIN,KAAD;AACtBN,IAAAA,gBAAgB,CAACM,KAAK,CAACI,MAAN,CAAalB,KAAd,CAAhB;AACH,GAFD;;AAIA,QAAMqB,YAAY,GAAGV,IAAI;AACrBW,IAAAA,kBAAkB,CAACnB,QAAQ,CAACoB,OAAV,EAAmBb,MAAM,CAACC,IAAD,EAAON,UAAU,CAACM,IAAlB,CAAzB,EAAkD,UAAlD,CAAlB;AACH,GAFD;;AAIA,QAAMa,aAAa,GAAIV,KAAD;AAClB,QAAIA,KAAK,CAACW,GAAN,KAAc,OAAlB,EAA2B;AACvBX,MAAAA,KAAK,CAACI,MAAN,CAAaQ,aAAb,CAA2B,IAAIC,KAAJ,CAAU,UAAV,EAAsB;AAAEC,QAAAA,OAAO,EAAE;AAAX,OAAtB,CAA3B;AACH;AACJ,GAJD;;AAMA,QAAMC,UAAU,GAAe,EAC3B,GAAG5B,KADwB;AAE3B6B,IAAAA,YAAY,EAAE,KAFa;AAG3BhC,IAAAA,MAAM,EAAEe,eAHmB;AAI3Bd,IAAAA,QAAQ,EAAEqB,iBAJiB;AAK3BW,IAAAA,SAAS,EAAEP,aALgB;AAM3BtB,IAAAA,GAAG,EAAEC,QANsB;AAO3B6B,IAAAA,IAAI,EAAE,MAPqB;AAQ3BhC,IAAAA,KAAK,EAAEO;AARoB,GAA/B;AAWA,QAAM0B,aAAa,GAAkB,EACjC,GAAGpC,QAD8B;AAEjCE,IAAAA,QAAQ,EAAEsB,YAFuB;AAGjCrB,IAAAA;AAHiC,GAArC;AAMA,SAAO;AACHkC,IAAAA,KAAK,EAAEL,UADJ;AAEHhC,IAAAA,QAAQ,EAAEoC;AAFP,GAAP;AAIH;;;;"}
1
+ {"version":3,"file":"useDatepicker.js","sources":["../../../../src/components/Datepicker/useDatepicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { parseFromCustomString, format } from '../../utils/date';\nimport { useLocalization } from '../Provider/Provider';\nimport { setInputValueByRef } from '../../utils/input';\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\nimport { DatepickerProps } from './Datepicker';\nimport { CalendarProps } from '../Calendar/Calendar';\n\ntype InputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.RefObject<HTMLInputElement> };\n\ntype useDatepicker = React.HTMLAttributes<HTMLDivElement> & {\n calendar: CalendarProps;\n input: InputProps;\n};\n\nexport const useDatepicker = (\n { defaultValue: _, calendar, onBlur, onChange, value, ...props }: DatepickerProps,\n ref: React.Ref<HTMLInputElement>\n): useDatepicker => {\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\n const { formatting } = useLocalization();\n const [internalValue, setInternalValue] = React.useState(value ? format(value, formatting.date) : '');\n\n // update internal value if it changed 'externally'\n React.useEffect(() => {\n if (value) {\n const formattedValue = format(value, formatting.date);\n\n if (formattedValue !== internalValue) {\n setInternalValue(formattedValue);\n }\n } else {\n setInternalValue('');\n }\n }, [value]);\n\n // event handlers\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n event.persist();\n\n const valueAsDate = parseFromCustomString(event.target.value);\n const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';\n\n event.target.value = formattedValue;\n\n if (onChange) {\n (event as any).detail = valueAsDate;\n onChange(event);\n } else {\n // update the internal value to use the formatted date\n setInternalValue(formattedValue);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setInternalValue(event.target.value);\n };\n\n const handleChange = date => {\n setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.target.dispatchEvent(new Event('focusout', { bubbles: true }));\n }\n };\n\n const inputProps: InputProps = {\n ...props,\n autoComplete: 'off',\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onKeyDown: handleKeyDown,\n ref: inputRef,\n type: 'text',\n value: internalValue,\n };\n\n const calendarProps: CalendarProps = {\n ...calendar,\n onChange: handleChange,\n value,\n };\n\n return {\n input: inputProps,\n calendar: calendarProps,\n };\n};\n"],"names":["useDatepicker","ref","calendar","onBlur","onChange","value","props","inputRef","useProxiedRef","useLocalization","formatting","React","format","date","internalValue","setInternalValue","formattedValue","handleInputBlur","event","persist","valueAsDate","parseFromCustomString","target","detail","handleInputChange","handleChange","setInputValueByRef","current","handleKeyDown","key","dispatchEvent","Event","bubbles","inputProps","autoComplete","onKeyDown","type","calendarProps","input"],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  import { createContext, useContext } from 'react';
2
2
 
3
3
  /* eslint-disable @typescript-eslint/no-empty-function */
4
- const DialogContext = /*#__PURE__*/createContext({
4
+ var DialogContext = /*#__PURE__*/createContext({
5
5
  closeOnEscape: true,
6
6
  draggable: false,
7
7
  drawer: {
8
8
  open: false,
9
- toggle: () => {}
9
+ toggle: function toggle() {}
10
10
  },
11
11
  elements: {
12
12
  drawer: undefined,
13
13
  extra: undefined
14
14
  },
15
- onClose: () => {},
15
+ onClose: function onClose() {},
16
16
  props: {},
17
17
  ref: null,
18
18
  showCloseButton: true,
19
19
  size: 'sm'
20
20
  });
21
- const useCurrentDialog = () => {
21
+ var useCurrentDialog = function useCurrentDialog() {
22
22
  return useContext(DialogContext);
23
23
  };
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../../src/components/Dialog/Context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport * as React from 'react';\r\nimport { DialogSize } from './types';\r\n\r\nexport type DialogContext = {\r\n closeOnEscape: boolean;\r\n draggable: boolean;\r\n drawer: {\r\n open: boolean;\r\n toggle: () => void;\r\n };\r\n elements: {\r\n drawer?: React.ReactNode;\r\n extra?: React.ReactNode;\r\n };\r\n onClose?: () => void;\r\n props: {};\r\n ref: React.Ref<HTMLElement>;\r\n showCloseButton: boolean;\r\n size: DialogSize;\r\n};\r\n\r\nexport const DialogContext = React.createContext<DialogContext>({\r\n closeOnEscape: true,\r\n draggable: false,\r\n drawer: {\r\n open: false,\r\n toggle: () => {},\r\n },\r\n elements: {\r\n drawer: undefined,\r\n extra: undefined,\r\n },\r\n onClose: () => {},\r\n props: {},\r\n ref: null,\r\n showCloseButton: true,\r\n size: 'sm',\r\n});\r\n\r\nexport const useCurrentDialog = () => {\r\n return React.useContext(DialogContext);\r\n};\r\n"],"names":["DialogContext","React","closeOnEscape","draggable","drawer","open","toggle","elements","undefined","extra","onClose","props","ref","showCloseButton","size","useCurrentDialog"],"mappings":";;AAAA;MAsBaA,aAAa,gBAAGC,aAAA,CAAmC;AAC5DC,EAAAA,aAAa,EAAE,IAD6C;AAE5DC,EAAAA,SAAS,EAAE,KAFiD;AAG5DC,EAAAA,MAAM,EAAE;AACJC,IAAAA,IAAI,EAAE,KADF;AAEJC,IAAAA,MAAM,EAAE;AAFJ,GAHoD;AAO5DC,EAAAA,QAAQ,EAAE;AACNH,IAAAA,MAAM,EAAEI,SADF;AAENC,IAAAA,KAAK,EAAED;AAFD,GAPkD;AAW5DE,EAAAA,OAAO,EAAE,QAXmD;AAY5DC,EAAAA,KAAK,EAAE,EAZqD;AAa5DC,EAAAA,GAAG,EAAE,IAbuD;AAc5DC,EAAAA,eAAe,EAAE,IAd2C;AAe5DC,EAAAA,IAAI,EAAE;AAfsD,CAAnC;MAkBhBC,gBAAgB,GAAG;AAC5B,SAAOd,UAAA,CAAiBD,aAAjB,CAAP;AACH;;;;"}
1
+ {"version":3,"file":"Context.js","sources":["../../../../src/components/Dialog/Context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport * as React from 'react';\nimport { DialogSize } from './types';\n\nexport type DialogContext = {\n closeOnEscape: boolean;\n draggable: boolean;\n drawer: {\n open: boolean;\n toggle: () => void;\n };\n elements: {\n drawer?: React.ReactNode;\n extra?: React.ReactNode;\n };\n onClose?: () => void;\n props: {};\n ref: React.Ref<HTMLElement>;\n showCloseButton: boolean;\n size: DialogSize;\n};\n\nexport const DialogContext = React.createContext<DialogContext>({\n closeOnEscape: true,\n draggable: false,\n drawer: {\n open: false,\n toggle: () => {},\n },\n elements: {\n drawer: undefined,\n extra: undefined,\n },\n onClose: () => {},\n props: {},\n ref: null,\n showCloseButton: true,\n size: 'sm',\n});\n\nexport const useCurrentDialog = () => {\n return React.useContext(DialogContext);\n};\n"],"names":["DialogContext","React","closeOnEscape","draggable","drawer","open","toggle","elements","undefined","extra","onClose","props","ref","showCloseButton","size","useCurrentDialog"],"mappings":";;AAAA;IAsBaA,aAAa,gBAAGC,aAAA,CAAmC;AAC5DC,EAAAA,aAAa,EAAE,IAD6C;AAE5DC,EAAAA,SAAS,EAAE,KAFiD;AAG5DC,EAAAA,MAAM,EAAE;AACJC,IAAAA,IAAI,EAAE,KADF;AAEJC,IAAAA,MAAM,EAAE;AAFJ,GAHoD;AAO5DC,EAAAA,QAAQ,EAAE;AACNH,IAAAA,MAAM,EAAEI,SADF;AAENC,IAAAA,KAAK,EAAED;AAFD,GAPkD;AAW5DE,EAAAA,OAAO,EAAE,qBAXmD;AAY5DC,EAAAA,KAAK,EAAE,EAZqD;AAa5DC,EAAAA,GAAG,EAAE,IAbuD;AAc5DC,EAAAA,eAAe,EAAE,IAd2C;AAe5DC,EAAAA,IAAI,EAAE;AAfsD,CAAnC;IAkBhBC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAC5B,SAAOd,UAAA,CAAiBD,aAAjB,CAAP;AACH;;;;"}
@@ -1,3 +1,4 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { forwardRef, useMemo, Children, useState, createElement } from 'react';
2
3
  import { Root } from '@radix-ui/react-dialog';
3
4
  import { DialogContext } from './Context.js';
@@ -6,12 +7,14 @@ import { Content, Title, Footer, Close } from './components/Content.js';
6
7
  import { Drawer } from './components/Drawer.js';
7
8
  import { Extra } from './components/Extra.js';
8
9
 
9
- const useSeparatedChildren = initialChildren => {
10
- return useMemo(() => {
11
- const children = [];
12
- let drawer;
13
- let extra;
14
- Children.toArray(initialChildren).forEach(child => {
10
+ var _excluded = ["children", "closeOnEscape", "defaultOpen", "draggable", "onChange", "onClose", "open", "showCloseButton", "size", "trigger"];
11
+
12
+ var useSeparatedChildren = function useSeparatedChildren(initialChildren) {
13
+ return useMemo(function () {
14
+ var children = [];
15
+ var drawer;
16
+ var extra;
17
+ Children.toArray(initialChildren).forEach(function (child) {
15
18
  var _child$type, _child$type2;
16
19
 
17
20
  if (((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) === Drawer.displayName) {
@@ -26,39 +29,55 @@ const useSeparatedChildren = initialChildren => {
26
29
  }, [initialChildren]);
27
30
  };
28
31
 
29
- const Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
30
- const {
31
- children: initialChildren,
32
- closeOnEscape = true,
33
- defaultOpen,
34
- draggable = false,
35
- onChange,
36
- onClose,
37
- open,
38
- showCloseButton = true,
39
- size = 'sm',
40
- trigger,
41
- ...otherProps
42
- } = props;
43
- const [children, drawer, extra] = useSeparatedChildren(initialChildren);
44
- const [drawerOpen, setDrawerOpen] = useState(false);
45
- const context = useMemo(() => ({
46
- closeOnEscape,
47
- draggable,
48
- drawer: {
49
- open: drawerOpen,
50
- toggle: () => setDrawerOpen(isDrawerOpen => !isDrawerOpen)
51
- },
52
- elements: {
53
- drawer,
54
- extra
55
- },
56
- onClose,
57
- props: otherProps,
58
- showCloseButton,
59
- size,
60
- ref
61
- }), [closeOnEscape, drawerOpen, draggable, drawer, extra, open, otherProps, showCloseButton]);
32
+ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
33
+ var initialChildren = props.children,
34
+ _props$closeOnEscape = props.closeOnEscape,
35
+ closeOnEscape = _props$closeOnEscape === void 0 ? true : _props$closeOnEscape,
36
+ defaultOpen = props.defaultOpen,
37
+ _props$draggable = props.draggable,
38
+ draggable = _props$draggable === void 0 ? false : _props$draggable,
39
+ onChange = props.onChange,
40
+ onClose = props.onClose,
41
+ open = props.open,
42
+ _props$showCloseButto = props.showCloseButton,
43
+ showCloseButton = _props$showCloseButto === void 0 ? true : _props$showCloseButto,
44
+ _props$size = props.size,
45
+ size = _props$size === void 0 ? 'sm' : _props$size,
46
+ trigger = props.trigger,
47
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
48
+
49
+ var _useSeparatedChildren = useSeparatedChildren(initialChildren),
50
+ children = _useSeparatedChildren[0],
51
+ drawer = _useSeparatedChildren[1],
52
+ extra = _useSeparatedChildren[2];
53
+
54
+ var _React$useState = useState(false),
55
+ drawerOpen = _React$useState[0],
56
+ setDrawerOpen = _React$useState[1];
57
+
58
+ var context = useMemo(function () {
59
+ return {
60
+ closeOnEscape: closeOnEscape,
61
+ draggable: draggable,
62
+ drawer: {
63
+ open: drawerOpen,
64
+ toggle: function toggle() {
65
+ return setDrawerOpen(function (isDrawerOpen) {
66
+ return !isDrawerOpen;
67
+ });
68
+ }
69
+ },
70
+ elements: {
71
+ drawer: drawer,
72
+ extra: extra
73
+ },
74
+ onClose: onClose,
75
+ props: otherProps,
76
+ showCloseButton: showCloseButton,
77
+ size: size,
78
+ ref: ref
79
+ };
80
+ }, [closeOnEscape, drawerOpen, draggable, drawer, extra, open, otherProps, showCloseButton]);
62
81
  return createElement(DialogContext.Provider, {
63
82
  value: context
64
83
  }, createElement(Root, {