@economic/taco 11.0.0 → 11.0.1-react-v19.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 (774) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  2. package/dist/charts/components/Area/AreaChart.d.ts +1 -1
  3. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  4. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  5. package/dist/charts/components/Bar/BarChart.d.ts +1 -1
  6. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  7. package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
  8. package/dist/charts/components/Composed/BarLineChart.d.ts +2 -2
  9. package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
  10. package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
  11. package/dist/charts/components/Donut/DonutChart.d.ts +1 -1
  12. package/dist/charts/components/Donut/DonutChart.js.map +1 -1
  13. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  14. package/dist/charts/components/Line/LineChart.d.ts +1 -1
  15. package/dist/charts/components/Line/LineChart.js.map +1 -1
  16. package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
  17. package/dist/charts/components/Pie/PieChart.d.ts +1 -1
  18. package/dist/charts/components/Pie/PieChart.js.map +1 -1
  19. package/dist/charts/components/Tooltip.cjs.map +1 -1
  20. package/dist/charts/components/Tooltip.d.ts +1 -1
  21. package/dist/charts/components/Tooltip.js.map +1 -1
  22. package/dist/charts/components/types.d.ts +2 -2
  23. package/dist/components/AlertDialog/AlertDialog.cjs.map +1 -1
  24. package/dist/components/AlertDialog/AlertDialog.d.ts +1 -1
  25. package/dist/components/AlertDialog/AlertDialog.js.map +1 -1
  26. package/dist/components/Banner/util.cjs.map +1 -1
  27. package/dist/components/Banner/util.d.ts +2 -1
  28. package/dist/components/Banner/util.js.map +1 -1
  29. package/dist/components/Card/Card.cjs.map +1 -1
  30. package/dist/components/Card/Card.d.ts +1 -1
  31. package/dist/components/Card/Card.js.map +1 -1
  32. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  33. package/dist/components/Combobox/Combobox.d.ts +1 -1
  34. package/dist/components/Combobox/Combobox.js.map +1 -1
  35. package/dist/components/Combobox/useCombobox.cjs.map +1 -1
  36. package/dist/components/Combobox/useCombobox.d.ts +1 -1
  37. package/dist/components/Combobox/useCombobox.js.map +1 -1
  38. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  39. package/dist/components/Dialog/Dialog.d.ts +1 -1
  40. package/dist/components/Dialog/Dialog.js.map +1 -1
  41. package/dist/components/Dialog/components/Content.cjs.map +1 -1
  42. package/dist/components/Dialog/components/Content.d.ts +2 -2
  43. package/dist/components/Dialog/components/Content.js.map +1 -1
  44. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  45. package/dist/components/Drawer/Drawer.d.ts +1 -1
  46. package/dist/components/Drawer/Drawer.js.map +1 -1
  47. package/dist/components/Drawer/useDrawerStack.cjs +1 -1
  48. package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
  49. package/dist/components/Drawer/useDrawerStack.js +1 -1
  50. package/dist/components/Drawer/useDrawerStack.js.map +1 -1
  51. package/dist/components/Hanger/Hanger.cjs.map +1 -1
  52. package/dist/components/Hanger/Hanger.d.ts +1 -1
  53. package/dist/components/Hanger/Hanger.js.map +1 -1
  54. package/dist/components/Header/components/Agreement/Display.cjs.map +1 -1
  55. package/dist/components/Header/components/Agreement/Display.d.ts +1 -1
  56. package/dist/components/Header/components/Agreement/Display.js.map +1 -1
  57. package/dist/components/Header/components/Agreement/Item.cjs.map +1 -1
  58. package/dist/components/Header/components/Agreement/Item.d.ts +1 -1
  59. package/dist/components/Header/components/Agreement/Item.js.map +1 -1
  60. package/dist/components/Header/components/Link.cjs.map +1 -1
  61. package/dist/components/Header/components/Link.d.ts +1 -1
  62. package/dist/components/Header/components/Link.js.map +1 -1
  63. package/dist/components/Icon/components/AccountPreview.cjs.map +1 -1
  64. package/dist/components/Icon/components/AccountPreview.js.map +1 -1
  65. package/dist/components/Icon/components/Accounting.cjs.map +1 -1
  66. package/dist/components/Icon/components/Accounting.js.map +1 -1
  67. package/dist/components/Icon/components/AccountingYear.cjs.map +1 -1
  68. package/dist/components/Icon/components/AccountingYear.js.map +1 -1
  69. package/dist/components/Icon/components/AccountingYearCancel.cjs.map +1 -1
  70. package/dist/components/Icon/components/AccountingYearCancel.js.map +1 -1
  71. package/dist/components/Icon/components/AiChatSolid.cjs.map +1 -1
  72. package/dist/components/Icon/components/AiChatSolid.js.map +1 -1
  73. package/dist/components/Icon/components/AiStars.cjs.map +1 -1
  74. package/dist/components/Icon/components/AiStars.js.map +1 -1
  75. package/dist/components/Icon/components/ArrowBottom.cjs.map +1 -1
  76. package/dist/components/Icon/components/ArrowBottom.js.map +1 -1
  77. package/dist/components/Icon/components/ArrowDown.cjs.map +1 -1
  78. package/dist/components/Icon/components/ArrowDown.js.map +1 -1
  79. package/dist/components/Icon/components/ArrowEnd.cjs.map +1 -1
  80. package/dist/components/Icon/components/ArrowEnd.js.map +1 -1
  81. package/dist/components/Icon/components/ArrowLeft.cjs.map +1 -1
  82. package/dist/components/Icon/components/ArrowLeft.js.map +1 -1
  83. package/dist/components/Icon/components/ArrowRight.cjs.map +1 -1
  84. package/dist/components/Icon/components/ArrowRight.js.map +1 -1
  85. package/dist/components/Icon/components/ArrowStart.cjs.map +1 -1
  86. package/dist/components/Icon/components/ArrowStart.js.map +1 -1
  87. package/dist/components/Icon/components/ArrowTop.cjs.map +1 -1
  88. package/dist/components/Icon/components/ArrowTop.js.map +1 -1
  89. package/dist/components/Icon/components/ArrowUp.cjs.map +1 -1
  90. package/dist/components/Icon/components/ArrowUp.js.map +1 -1
  91. package/dist/components/Icon/components/Attach.cjs.map +1 -1
  92. package/dist/components/Icon/components/Attach.js.map +1 -1
  93. package/dist/components/Icon/components/AttachAuto.cjs.map +1 -1
  94. package/dist/components/Icon/components/AttachAuto.js.map +1 -1
  95. package/dist/components/Icon/components/AttachCancel.cjs.map +1 -1
  96. package/dist/components/Icon/components/AttachCancel.js.map +1 -1
  97. package/dist/components/Icon/components/AttachWarning.cjs.map +1 -1
  98. package/dist/components/Icon/components/AttachWarning.js.map +1 -1
  99. package/dist/components/Icon/components/Autopay.cjs.map +1 -1
  100. package/dist/components/Icon/components/Autopay.js.map +1 -1
  101. package/dist/components/Icon/components/AutopayPaused.cjs.map +1 -1
  102. package/dist/components/Icon/components/AutopayPaused.js.map +1 -1
  103. package/dist/components/Icon/components/Autotext.cjs.map +1 -1
  104. package/dist/components/Icon/components/Autotext.js.map +1 -1
  105. package/dist/components/Icon/components/AutotextInsert.cjs.map +1 -1
  106. package/dist/components/Icon/components/AutotextInsert.js.map +1 -1
  107. package/dist/components/Icon/components/Basic.cjs.map +1 -1
  108. package/dist/components/Icon/components/Basic.js.map +1 -1
  109. package/dist/components/Icon/components/BasicTabs.cjs.map +1 -1
  110. package/dist/components/Icon/components/BasicTabs.js.map +1 -1
  111. package/dist/components/Icon/components/BellSolid.cjs.map +1 -1
  112. package/dist/components/Icon/components/BellSolid.js.map +1 -1
  113. package/dist/components/Icon/components/Book.cjs.map +1 -1
  114. package/dist/components/Icon/components/Book.js.map +1 -1
  115. package/dist/components/Icon/components/Booking.cjs.map +1 -1
  116. package/dist/components/Icon/components/Booking.js.map +1 -1
  117. package/dist/components/Icon/components/Budget.cjs.map +1 -1
  118. package/dist/components/Icon/components/Budget.js.map +1 -1
  119. package/dist/components/Icon/components/Calendar.cjs.map +1 -1
  120. package/dist/components/Icon/components/Calendar.js.map +1 -1
  121. package/dist/components/Icon/components/CashAccount.cjs.map +1 -1
  122. package/dist/components/Icon/components/CashAccount.js.map +1 -1
  123. package/dist/components/Icon/components/CashReports.cjs.map +1 -1
  124. package/dist/components/Icon/components/CashReports.js.map +1 -1
  125. package/dist/components/Icon/components/ChartArea.cjs.map +1 -1
  126. package/dist/components/Icon/components/ChartArea.js.map +1 -1
  127. package/dist/components/Icon/components/ChartBar.cjs.map +1 -1
  128. package/dist/components/Icon/components/ChartBar.js.map +1 -1
  129. package/dist/components/Icon/components/ChartLine.cjs.map +1 -1
  130. package/dist/components/Icon/components/ChartLine.js.map +1 -1
  131. package/dist/components/Icon/components/ChartPie.cjs.map +1 -1
  132. package/dist/components/Icon/components/ChartPie.js.map +1 -1
  133. package/dist/components/Icon/components/ChartTable.cjs.map +1 -1
  134. package/dist/components/Icon/components/ChartTable.js.map +1 -1
  135. package/dist/components/Icon/components/Chat.cjs.map +1 -1
  136. package/dist/components/Icon/components/Chat.js.map +1 -1
  137. package/dist/components/Icon/components/ChatSolid.cjs.map +1 -1
  138. package/dist/components/Icon/components/ChatSolid.js.map +1 -1
  139. package/dist/components/Icon/components/ChevronDown.cjs.map +1 -1
  140. package/dist/components/Icon/components/ChevronDown.js.map +1 -1
  141. package/dist/components/Icon/components/ChevronDownDouble.cjs.map +1 -1
  142. package/dist/components/Icon/components/ChevronDownDouble.js.map +1 -1
  143. package/dist/components/Icon/components/ChevronDownSolid.cjs.map +1 -1
  144. package/dist/components/Icon/components/ChevronDownSolid.js.map +1 -1
  145. package/dist/components/Icon/components/ChevronLeft.cjs.map +1 -1
  146. package/dist/components/Icon/components/ChevronLeft.js.map +1 -1
  147. package/dist/components/Icon/components/ChevronLeftDouble.cjs.map +1 -1
  148. package/dist/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  149. package/dist/components/Icon/components/ChevronLeftSolid.cjs.map +1 -1
  150. package/dist/components/Icon/components/ChevronLeftSolid.js.map +1 -1
  151. package/dist/components/Icon/components/ChevronRight.cjs.map +1 -1
  152. package/dist/components/Icon/components/ChevronRight.js.map +1 -1
  153. package/dist/components/Icon/components/ChevronRightDouble.cjs.map +1 -1
  154. package/dist/components/Icon/components/ChevronRightDouble.js.map +1 -1
  155. package/dist/components/Icon/components/ChevronRightSolid.cjs.map +1 -1
  156. package/dist/components/Icon/components/ChevronRightSolid.js.map +1 -1
  157. package/dist/components/Icon/components/ChevronUp.cjs.map +1 -1
  158. package/dist/components/Icon/components/ChevronUp.js.map +1 -1
  159. package/dist/components/Icon/components/ChevronUpDouble.cjs.map +1 -1
  160. package/dist/components/Icon/components/ChevronUpDouble.js.map +1 -1
  161. package/dist/components/Icon/components/ChevronUpSolid.cjs.map +1 -1
  162. package/dist/components/Icon/components/ChevronUpSolid.js.map +1 -1
  163. package/dist/components/Icon/components/CircleInformation.cjs.map +1 -1
  164. package/dist/components/Icon/components/CircleInformation.js.map +1 -1
  165. package/dist/components/Icon/components/CircleMinus.cjs.map +1 -1
  166. package/dist/components/Icon/components/CircleMinus.js.map +1 -1
  167. package/dist/components/Icon/components/CirclePlus.cjs.map +1 -1
  168. package/dist/components/Icon/components/CirclePlus.js.map +1 -1
  169. package/dist/components/Icon/components/CircleQuestionmark.cjs.map +1 -1
  170. package/dist/components/Icon/components/CircleQuestionmark.js.map +1 -1
  171. package/dist/components/Icon/components/CircleTick.cjs.map +1 -1
  172. package/dist/components/Icon/components/CircleTick.js.map +1 -1
  173. package/dist/components/Icon/components/CircleWarning.cjs.map +1 -1
  174. package/dist/components/Icon/components/CircleWarning.js.map +1 -1
  175. package/dist/components/Icon/components/Clamp.cjs.map +1 -1
  176. package/dist/components/Icon/components/Clamp.js.map +1 -1
  177. package/dist/components/Icon/components/ClampOpen.cjs.map +1 -1
  178. package/dist/components/Icon/components/ClampOpen.js.map +1 -1
  179. package/dist/components/Icon/components/ClickToPay.cjs.map +1 -1
  180. package/dist/components/Icon/components/ClickToPay.js.map +1 -1
  181. package/dist/components/Icon/components/Close.cjs.map +1 -1
  182. package/dist/components/Icon/components/Close.js.map +1 -1
  183. package/dist/components/Icon/components/ColumnFreeze.cjs.map +1 -1
  184. package/dist/components/Icon/components/ColumnFreeze.js.map +1 -1
  185. package/dist/components/Icon/components/ColumnUnfreeze.cjs.map +1 -1
  186. package/dist/components/Icon/components/ColumnUnfreeze.js.map +1 -1
  187. package/dist/components/Icon/components/Columns.cjs.map +1 -1
  188. package/dist/components/Icon/components/Columns.js.map +1 -1
  189. package/dist/components/Icon/components/ConnectionEnable.cjs.map +1 -1
  190. package/dist/components/Icon/components/ConnectionEnable.js.map +1 -1
  191. package/dist/components/Icon/components/ConnectionRevoke.cjs.map +1 -1
  192. package/dist/components/Icon/components/ConnectionRevoke.js.map +1 -1
  193. package/dist/components/Icon/components/Contacts.cjs.map +1 -1
  194. package/dist/components/Icon/components/Contacts.js.map +1 -1
  195. package/dist/components/Icon/components/Copy.cjs.map +1 -1
  196. package/dist/components/Icon/components/Copy.js.map +1 -1
  197. package/dist/components/Icon/components/Courses.cjs.map +1 -1
  198. package/dist/components/Icon/components/Courses.js.map +1 -1
  199. package/dist/components/Icon/components/Credit.cjs.map +1 -1
  200. package/dist/components/Icon/components/Credit.js.map +1 -1
  201. package/dist/components/Icon/components/Delete.cjs.map +1 -1
  202. package/dist/components/Icon/components/Delete.js.map +1 -1
  203. package/dist/components/Icon/components/DeletePermanently.cjs.map +1 -1
  204. package/dist/components/Icon/components/DeletePermanently.js.map +1 -1
  205. package/dist/components/Icon/components/Depecriate.cjs.map +1 -1
  206. package/dist/components/Icon/components/Depecriate.js.map +1 -1
  207. package/dist/components/Icon/components/Developer.cjs.map +1 -1
  208. package/dist/components/Icon/components/Developer.js.map +1 -1
  209. package/dist/components/Icon/components/DistributionTemplate.cjs.map +1 -1
  210. package/dist/components/Icon/components/DistributionTemplate.js.map +1 -1
  211. package/dist/components/Icon/components/Document.cjs.map +1 -1
  212. package/dist/components/Icon/components/Document.js.map +1 -1
  213. package/dist/components/Icon/components/DocumentApprove.cjs.map +1 -1
  214. package/dist/components/Icon/components/DocumentApprove.js.map +1 -1
  215. package/dist/components/Icon/components/DocumentCreateEntry.cjs.map +1 -1
  216. package/dist/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  217. package/dist/components/Icon/components/DocumentCut.cjs.map +1 -1
  218. package/dist/components/Icon/components/DocumentCut.js.map +1 -1
  219. package/dist/components/Icon/components/DocumentError.cjs.map +1 -1
  220. package/dist/components/Icon/components/DocumentError.js.map +1 -1
  221. package/dist/components/Icon/components/DocumentIsolatePage.cjs.map +1 -1
  222. package/dist/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  223. package/dist/components/Icon/components/DocumentMerge.cjs.map +1 -1
  224. package/dist/components/Icon/components/DocumentMerge.js.map +1 -1
  225. package/dist/components/Icon/components/DocumentMove.cjs.map +1 -1
  226. package/dist/components/Icon/components/DocumentMove.js.map +1 -1
  227. package/dist/components/Icon/components/DocumentPreview.cjs.map +1 -1
  228. package/dist/components/Icon/components/DocumentPreview.js.map +1 -1
  229. package/dist/components/Icon/components/DocumentReceived.cjs.map +1 -1
  230. package/dist/components/Icon/components/DocumentReceived.js.map +1 -1
  231. package/dist/components/Icon/components/DocumentRejectedRequest.cjs.map +1 -1
  232. package/dist/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  233. package/dist/components/Icon/components/DocumentSigned.cjs.map +1 -1
  234. package/dist/components/Icon/components/DocumentSigned.js.map +1 -1
  235. package/dist/components/Icon/components/DocumentSignedSolid.cjs.map +1 -1
  236. package/dist/components/Icon/components/DocumentSignedSolid.js.map +1 -1
  237. package/dist/components/Icon/components/DocumentSplit.cjs.map +1 -1
  238. package/dist/components/Icon/components/DocumentSplit.js.map +1 -1
  239. package/dist/components/Icon/components/DocumentTime.cjs.map +1 -1
  240. package/dist/components/Icon/components/DocumentTime.js.map +1 -1
  241. package/dist/components/Icon/components/Download.cjs.map +1 -1
  242. package/dist/components/Icon/components/Download.js.map +1 -1
  243. package/dist/components/Icon/components/Drag.cjs.map +1 -1
  244. package/dist/components/Icon/components/Drag.js.map +1 -1
  245. package/dist/components/Icon/components/ECopedia.cjs.map +1 -1
  246. package/dist/components/Icon/components/ECopedia.js.map +1 -1
  247. package/dist/components/Icon/components/Edit.cjs.map +1 -1
  248. package/dist/components/Icon/components/Edit.js.map +1 -1
  249. package/dist/components/Icon/components/EditSimple.cjs.map +1 -1
  250. package/dist/components/Icon/components/EditSimple.js.map +1 -1
  251. package/dist/components/Icon/components/EllipsisHorizontal.cjs.map +1 -1
  252. package/dist/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  253. package/dist/components/Icon/components/EllipsisVertical.cjs.map +1 -1
  254. package/dist/components/Icon/components/EllipsisVertical.js.map +1 -1
  255. package/dist/components/Icon/components/EntriesOnAccount.cjs.map +1 -1
  256. package/dist/components/Icon/components/EntriesOnAccount.js.map +1 -1
  257. package/dist/components/Icon/components/EntriesOpen.cjs.map +1 -1
  258. package/dist/components/Icon/components/EntriesOpen.js.map +1 -1
  259. package/dist/components/Icon/components/EntriesWarning.cjs.map +1 -1
  260. package/dist/components/Icon/components/EntriesWarning.js.map +1 -1
  261. package/dist/components/Icon/components/EntryTypeCustomerInvoice.cjs.map +1 -1
  262. package/dist/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  263. package/dist/components/Icon/components/EntryTypeCustomerPayment.cjs.map +1 -1
  264. package/dist/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  265. package/dist/components/Icon/components/EntryTypeJournalEntry.cjs.map +1 -1
  266. package/dist/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  267. package/dist/components/Icon/components/EntryTypeManualCustomerInvoice.cjs.map +1 -1
  268. package/dist/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  269. package/dist/components/Icon/components/EntryTypeSupplierInvoice.cjs.map +1 -1
  270. package/dist/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  271. package/dist/components/Icon/components/EntryTypeSupplierPayment.cjs.map +1 -1
  272. package/dist/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  273. package/dist/components/Icon/components/Envelope.cjs.map +1 -1
  274. package/dist/components/Icon/components/Envelope.js.map +1 -1
  275. package/dist/components/Icon/components/EnvelopeApproved.cjs.map +1 -1
  276. package/dist/components/Icon/components/EnvelopeApproved.js.map +1 -1
  277. package/dist/components/Icon/components/EnvelopeSolid.cjs.map +1 -1
  278. package/dist/components/Icon/components/EnvelopeSolid.js.map +1 -1
  279. package/dist/components/Icon/components/ExpandView.cjs.map +1 -1
  280. package/dist/components/Icon/components/ExpandView.js.map +1 -1
  281. package/dist/components/Icon/components/Expenses.cjs.map +1 -1
  282. package/dist/components/Icon/components/Expenses.js.map +1 -1
  283. package/dist/components/Icon/components/Experiment.cjs.map +1 -1
  284. package/dist/components/Icon/components/Experiment.js.map +1 -1
  285. package/dist/components/Icon/components/Export.cjs.map +1 -1
  286. package/dist/components/Icon/components/Export.js.map +1 -1
  287. package/dist/components/Icon/components/ExportToExcel.cjs.map +1 -1
  288. package/dist/components/Icon/components/ExportToExcel.js.map +1 -1
  289. package/dist/components/Icon/components/ExportToPdf.cjs.map +1 -1
  290. package/dist/components/Icon/components/ExportToPdf.js.map +1 -1
  291. package/dist/components/Icon/components/EyeOff.cjs.map +1 -1
  292. package/dist/components/Icon/components/EyeOff.js.map +1 -1
  293. package/dist/components/Icon/components/EyeOn.cjs.map +1 -1
  294. package/dist/components/Icon/components/EyeOn.js.map +1 -1
  295. package/dist/components/Icon/components/Filter.cjs.map +1 -1
  296. package/dist/components/Icon/components/Filter.js.map +1 -1
  297. package/dist/components/Icon/components/FilterSolid.cjs.map +1 -1
  298. package/dist/components/Icon/components/FilterSolid.js.map +1 -1
  299. package/dist/components/Icon/components/FontSize.cjs.map +1 -1
  300. package/dist/components/Icon/components/FontSize.js.map +1 -1
  301. package/dist/components/Icon/components/GraphSolid.cjs.map +1 -1
  302. package/dist/components/Icon/components/GraphSolid.js.map +1 -1
  303. package/dist/components/Icon/components/Hash.cjs.map +1 -1
  304. package/dist/components/Icon/components/Hash.js.map +1 -1
  305. package/dist/components/Icon/components/HeightExtraTall.cjs.map +1 -1
  306. package/dist/components/Icon/components/HeightExtraTall.js.map +1 -1
  307. package/dist/components/Icon/components/HeightMedium.cjs.map +1 -1
  308. package/dist/components/Icon/components/HeightMedium.js.map +1 -1
  309. package/dist/components/Icon/components/HeightShort.cjs.map +1 -1
  310. package/dist/components/Icon/components/HeightShort.js.map +1 -1
  311. package/dist/components/Icon/components/HeightTall.cjs.map +1 -1
  312. package/dist/components/Icon/components/HeightTall.js.map +1 -1
  313. package/dist/components/Icon/components/House.cjs.map +1 -1
  314. package/dist/components/Icon/components/House.js.map +1 -1
  315. package/dist/components/Icon/components/HouseSolid.cjs.map +1 -1
  316. package/dist/components/Icon/components/HouseSolid.js.map +1 -1
  317. package/dist/components/Icon/components/Id.cjs.map +1 -1
  318. package/dist/components/Icon/components/Id.js.map +1 -1
  319. package/dist/components/Icon/components/Images.cjs.map +1 -1
  320. package/dist/components/Icon/components/Images.js.map +1 -1
  321. package/dist/components/Icon/components/Import.cjs.map +1 -1
  322. package/dist/components/Icon/components/Import.js.map +1 -1
  323. package/dist/components/Icon/components/Inbox.cjs.map +1 -1
  324. package/dist/components/Icon/components/Inbox.js.map +1 -1
  325. package/dist/components/Icon/components/InboxEinvoicing.cjs.map +1 -1
  326. package/dist/components/Icon/components/InboxEinvoicing.js.map +1 -1
  327. package/dist/components/Icon/components/InboxScanning.cjs.map +1 -1
  328. package/dist/components/Icon/components/InboxScanning.js.map +1 -1
  329. package/dist/components/Icon/components/InboxSmart.cjs.map +1 -1
  330. package/dist/components/Icon/components/InboxSmart.js.map +1 -1
  331. package/dist/components/Icon/components/Info.cjs.map +1 -1
  332. package/dist/components/Icon/components/Info.js.map +1 -1
  333. package/dist/components/Icon/components/Inventory.cjs.map +1 -1
  334. package/dist/components/Icon/components/Inventory.js.map +1 -1
  335. package/dist/components/Icon/components/InventoryMatrix.cjs.map +1 -1
  336. package/dist/components/Icon/components/InventoryMatrix.js.map +1 -1
  337. package/dist/components/Icon/components/JournalPro.cjs.map +1 -1
  338. package/dist/components/Icon/components/JournalPro.js.map +1 -1
  339. package/dist/components/Icon/components/Layout.cjs.map +1 -1
  340. package/dist/components/Icon/components/Layout.js.map +1 -1
  341. package/dist/components/Icon/components/LayoutBoth.cjs.map +1 -1
  342. package/dist/components/Icon/components/LayoutBoth.js.map +1 -1
  343. package/dist/components/Icon/components/LayoutFirst.cjs.map +1 -1
  344. package/dist/components/Icon/components/LayoutFirst.js.map +1 -1
  345. package/dist/components/Icon/components/LayoutLast.cjs.map +1 -1
  346. package/dist/components/Icon/components/LayoutLast.js.map +1 -1
  347. package/dist/components/Icon/components/LayoutNone.cjs.map +1 -1
  348. package/dist/components/Icon/components/LayoutNone.js.map +1 -1
  349. package/dist/components/Icon/components/LedgerCard.cjs.map +1 -1
  350. package/dist/components/Icon/components/LedgerCard.js.map +1 -1
  351. package/dist/components/Icon/components/LedgerCardCustomerReminder.cjs.map +1 -1
  352. package/dist/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  353. package/dist/components/Icon/components/LedgerCardManualCustomerInvoice.cjs.map +1 -1
  354. package/dist/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  355. package/dist/components/Icon/components/LedgerCardObsoleteStock.cjs.map +1 -1
  356. package/dist/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  357. package/dist/components/Icon/components/LedgerCardOpeningEntry.cjs.map +1 -1
  358. package/dist/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  359. package/dist/components/Icon/components/LedgerCardReservedEntry.cjs.map +1 -1
  360. package/dist/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  361. package/dist/components/Icon/components/LedgerCardShrinkagePilferage.cjs.map +1 -1
  362. package/dist/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  363. package/dist/components/Icon/components/LedgerCardStockAdjustment.cjs.map +1 -1
  364. package/dist/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  365. package/dist/components/Icon/components/LedgerCardTransferredOpeningEntry.cjs.map +1 -1
  366. package/dist/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  367. package/dist/components/Icon/components/Lightbulb.cjs.map +1 -1
  368. package/dist/components/Icon/components/Lightbulb.js.map +1 -1
  369. package/dist/components/Icon/components/Line.cjs.map +1 -1
  370. package/dist/components/Icon/components/Line.js.map +1 -1
  371. package/dist/components/Icon/components/LinkExternal.cjs.map +1 -1
  372. package/dist/components/Icon/components/LinkExternal.js.map +1 -1
  373. package/dist/components/Icon/components/List.cjs.map +1 -1
  374. package/dist/components/Icon/components/List.js.map +1 -1
  375. package/dist/components/Icon/components/ListBulleted.cjs.map +1 -1
  376. package/dist/components/Icon/components/ListBulleted.js.map +1 -1
  377. package/dist/components/Icon/components/ListSearch.cjs.map +1 -1
  378. package/dist/components/Icon/components/ListSearch.js.map +1 -1
  379. package/dist/components/Icon/components/Location.cjs.map +1 -1
  380. package/dist/components/Icon/components/Location.js.map +1 -1
  381. package/dist/components/Icon/components/Lock.cjs.map +1 -1
  382. package/dist/components/Icon/components/Lock.js.map +1 -1
  383. package/dist/components/Icon/components/LockOpen.cjs.map +1 -1
  384. package/dist/components/Icon/components/LockOpen.js.map +1 -1
  385. package/dist/components/Icon/components/Log.cjs.map +1 -1
  386. package/dist/components/Icon/components/Log.js.map +1 -1
  387. package/dist/components/Icon/components/LogOut.cjs.map +1 -1
  388. package/dist/components/Icon/components/LogOut.js.map +1 -1
  389. package/dist/components/Icon/components/Market.cjs.map +1 -1
  390. package/dist/components/Icon/components/Market.js.map +1 -1
  391. package/dist/components/Icon/components/MastercardOs.cjs.map +1 -1
  392. package/dist/components/Icon/components/MastercardOs.js.map +1 -1
  393. package/dist/components/Icon/components/MatchAmount.cjs.map +1 -1
  394. package/dist/components/Icon/components/MatchAmount.js.map +1 -1
  395. package/dist/components/Icon/components/MatchEntries.cjs.map +1 -1
  396. package/dist/components/Icon/components/MatchEntries.js.map +1 -1
  397. package/dist/components/Icon/components/Menu.cjs.map +1 -1
  398. package/dist/components/Icon/components/Menu.js.map +1 -1
  399. package/dist/components/Icon/components/Mileage.cjs.map +1 -1
  400. package/dist/components/Icon/components/Mileage.js.map +1 -1
  401. package/dist/components/Icon/components/ModalResize.cjs.map +1 -1
  402. package/dist/components/Icon/components/ModalResize.js.map +1 -1
  403. package/dist/components/Icon/components/ModalShrink.cjs.map +1 -1
  404. package/dist/components/Icon/components/ModalShrink.js.map +1 -1
  405. package/dist/components/Icon/components/More.cjs.map +1 -1
  406. package/dist/components/Icon/components/More.js.map +1 -1
  407. package/dist/components/Icon/components/MoreSolid.cjs.map +1 -1
  408. package/dist/components/Icon/components/MoreSolid.js.map +1 -1
  409. package/dist/components/Icon/components/Move.cjs.map +1 -1
  410. package/dist/components/Icon/components/Move.js.map +1 -1
  411. package/dist/components/Icon/components/NavigationList.cjs.map +1 -1
  412. package/dist/components/Icon/components/NavigationList.js.map +1 -1
  413. package/dist/components/Icon/components/Note.cjs.map +1 -1
  414. package/dist/components/Icon/components/Note.js.map +1 -1
  415. package/dist/components/Icon/components/NoteFollowUp.cjs.map +1 -1
  416. package/dist/components/Icon/components/NoteFollowUp.js.map +1 -1
  417. package/dist/components/Icon/components/NoteRead.cjs.map +1 -1
  418. package/dist/components/Icon/components/NoteRead.js.map +1 -1
  419. package/dist/components/Icon/components/NovemberFirst.cjs.map +1 -1
  420. package/dist/components/Icon/components/NovemberFirst.js.map +1 -1
  421. package/dist/components/Icon/components/Numbers.cjs.map +1 -1
  422. package/dist/components/Icon/components/Numbers.js.map +1 -1
  423. package/dist/components/Icon/components/PartialPaymentScheduled.cjs.map +1 -1
  424. package/dist/components/Icon/components/PartialPaymentScheduled.js.map +1 -1
  425. package/dist/components/Icon/components/PartnerApi.cjs.map +1 -1
  426. package/dist/components/Icon/components/PartnerApi.js.map +1 -1
  427. package/dist/components/Icon/components/PaymentPaid.cjs.map +1 -1
  428. package/dist/components/Icon/components/PaymentPaid.js.map +1 -1
  429. package/dist/components/Icon/components/PaymentUnpaid.cjs.map +1 -1
  430. package/dist/components/Icon/components/PaymentUnpaid.js.map +1 -1
  431. package/dist/components/Icon/components/Period.cjs.map +1 -1
  432. package/dist/components/Icon/components/Period.js.map +1 -1
  433. package/dist/components/Icon/components/Person.cjs.map +1 -1
  434. package/dist/components/Icon/components/Person.js.map +1 -1
  435. package/dist/components/Icon/components/PersonChange.cjs.map +1 -1
  436. package/dist/components/Icon/components/PersonChange.js.map +1 -1
  437. package/dist/components/Icon/components/PersonMinus.cjs.map +1 -1
  438. package/dist/components/Icon/components/PersonMinus.js.map +1 -1
  439. package/dist/components/Icon/components/PersonPlus.cjs.map +1 -1
  440. package/dist/components/Icon/components/PersonPlus.js.map +1 -1
  441. package/dist/components/Icon/components/PersonSolid.cjs.map +1 -1
  442. package/dist/components/Icon/components/PersonSolid.js.map +1 -1
  443. package/dist/components/Icon/components/PersonTick.cjs.map +1 -1
  444. package/dist/components/Icon/components/PersonTick.js.map +1 -1
  445. package/dist/components/Icon/components/Phone.cjs.map +1 -1
  446. package/dist/components/Icon/components/Phone.js.map +1 -1
  447. package/dist/components/Icon/components/PhoneSolid.cjs.map +1 -1
  448. package/dist/components/Icon/components/PhoneSolid.js.map +1 -1
  449. package/dist/components/Icon/components/Play.cjs.map +1 -1
  450. package/dist/components/Icon/components/Play.js.map +1 -1
  451. package/dist/components/Icon/components/PlusMinus.cjs.map +1 -1
  452. package/dist/components/Icon/components/PlusMinus.js.map +1 -1
  453. package/dist/components/Icon/components/Print.cjs.map +1 -1
  454. package/dist/components/Icon/components/Print.js.map +1 -1
  455. package/dist/components/Icon/components/ProcessPayment.cjs.map +1 -1
  456. package/dist/components/Icon/components/ProcessPayment.js.map +1 -1
  457. package/dist/components/Icon/components/ProductLedgerCard.cjs.map +1 -1
  458. package/dist/components/Icon/components/ProductLedgerCard.js.map +1 -1
  459. package/dist/components/Icon/components/Profile.cjs.map +1 -1
  460. package/dist/components/Icon/components/Profile.js.map +1 -1
  461. package/dist/components/Icon/components/ProjectCards.cjs.map +1 -1
  462. package/dist/components/Icon/components/ProjectCards.js.map +1 -1
  463. package/dist/components/Icon/components/Projects.cjs.map +1 -1
  464. package/dist/components/Icon/components/Projects.js.map +1 -1
  465. package/dist/components/Icon/components/QuestionMark.cjs.map +1 -1
  466. package/dist/components/Icon/components/QuestionMark.js.map +1 -1
  467. package/dist/components/Icon/components/QuestionMarkBold.cjs.map +1 -1
  468. package/dist/components/Icon/components/QuestionMarkBold.js.map +1 -1
  469. package/dist/components/Icon/components/Quicklinks.cjs.map +1 -1
  470. package/dist/components/Icon/components/Quicklinks.js.map +1 -1
  471. package/dist/components/Icon/components/RatingBankruptcy.cjs.map +1 -1
  472. package/dist/components/Icon/components/RatingBankruptcy.js.map +1 -1
  473. package/dist/components/Icon/components/RatingPaymentProblems.cjs.map +1 -1
  474. package/dist/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  475. package/dist/components/Icon/components/Reconciled.cjs.map +1 -1
  476. package/dist/components/Icon/components/Reconciled.js.map +1 -1
  477. package/dist/components/Icon/components/Refresh.cjs.map +1 -1
  478. package/dist/components/Icon/components/Refresh.js.map +1 -1
  479. package/dist/components/Icon/components/Remove.cjs.map +1 -1
  480. package/dist/components/Icon/components/Remove.js.map +1 -1
  481. package/dist/components/Icon/components/Report.cjs.map +1 -1
  482. package/dist/components/Icon/components/Report.js.map +1 -1
  483. package/dist/components/Icon/components/ReportSolid.cjs.map +1 -1
  484. package/dist/components/Icon/components/ReportSolid.js.map +1 -1
  485. package/dist/components/Icon/components/Restore.cjs.map +1 -1
  486. package/dist/components/Icon/components/Restore.js.map +1 -1
  487. package/dist/components/Icon/components/RotateLeft.cjs.map +1 -1
  488. package/dist/components/Icon/components/RotateLeft.js.map +1 -1
  489. package/dist/components/Icon/components/RotateRight.cjs.map +1 -1
  490. package/dist/components/Icon/components/RotateRight.js.map +1 -1
  491. package/dist/components/Icon/components/Sales.cjs.map +1 -1
  492. package/dist/components/Icon/components/Sales.js.map +1 -1
  493. package/dist/components/Icon/components/Search.cjs.map +1 -1
  494. package/dist/components/Icon/components/Search.js.map +1 -1
  495. package/dist/components/Icon/components/SearchBold.cjs.map +1 -1
  496. package/dist/components/Icon/components/SearchBold.js.map +1 -1
  497. package/dist/components/Icon/components/Secure.cjs.map +1 -1
  498. package/dist/components/Icon/components/Secure.js.map +1 -1
  499. package/dist/components/Icon/components/SecureTick.cjs.map +1 -1
  500. package/dist/components/Icon/components/SecureTick.js.map +1 -1
  501. package/dist/components/Icon/components/Settings.cjs.map +1 -1
  502. package/dist/components/Icon/components/Settings.js.map +1 -1
  503. package/dist/components/Icon/components/SettingsSolid.cjs.map +1 -1
  504. package/dist/components/Icon/components/SettingsSolid.js.map +1 -1
  505. package/dist/components/Icon/components/Shortcuts.cjs.map +1 -1
  506. package/dist/components/Icon/components/Shortcuts.js.map +1 -1
  507. package/dist/components/Icon/components/ShowAll.cjs.map +1 -1
  508. package/dist/components/Icon/components/ShowAll.js.map +1 -1
  509. package/dist/components/Icon/components/ShowLess.cjs.map +1 -1
  510. package/dist/components/Icon/components/ShowLess.js.map +1 -1
  511. package/dist/components/Icon/components/ShowMore.cjs.map +1 -1
  512. package/dist/components/Icon/components/ShowMore.js.map +1 -1
  513. package/dist/components/Icon/components/ShowTemplate.cjs.map +1 -1
  514. package/dist/components/Icon/components/ShowTemplate.js.map +1 -1
  515. package/dist/components/Icon/components/Sliders.cjs.map +1 -1
  516. package/dist/components/Icon/components/Sliders.js.map +1 -1
  517. package/dist/components/Icon/components/Smartpay.cjs.map +1 -1
  518. package/dist/components/Icon/components/Smartpay.js.map +1 -1
  519. package/dist/components/Icon/components/SortBy.cjs.map +1 -1
  520. package/dist/components/Icon/components/SortBy.js.map +1 -1
  521. package/dist/components/Icon/components/Star.cjs.map +1 -1
  522. package/dist/components/Icon/components/Star.js.map +1 -1
  523. package/dist/components/Icon/components/StarSolid.cjs.map +1 -1
  524. package/dist/components/Icon/components/StarSolid.js.map +1 -1
  525. package/dist/components/Icon/components/Subscriptions.cjs.map +1 -1
  526. package/dist/components/Icon/components/Subscriptions.js.map +1 -1
  527. package/dist/components/Icon/components/SystemEntries.cjs.map +1 -1
  528. package/dist/components/Icon/components/SystemEntries.js.map +1 -1
  529. package/dist/components/Icon/components/Tag.cjs.map +1 -1
  530. package/dist/components/Icon/components/Tag.js.map +1 -1
  531. package/dist/components/Icon/components/TemplateOverride.cjs.map +1 -1
  532. package/dist/components/Icon/components/TemplateOverride.js.map +1 -1
  533. package/dist/components/Icon/components/Templates.cjs.map +1 -1
  534. package/dist/components/Icon/components/Templates.js.map +1 -1
  535. package/dist/components/Icon/components/ThumbBoth.cjs.map +1 -1
  536. package/dist/components/Icon/components/ThumbBoth.js.map +1 -1
  537. package/dist/components/Icon/components/ThumbDown.cjs.map +1 -1
  538. package/dist/components/Icon/components/ThumbDown.js.map +1 -1
  539. package/dist/components/Icon/components/ThumbDownSolid.cjs.map +1 -1
  540. package/dist/components/Icon/components/ThumbDownSolid.js.map +1 -1
  541. package/dist/components/Icon/components/ThumbUp.cjs.map +1 -1
  542. package/dist/components/Icon/components/ThumbUp.js.map +1 -1
  543. package/dist/components/Icon/components/ThumbUpSolid.cjs.map +1 -1
  544. package/dist/components/Icon/components/ThumbUpSolid.js.map +1 -1
  545. package/dist/components/Icon/components/Tick.cjs.map +1 -1
  546. package/dist/components/Icon/components/Tick.js.map +1 -1
  547. package/dist/components/Icon/components/TickBold.cjs.map +1 -1
  548. package/dist/components/Icon/components/TickBold.js.map +1 -1
  549. package/dist/components/Icon/components/Time.cjs.map +1 -1
  550. package/dist/components/Icon/components/Time.js.map +1 -1
  551. package/dist/components/Icon/components/Transfer.cjs.map +1 -1
  552. package/dist/components/Icon/components/Transfer.js.map +1 -1
  553. package/dist/components/Icon/components/TransferCancel.cjs.map +1 -1
  554. package/dist/components/Icon/components/TransferCancel.js.map +1 -1
  555. package/dist/components/Icon/components/TransferLocked.cjs.map +1 -1
  556. package/dist/components/Icon/components/TransferLocked.js.map +1 -1
  557. package/dist/components/Icon/components/Undo.cjs.map +1 -1
  558. package/dist/components/Icon/components/Undo.js.map +1 -1
  559. package/dist/components/Icon/components/Undock.cjs.map +1 -1
  560. package/dist/components/Icon/components/Undock.js.map +1 -1
  561. package/dist/components/Icon/components/Unreconciled.cjs.map +1 -1
  562. package/dist/components/Icon/components/Unreconciled.js.map +1 -1
  563. package/dist/components/Icon/components/Wallet.cjs.map +1 -1
  564. package/dist/components/Icon/components/Wallet.js.map +1 -1
  565. package/dist/components/Icon/components/Warning.cjs.map +1 -1
  566. package/dist/components/Icon/components/Warning.js.map +1 -1
  567. package/dist/components/Icon/components/Webshop.cjs.map +1 -1
  568. package/dist/components/Icon/components/Webshop.js.map +1 -1
  569. package/dist/components/Icon/components/Website.cjs.map +1 -1
  570. package/dist/components/Icon/components/Website.js.map +1 -1
  571. package/dist/components/Icon/components/Workflow.cjs.map +1 -1
  572. package/dist/components/Icon/components/Workflow.js.map +1 -1
  573. package/dist/components/Icon/components/WorkflowTemplateBasic.cjs.map +1 -1
  574. package/dist/components/Icon/components/WorkflowTemplateBasic.js.map +1 -1
  575. package/dist/components/Icon/components/Zoom.cjs.map +1 -1
  576. package/dist/components/Icon/components/Zoom.js.map +1 -1
  577. package/dist/components/Input/Input.cjs.map +1 -1
  578. package/dist/components/Input/Input.d.ts +14 -8
  579. package/dist/components/Input/Input.js.map +1 -1
  580. package/dist/components/LegacyComponents/Button/Button.cjs.map +1 -1
  581. package/dist/components/LegacyComponents/Button/Button.d.ts +13 -13
  582. package/dist/components/LegacyComponents/Button/Button.js.map +1 -1
  583. package/dist/components/LegacyComponents/Button/util.cjs.map +1 -1
  584. package/dist/components/LegacyComponents/Button/util.d.ts +2 -2
  585. package/dist/components/LegacyComponents/Button/util.js.map +1 -1
  586. package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
  587. package/dist/components/LegacyComponents/IconButton/IconButton.d.ts +15 -15
  588. package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
  589. package/dist/components/List/List.cjs.map +1 -1
  590. package/dist/components/List/List.d.ts +3 -3
  591. package/dist/components/List/List.js.map +1 -1
  592. package/dist/components/List/components/Collapsible.cjs.map +1 -1
  593. package/dist/components/List/components/Collapsible.d.ts +2 -2
  594. package/dist/components/List/components/Collapsible.js.map +1 -1
  595. package/dist/components/List/components/Group.cjs.map +1 -1
  596. package/dist/components/List/components/Group.d.ts +2 -2
  597. package/dist/components/List/components/Group.js.map +1 -1
  598. package/dist/components/List/components/Item.cjs.map +1 -1
  599. package/dist/components/List/components/Item.d.ts +7 -7
  600. package/dist/components/List/components/Item.js.map +1 -1
  601. package/dist/components/List/components/Toggle.cjs.map +1 -1
  602. package/dist/components/List/components/Toggle.js.map +1 -1
  603. package/dist/components/Listbox/ScrollableList.cjs.map +1 -1
  604. package/dist/components/Listbox/ScrollableList.d.ts +4 -2
  605. package/dist/components/Listbox/ScrollableList.js.map +1 -1
  606. package/dist/components/Listbox/util.cjs.map +1 -1
  607. package/dist/components/Listbox/util.d.ts +9 -5
  608. package/dist/components/Listbox/util.js.map +1 -1
  609. package/dist/components/Menu/Context.cjs.map +1 -1
  610. package/dist/components/Menu/Context.d.ts +2 -2
  611. package/dist/components/Menu/Context.js.map +1 -1
  612. package/dist/components/Menu/Menu.cjs.map +1 -1
  613. package/dist/components/Menu/Menu.d.ts +1 -1
  614. package/dist/components/Menu/Menu.js.map +1 -1
  615. package/dist/components/Menu/components/Content.cjs.map +1 -1
  616. package/dist/components/Menu/components/Content.js.map +1 -1
  617. package/dist/components/Menu/components/Item.cjs.map +1 -1
  618. package/dist/components/Menu/components/Item.d.ts +2 -2
  619. package/dist/components/Menu/components/Item.js.map +1 -1
  620. package/dist/components/Menu/components/RadioGroup.cjs.map +1 -1
  621. package/dist/components/Menu/components/RadioGroup.js.map +1 -1
  622. package/dist/components/Navigation2/components/Group.cjs.map +1 -1
  623. package/dist/components/Navigation2/components/Group.d.ts +2 -2
  624. package/dist/components/Navigation2/components/Group.js.map +1 -1
  625. package/dist/components/Navigation2/components/Link.cjs.map +1 -1
  626. package/dist/components/Navigation2/components/Link.d.ts +2 -2
  627. package/dist/components/Navigation2/components/Link.js.map +1 -1
  628. package/dist/components/OverflowGroup/OverflowGroup.cjs.map +1 -1
  629. package/dist/components/OverflowGroup/OverflowGroup.js.map +1 -1
  630. package/dist/components/Pagination/PageNumbers.cjs.map +1 -1
  631. package/dist/components/Pagination/PageNumbers.d.ts +2 -1
  632. package/dist/components/Pagination/PageNumbers.js.map +1 -1
  633. package/dist/components/Popover/Popover.cjs.map +1 -1
  634. package/dist/components/Popover/Popover.d.ts +2 -2
  635. package/dist/components/Popover/Popover.js.map +1 -1
  636. package/dist/components/Progress/Progress.cjs.map +1 -1
  637. package/dist/components/Progress/Progress.d.ts +1 -1
  638. package/dist/components/Progress/Progress.js.map +1 -1
  639. package/dist/components/Provider/Provider.cjs.map +1 -1
  640. package/dist/components/Provider/Provider.d.ts +1 -1
  641. package/dist/components/Provider/Provider.js.map +1 -1
  642. package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
  643. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  644. package/dist/components/Report/Report.cjs.map +1 -1
  645. package/dist/components/Report/Report.d.ts +1 -1
  646. package/dist/components/Report/Report.js.map +1 -1
  647. package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
  648. package/dist/components/SearchInput2/SearchInput2.d.ts +1 -1
  649. package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
  650. package/dist/components/Select/useSelect.cjs.map +1 -1
  651. package/dist/components/Select/useSelect.d.ts +2 -2
  652. package/dist/components/Select/useSelect.js.map +1 -1
  653. package/dist/components/Select2/Select2.cjs +1 -3
  654. package/dist/components/Select2/Select2.cjs.map +1 -1
  655. package/dist/components/Select2/Select2.d.ts +5 -5
  656. package/dist/components/Select2/Select2.js +1 -3
  657. package/dist/components/Select2/Select2.js.map +1 -1
  658. package/dist/components/Select2/components/Context.cjs.map +1 -1
  659. package/dist/components/Select2/components/Context.d.ts +3 -3
  660. package/dist/components/Select2/components/Context.js.map +1 -1
  661. package/dist/components/Select2/components/Option.cjs.map +1 -1
  662. package/dist/components/Select2/components/Option.d.ts +7 -7
  663. package/dist/components/Select2/components/Option.js.map +1 -1
  664. package/dist/components/Select2/components/Search.d.ts +7 -4
  665. package/dist/components/Select2/components/Trigger.cjs +6 -5
  666. package/dist/components/Select2/components/Trigger.cjs.map +1 -1
  667. package/dist/components/Select2/components/Trigger.js +6 -5
  668. package/dist/components/Select2/components/Trigger.js.map +1 -1
  669. package/dist/components/Select2/types.d.ts +1 -1
  670. package/dist/components/Table3/Table3.cjs.map +1 -1
  671. package/dist/components/Table3/Table3.d.ts +1 -1
  672. package/dist/components/Table3/Table3.js.map +1 -1
  673. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
  674. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.d.ts +1 -1
  675. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
  676. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  677. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  678. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.cjs.map +1 -1
  679. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +2 -1
  680. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -1
  681. package/dist/components/Table3/components/Editing/Alert.cjs +9 -3
  682. package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
  683. package/dist/components/Table3/components/Editing/Alert.js +9 -3
  684. package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
  685. package/dist/components/Table3/components/Row/Editing/TemporaryRow.cjs.map +1 -1
  686. package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -1
  687. package/dist/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
  688. package/dist/components/Table3/features/useEditingState.cjs +14 -6
  689. package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
  690. package/dist/components/Table3/features/useEditingState.d.ts +24 -6
  691. package/dist/components/Table3/features/useEditingState.js +14 -6
  692. package/dist/components/Table3/features/useEditingState.js.map +1 -1
  693. package/dist/components/Table3/features/useTableEditing.d.ts +28 -7
  694. package/dist/components/Tabs/components/TabList.cjs.map +1 -1
  695. package/dist/components/Tabs/components/TabList.js.map +1 -1
  696. package/dist/components/Tabs/components/Trigger.cjs.map +1 -1
  697. package/dist/components/Tabs/components/Trigger.d.ts +2 -2
  698. package/dist/components/Tabs/components/Trigger.js.map +1 -1
  699. package/dist/components/Toast/Toast.cjs.map +1 -1
  700. package/dist/components/Toast/Toast.d.ts +1 -1
  701. package/dist/components/Toast/Toast.js.map +1 -1
  702. package/dist/components/Toast/Toaster.cjs.map +1 -1
  703. package/dist/components/Toast/Toaster.d.ts +1 -1
  704. package/dist/components/Toast/Toaster.js.map +1 -1
  705. package/dist/components/Toast/util.cjs.map +1 -1
  706. package/dist/components/Toast/util.d.ts +2 -1
  707. package/dist/components/Toast/util.js.map +1 -1
  708. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  709. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  710. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  711. package/dist/components/Truncate/Truncate.cjs.map +1 -1
  712. package/dist/components/Truncate/Truncate.d.ts +5 -2
  713. package/dist/components/Truncate/Truncate.js.map +1 -1
  714. package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
  715. package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
  716. package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
  717. package/dist/hooks/useIntersectionObserver.cjs.map +1 -1
  718. package/dist/hooks/useIntersectionObserver.d.ts +1 -1
  719. package/dist/hooks/useIntersectionObserver.js.map +1 -1
  720. package/dist/hooks/useMergedRef.cjs.map +1 -1
  721. package/dist/hooks/useMergedRef.js.map +1 -1
  722. package/dist/hooks/useResizeObserver.cjs.map +1 -1
  723. package/dist/hooks/useResizeObserver.d.ts +1 -1
  724. package/dist/hooks/useResizeObserver.js.map +1 -1
  725. package/dist/primitives/Button.cjs.map +1 -1
  726. package/dist/primitives/Button.d.ts +2 -2
  727. package/dist/primitives/Button.js.map +1 -1
  728. package/dist/primitives/Listbox2/components/Option.d.ts +1 -1
  729. package/dist/primitives/Sortable/components/Item.cjs.map +1 -1
  730. package/dist/primitives/Sortable/components/Item.js.map +1 -1
  731. package/dist/primitives/Table/Core/Table.cjs.map +1 -1
  732. package/dist/primitives/Table/Core/Table.d.ts +2 -2
  733. package/dist/primitives/Table/Core/Table.js.map +1 -1
  734. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  735. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  736. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
  737. package/dist/primitives/Table/Core/components/Columns/Cell/util.d.ts +1 -1
  738. package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
  739. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
  740. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  741. package/dist/primitives/Table/Core/components/Footer/Footer.cjs.map +1 -1
  742. package/dist/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
  743. package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
  744. package/dist/primitives/Table/Core/components/Header/Header.d.ts +1 -1
  745. package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
  746. package/dist/primitives/Table/Core/components/Header/components/Menu.cjs.map +1 -1
  747. package/dist/primitives/Table/Core/components/Header/components/Menu.d.ts +1 -1
  748. package/dist/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
  749. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
  750. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.d.ts +1 -1
  751. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
  752. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs.map +1 -1
  753. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.d.ts +1 -1
  754. package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -1
  755. package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
  756. package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
  757. package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
  758. package/dist/primitives/Table/Core/types.d.ts +3 -3
  759. package/dist/primitives/Table/Core/useTable.cjs.map +1 -1
  760. package/dist/primitives/Table/Core/useTable.d.ts +4 -4
  761. package/dist/primitives/Table/Core/useTable.js.map +1 -1
  762. package/dist/primitives/Table/types.cjs.map +1 -1
  763. package/dist/primitives/Table/types.d.ts +15 -15
  764. package/dist/primitives/Table/types.js.map +1 -1
  765. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.d.ts +1 -1
  766. package/dist/primitives/Table/useTableManager/types.d.ts +2 -2
  767. package/dist/primitives/Table/useTableManager/util/setup.cjs +2 -2
  768. package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
  769. package/dist/primitives/Table/useTableManager/util/setup.js +2 -2
  770. package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
  771. package/dist/types.cjs.map +1 -1
  772. package/dist/types.d.ts +1 -1
  773. package/dist/types.js.map +1 -1
  774. package/package.json +8 -15
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { Placement } from '../..';\nimport { mergeRefs } from '../../utils/mergeRefs';\n\nimport { UnstyledArrow } from './Primitives';\nimport { getPopoverStyleClassnames } from './util';\n\ntype PopoverContextValue = { props: any; ref: React.Ref<HTMLElement>; anchorRef: React.RefObject<HTMLElement> };\n\nconst PopoverContext = React.createContext<PopoverContextValue>({\n anchorRef: { current: null },\n props: {},\n ref: null,\n});\n\nexport type PopoverAnchorProps = React.HTMLAttributes<HTMLElement> & {\n children: React.ReactElement;\n};\nconst Anchor = React.forwardRef(function PopoverAnchor(props: PopoverAnchorProps, forwardedRef: React.Ref<HTMLDivElement>) {\n const context = React.useContext(PopoverContext);\n\n const ref = mergeRefs([context.anchorRef, forwardedRef]);\n\n const { children, ...restProps } = props;\n\n return <PopoverPrimitive.Trigger {...restProps} ref={ref} render={children} />;\n});\n\nexport type PopoverTriggerProps = React.HTMLAttributes<HTMLElement> & {\n children: React.ReactElement;\n /**\n * Whether the trigger renders a native `<button>` element.\n * Set to `false` if the trigger child is not a button (e.g. `<input>`, `<div>`, '<span>', etc.).\n * @default true\n */\n nativeButton?: boolean;\n};\nconst Trigger = React.forwardRef(function PopoverTrigger(props: PopoverTriggerProps, externalRef: React.Ref<HTMLElement>) {\n const { ref: parentRef, props: parentProps } = React.useContext(PopoverContext);\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n let { children, nativeButton, ...restProps } = props;\n\n if (React.isValidElement(props.children) && typeof props.children?.type === 'function') {\n // oxlint-disable-next-line no-console\n console.warn(\n `Popover.Trigger requires its child to forwardRef so that it can attach to the dom element. Did you mean to wrap '${props.children.type.name}' in React.forwardRef()? Taco has wrapped '${props.children.type.name}' in a 'span' to maintain functionality, but this may cause unintended behaviour`\n );\n children = <span>{props.children}</span>;\n }\n\n return (\n <PopoverPrimitive.Trigger\n {...parentProps}\n {...restProps}\n nativeButton={nativeButton}\n ref={refCallback}\n render={children}\n />\n );\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('hide'));\n };\n\n return children({ close, ref });\n});\n\nexport type PopoverContentRenderProps = { close: () => void };\n\nexport type PopoverContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: React.ReactNode | ((props: PopoverContentRenderProps) => React.ReactNode);\n container?: HTMLElement | null;\n finalFocus?: PopoverPrimitive.Popup.Props['finalFocus'];\n initialFocus?: PopoverPrimitive.Popup.Props['initialFocus'];\n /** Set the position of the Popover relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\nconst Content = React.forwardRef(function PopoverContent(props: PopoverContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement: side, container, ...popoverContentProps } = props;\n\n const context = React.useContext(PopoverContext);\n\n const className = cn(getPopoverStyleClassnames(), props.className);\n\n let output;\n\n if (typeof props.children === 'function') {\n output = <PopoverPrimitive.Close render={<RenderPropWrapper>{props.children}</RenderPropWrapper>} />;\n } else {\n output = props.children;\n }\n\n return (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Positioner side={side} sideOffset={8} anchor={context.anchorRef}>\n <PopoverPrimitive.Popup {...popoverContentProps} className={className} data-taco=\"popover\" ref={ref}>\n <UnstyledArrow />\n {output}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n});\n\nexport type PopoverCloseProps = React.HTMLAttributes<HTMLButtonElement> & {\n children: React.ReactElement;\n};\nconst Close = React.forwardRef((props: PopoverCloseProps, ref: React.Ref<HTMLButtonElement>): JSX.Element => {\n const { children, ...restProps } = props;\n return <PopoverPrimitive.Close {...restProps} ref={ref} render={children} />;\n});\n\nexport type PopoverProps = React.PropsWithChildren<{\n anchor?: JSX.Element;\n modal?: boolean | 'trap-focus';\n /** A trigger to be used for the popover, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n /** Set whether the popover is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Control the open state of the popover from outside the component */\n open?: boolean;\n /** Called when the popover opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n}>;\nexport type ForwardedPopoverWithStatics = React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLElement>> & {\n Anchor: React.ForwardRefExoticComponent<PopoverAnchorProps>;\n Trigger: React.ForwardRefExoticComponent<PopoverTriggerProps>;\n Content: React.ForwardRefExoticComponent<PopoverContentProps>;\n Close: React.ForwardRefExoticComponent<PopoverCloseProps>;\n};\n\nexport const Popover = React.forwardRef<HTMLElement, PopoverProps>(function Popover(props, ref) {\n const { anchor, children, defaultOpen, modal = 'trap-focus', open, onChange, trigger, ...otherProps } = props;\n\n const anchorRef = React.useRef(null);\n\n const handleOpenChange = (open: boolean, eventDetails: PopoverPrimitive.Root.ChangeEventDetails) => {\n if (eventDetails.reason === 'escape-key') {\n const triggeredFromRadixPortal = (eventDetails.event.target as HTMLElement)?.closest(\n 'div[data-radix-popper-content-wrapper]'\n );\n\n if (triggeredFromRadixPortal) {\n // TODO: This could be removed when all radix overlays are replaced with base UI components, but currently it propagates through and closes the dialog.\n\n // cancel closing the dialog\n eventDetails.cancel();\n // propagate to allow the radix overlay to close\n eventDetails.allowPropagation();\n return;\n }\n }\n\n onChange?.(open);\n };\n\n return (\n <PopoverContext.Provider value={{ anchorRef, props: otherProps, ref }}>\n <PopoverPrimitive.Root defaultOpen={defaultOpen} modal={modal} open={open} onOpenChange={handleOpenChange}>\n {anchor ? <Anchor>{anchor}</Anchor> : null}\n {trigger && !anchor ? <Trigger>{trigger}</Trigger> : null}\n {children}\n </PopoverPrimitive.Root>\n </PopoverContext.Provider>\n );\n}) as ForwardedPopoverWithStatics;\nPopover.Anchor = Anchor;\nPopover.Trigger = Trigger;\nPopover.Content = Content;\nPopover.Close = Close;\n"],"names":["PopoverPrimitive","RenderPropWrapper","Popover","open"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { Placement } from '../..';\nimport { mergeRefs } from '../../utils/mergeRefs';\n\nimport { UnstyledArrow } from './Primitives';\nimport { getPopoverStyleClassnames } from './util';\n\ntype PopoverContextValue = { props: any; ref: React.Ref<HTMLElement>; anchorRef: React.RefObject<HTMLElement | null> };\n\nconst PopoverContext = React.createContext<PopoverContextValue>({\n anchorRef: { current: null },\n props: {},\n ref: null,\n});\n\nexport type PopoverAnchorProps = React.HTMLAttributes<HTMLElement> & {\n children: React.ReactElement;\n};\nconst Anchor = React.forwardRef(function PopoverAnchor(props: PopoverAnchorProps, forwardedRef: React.Ref<HTMLDivElement>) {\n const context = React.useContext(PopoverContext);\n\n const ref = mergeRefs([context.anchorRef, forwardedRef]);\n\n const { children, ...restProps } = props;\n\n return <PopoverPrimitive.Trigger {...restProps} ref={ref} render={children} />;\n});\n\nexport type PopoverTriggerProps = React.HTMLAttributes<HTMLElement> & {\n children: React.ReactElement;\n /**\n * Whether the trigger renders a native `<button>` element.\n * Set to `false` if the trigger child is not a button (e.g. `<input>`, `<div>`, '<span>', etc.).\n * @default true\n */\n nativeButton?: boolean;\n};\nconst Trigger = React.forwardRef(function PopoverTrigger(props: PopoverTriggerProps, externalRef: React.Ref<HTMLElement>) {\n const { ref: parentRef, props: parentProps } = React.useContext(PopoverContext);\n const refCallback = mergeRefs([parentRef, externalRef]);\n\n let { children, nativeButton, ...restProps } = props;\n\n if (React.isValidElement(props.children) && typeof props.children?.type === 'function') {\n // oxlint-disable-next-line no-console\n console.warn(\n `Popover.Trigger requires its child to forwardRef so that it can attach to the dom element. Did you mean to wrap '${props.children.type.name}' in React.forwardRef()? Taco has wrapped '${props.children.type.name}' in a 'span' to maintain functionality, but this may cause unintended behaviour`\n );\n children = <span>{props.children}</span>;\n }\n\n return (\n <PopoverPrimitive.Trigger\n {...parentProps}\n {...restProps}\n nativeButton={nativeButton}\n ref={refCallback}\n render={children}\n />\n );\n});\n\nconst RenderPropWrapper = React.forwardRef(function RenderPropWrapper({ children, onClick }: any, ref) {\n const close = () => {\n onClick(new CustomEvent('hide'));\n };\n\n return children({ close, ref });\n});\n\nexport type PopoverContentRenderProps = { close: () => void };\n\nexport type PopoverContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n children: React.ReactNode | ((props: PopoverContentRenderProps) => React.ReactNode);\n container?: HTMLElement | null;\n finalFocus?: PopoverPrimitive.Popup.Props['finalFocus'];\n initialFocus?: PopoverPrimitive.Popup.Props['initialFocus'];\n /** Set the position of the Popover relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\nconst Content = React.forwardRef(function PopoverContent(props: PopoverContentProps, ref: React.Ref<HTMLDivElement>) {\n const { placement: side, container, ...popoverContentProps } = props;\n\n const context = React.useContext(PopoverContext);\n\n const className = cn(getPopoverStyleClassnames(), props.className);\n\n let output;\n\n if (typeof props.children === 'function') {\n output = <PopoverPrimitive.Close render={<RenderPropWrapper>{props.children}</RenderPropWrapper>} />;\n } else {\n output = props.children;\n }\n\n return (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Positioner side={side} sideOffset={8} anchor={context.anchorRef}>\n <PopoverPrimitive.Popup {...popoverContentProps} className={className} data-taco=\"popover\" ref={ref}>\n <UnstyledArrow />\n {output}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n});\n\nexport type PopoverCloseProps = React.HTMLAttributes<HTMLButtonElement> & {\n children: React.ReactElement;\n};\nconst Close = React.forwardRef((props: PopoverCloseProps, ref: React.Ref<HTMLButtonElement>): React.JSX.Element => {\n const { children, ...restProps } = props;\n return <PopoverPrimitive.Close {...restProps} ref={ref} render={children} />;\n});\n\nexport type PopoverProps = React.PropsWithChildren<{\n anchor?: React.JSX.Element;\n modal?: boolean | 'trap-focus';\n /** A trigger to be used for the popover, should not be set if `children` already contains a trigger */\n trigger?: React.JSX.Element;\n /** Set whether the popover is open by default or not, use when not providing a trigger */\n defaultOpen?: boolean;\n /** Control the open state of the popover from outside the component */\n open?: boolean;\n /** Called when the popover opens or closes, must be used in conjunction with open */\n onChange?: (open: boolean) => void;\n}>;\nexport type ForwardedPopoverWithStatics = React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLElement>> & {\n Anchor: React.ForwardRefExoticComponent<PopoverAnchorProps>;\n Trigger: React.ForwardRefExoticComponent<PopoverTriggerProps>;\n Content: React.ForwardRefExoticComponent<PopoverContentProps>;\n Close: React.ForwardRefExoticComponent<PopoverCloseProps>;\n};\n\nexport const Popover = React.forwardRef<HTMLElement, PopoverProps>(function Popover(props, ref) {\n const { anchor, children, defaultOpen, modal = 'trap-focus', open, onChange, trigger, ...otherProps } = props;\n\n const anchorRef = React.useRef(null);\n\n const handleOpenChange = (open: boolean, eventDetails: PopoverPrimitive.Root.ChangeEventDetails) => {\n if (eventDetails.reason === 'escape-key') {\n const triggeredFromRadixPortal = (eventDetails.event.target as HTMLElement)?.closest(\n 'div[data-radix-popper-content-wrapper]'\n );\n\n if (triggeredFromRadixPortal) {\n // TODO: This could be removed when all radix overlays are replaced with base UI components, but currently it propagates through and closes the dialog.\n\n // cancel closing the dialog\n eventDetails.cancel();\n // propagate to allow the radix overlay to close\n eventDetails.allowPropagation();\n return;\n }\n }\n\n onChange?.(open);\n };\n\n return (\n <PopoverContext.Provider value={{ anchorRef, props: otherProps, ref }}>\n <PopoverPrimitive.Root defaultOpen={defaultOpen} modal={modal} open={open} onOpenChange={handleOpenChange}>\n {anchor ? <Anchor>{anchor}</Anchor> : null}\n {trigger && !anchor ? <Trigger>{trigger}</Trigger> : null}\n {children}\n </PopoverPrimitive.Root>\n </PopoverContext.Provider>\n );\n}) as ForwardedPopoverWithStatics;\nPopover.Anchor = Anchor;\nPopover.Trigger = Trigger;\nPopover.Content = Content;\nPopover.Close = Close;\n"],"names":["PopoverPrimitive","RenderPropWrapper","Popover","open"],"mappings":";;;;;;AAYA,MAAM,iBAAiB,MAAM,cAAmC;AAAA,EAC5D,WAAW,EAAE,SAAS,KAAA;AAAA,EACtB,OAAO,CAAA;AAAA,EACP,KAAK;AACT,CAAC;AAKD,MAAM,SAAS,MAAM,WAAW,SAAS,cAAc,OAA2B,cAAyC;AACvH,QAAM,UAAU,MAAM,WAAW,cAAc;AAE/C,QAAM,MAAM,UAAU,CAAC,QAAQ,WAAW,YAAY,CAAC;AAEvD,QAAM,EAAE,UAAU,GAAG,UAAA,IAAc;AAEnC,SAAO,sBAAA,cAACA,UAAiB,SAAjB,EAA0B,GAAG,WAAW,KAAU,QAAQ,UAAU;AAChF,CAAC;AAWD,MAAM,UAAU,MAAM,WAAW,SAAS,eAAe,OAA4B,aAAqC;AACtH,QAAM,EAAE,KAAK,WAAW,OAAO,gBAAgB,MAAM,WAAW,cAAc;AAC9E,QAAM,cAAc,UAAU,CAAC,WAAW,WAAW,CAAC;AAEtD,MAAI,EAAE,UAAU,cAAc,GAAG,cAAc;AAE/C,MAAI,MAAM,eAAe,MAAM,QAAQ,KAAK,OAAO,MAAM,UAAU,SAAS,YAAY;AAEpF,YAAQ;AAAA,MACJ,oHAAoH,MAAM,SAAS,KAAK,IAAI,8CAA8C,MAAM,SAAS,KAAK,IAAI;AAAA,IAAA;AAEtN,eAAW,sBAAA,cAAC,QAAA,MAAM,MAAM,QAAS;AAAA,EACrC;AAEA,SACI,sBAAA;AAAA,IAACA,UAAiB;AAAA,IAAjB;AAAA,MACI,GAAG;AAAA,MACH,GAAG;AAAA,MACJ;AAAA,MACA,KAAK;AAAA,MACL,QAAQ;AAAA,IAAA;AAAA,EAAA;AAGpB,CAAC;AAED,MAAM,oBAAoB,MAAM,WAAW,SAASC,mBAAkB,EAAE,UAAU,QAAA,GAAgB,KAAK;AACnG,QAAM,QAAQ,MAAM;AAChB,YAAQ,IAAI,YAAY,MAAM,CAAC;AAAA,EACnC;AAEA,SAAO,SAAS,EAAE,OAAO,KAAK;AAClC,CAAC;AAYD,MAAM,UAAU,MAAM,WAAW,SAAS,eAAe,OAA4B,KAAgC;AACjH,QAAM,EAAE,WAAW,MAAM,WAAW,GAAG,wBAAwB;AAE/D,QAAM,UAAU,MAAM,WAAW,cAAc;AAE/C,QAAM,YAAY,GAAG,0BAAA,GAA6B,MAAM,SAAS;AAEjE,MAAI;AAEJ,MAAI,OAAO,MAAM,aAAa,YAAY;AACtC,aAAS,sBAAA,cAACD,UAAiB,OAAjB,EAAuB,QAAQ,sBAAA,cAAC,mBAAA,MAAmB,MAAM,QAAS,EAAA,CAAsB;AAAA,EACtG,OAAO;AACH,aAAS,MAAM;AAAA,EACnB;AAEA,SACI,sBAAA,cAACA,UAAiB,QAAjB,EAAwB,UAAA,GACrB,sBAAA,cAACA,UAAiB,YAAjB,EAA4B,MAAY,YAAY,GAAG,QAAQ,QAAQ,UAAA,GACpE,sBAAA,cAACA,UAAiB,OAAjB,EAAwB,GAAG,qBAAqB,WAAsB,aAAU,WAAU,IAAA,GACvF,sBAAA,cAAC,eAAA,IAAc,GACd,MACL,CACJ,CACJ;AAER,CAAC;AAKD,MAAM,QAAQ,MAAM,WAAW,CAAC,OAA0B,QAAyD;AAC/G,QAAM,EAAE,UAAU,GAAG,UAAA,IAAc;AACnC,SAAO,sBAAA,cAACA,UAAiB,OAAjB,EAAwB,GAAG,WAAW,KAAU,QAAQ,UAAU;AAC9E,CAAC;AAqBM,MAAM,UAAU,MAAM,WAAsC,SAASE,SAAQ,OAAO,KAAK;AAC5F,QAAM,EAAE,QAAQ,UAAU,aAAa,QAAQ,cAAc,MAAM,UAAU,SAAS,GAAG,WAAA,IAAe;AAExG,QAAM,YAAY,MAAM,OAAO,IAAI;AAEnC,QAAM,mBAAmB,CAACC,OAAe,iBAA2D;AAChG,QAAI,aAAa,WAAW,cAAc;AACtC,YAAM,2BAA4B,aAAa,MAAM,QAAwB;AAAA,QACzE;AAAA,MAAA;AAGJ,UAAI,0BAA0B;AAI1B,qBAAa,OAAA;AAEb,qBAAa,iBAAA;AACb;AAAA,MACJ;AAAA,IACJ;AAEA,eAAWA,KAAI;AAAA,EACnB;AAEA,SACI,sBAAA,cAAC,eAAe,UAAf,EAAwB,OAAO,EAAE,WAAW,OAAO,YAAY,MAAI,GAChE,sBAAA,cAACH,UAAiB,MAAjB,EAAsB,aAA0B,OAAc,MAAY,cAAc,oBACpF,SAAS,sBAAA,cAAC,QAAA,MAAQ,MAAO,IAAY,MACrC,WAAW,CAAC,6CAAU,SAAA,MAAS,OAAQ,IAAa,MACpD,QACL,CACJ;AAER,CAAC;AACD,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.cjs","sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport './Progress.css';\n\nexport type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {\n /**\n * Indicates how long (in milliseconds) a progress bar will take to progress through.\n * By default, progress bar has no duration\n */\n duration?: number;\n};\n\nexport const Progress = ({ duration = undefined, ...props }: ProgressProps): JSX.Element => {\n let style;\n\n if (duration) {\n style = {\n animationDuration: `${duration}ms`,\n };\n }\n\n const className = cn('block h-1 w-full overflow-hidden rounded bg-gray-100', props.className);\n\n const progressClassName = cn('yt-progress__bar block h-1', {\n \"before:content-[' '] w-full before:block before:h-1 before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:bg-gray-300\":\n !duration,\n ['w-0 animate-[progress_linear] bg-gray-300']: duration,\n });\n\n return (\n <span {...props} data-taco=\"progress\" className={className}>\n <span className={progressClassName} data-taco=\"progress-bar\" style={style} />\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;AAaO,MAAM,WAAW,CAAC,EAAE,WAAW,QAAW,GAAG,YAAwC;AACxF,MAAI;AAEJ,MAAI,UAAU;AACV,YAAQ;AAAA,MACJ,mBAAmB,GAAG,QAAQ;AAAA,IAAA;AAAA,EAEtC;AAEA,QAAM,YAAY,GAAG,wDAAwD,MAAM,SAAS;AAE5F,QAAM,oBAAoB,GAAG,8BAA8B;AAAA,IACvD,wJACI,CAAC;AAAA,IACL,CAAC,2CAA2C,GAAG;AAAA,EAAA,CAClD;AAED,SACI,sBAAA,cAAC,QAAA,EAAM,GAAG,OAAO,aAAU,YAAW,UAAA,GAClC,sBAAA,cAAC,QAAA,EAAK,WAAW,mBAAmB,aAAU,gBAAe,OAAc,CAC/E;AAER;;"}
1
+ {"version":3,"file":"Progress.cjs","sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport './Progress.css';\n\nexport type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {\n /**\n * Indicates how long (in milliseconds) a progress bar will take to progress through.\n * By default, progress bar has no duration\n */\n duration?: number;\n};\n\nexport const Progress = ({ duration = undefined, ...props }: ProgressProps): React.JSX.Element => {\n let style;\n\n if (duration) {\n style = {\n animationDuration: `${duration}ms`,\n };\n }\n\n const className = cn('block h-1 w-full overflow-hidden rounded bg-gray-100', props.className);\n\n const progressClassName = cn('yt-progress__bar block h-1', {\n \"before:content-[' '] w-full before:block before:h-1 before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:bg-gray-300\":\n !duration,\n ['w-0 animate-[progress_linear] bg-gray-300']: duration,\n });\n\n return (\n <span {...props} data-taco=\"progress\" className={className}>\n <span className={progressClassName} data-taco=\"progress-bar\" style={style} />\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;AAaO,MAAM,WAAW,CAAC,EAAE,WAAW,QAAW,GAAG,YAA8C;AAC9F,MAAI;AAEJ,MAAI,UAAU;AACV,YAAQ;AAAA,MACJ,mBAAmB,GAAG,QAAQ;AAAA,IAAA;AAAA,EAEtC;AAEA,QAAM,YAAY,GAAG,wDAAwD,MAAM,SAAS;AAE5F,QAAM,oBAAoB,GAAG,8BAA8B;AAAA,IACvD,wJACI,CAAC;AAAA,IACL,CAAC,2CAA2C,GAAG;AAAA,EAAA,CAClD;AAED,SACI,sBAAA,cAAC,QAAA,EAAM,GAAG,OAAO,aAAU,YAAW,UAAA,GAClC,sBAAA,cAAC,QAAA,EAAK,WAAW,mBAAmB,aAAU,gBAAe,OAAc,CAC/E;AAER;;"}
@@ -6,4 +6,4 @@ export type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {
6
6
  */
7
7
  duration?: number;
8
8
  };
9
- export declare const Progress: ({ duration, ...props }: ProgressProps) => JSX.Element;
9
+ export declare const Progress: ({ duration, ...props }: ProgressProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport './Progress.css';\n\nexport type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {\n /**\n * Indicates how long (in milliseconds) a progress bar will take to progress through.\n * By default, progress bar has no duration\n */\n duration?: number;\n};\n\nexport const Progress = ({ duration = undefined, ...props }: ProgressProps): JSX.Element => {\n let style;\n\n if (duration) {\n style = {\n animationDuration: `${duration}ms`,\n };\n }\n\n const className = cn('block h-1 w-full overflow-hidden rounded bg-gray-100', props.className);\n\n const progressClassName = cn('yt-progress__bar block h-1', {\n \"before:content-[' '] w-full before:block before:h-1 before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:bg-gray-300\":\n !duration,\n ['w-0 animate-[progress_linear] bg-gray-300']: duration,\n });\n\n return (\n <span {...props} data-taco=\"progress\" className={className}>\n <span className={progressClassName} data-taco=\"progress-bar\" style={style} />\n </span>\n );\n};\n"],"names":["React"],"mappings":";;;AAaO,MAAM,WAAW,CAAC,EAAE,WAAW,QAAW,GAAG,YAAwC;AACxF,MAAI;AAEJ,MAAI,UAAU;AACV,YAAQ;AAAA,MACJ,mBAAmB,GAAG,QAAQ;AAAA,IAAA;AAAA,EAEtC;AAEA,QAAM,YAAY,GAAG,wDAAwD,MAAM,SAAS;AAE5F,QAAM,oBAAoB,GAAG,8BAA8B;AAAA,IACvD,wJACI,CAAC;AAAA,IACL,CAAC,2CAA2C,GAAG;AAAA,EAAA,CAClD;AAED,SACIA,+BAAA,cAAC,QAAA,EAAM,GAAG,OAAO,aAAU,YAAW,UAAA,GAClCA,+BAAA,cAAC,QAAA,EAAK,WAAW,mBAAmB,aAAU,gBAAe,OAAc,CAC/E;AAER;"}
1
+ {"version":3,"file":"Progress.js","sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport './Progress.css';\n\nexport type ProgressProps = React.HTMLAttributes<HTMLSpanElement> & {\n /**\n * Indicates how long (in milliseconds) a progress bar will take to progress through.\n * By default, progress bar has no duration\n */\n duration?: number;\n};\n\nexport const Progress = ({ duration = undefined, ...props }: ProgressProps): React.JSX.Element => {\n let style;\n\n if (duration) {\n style = {\n animationDuration: `${duration}ms`,\n };\n }\n\n const className = cn('block h-1 w-full overflow-hidden rounded bg-gray-100', props.className);\n\n const progressClassName = cn('yt-progress__bar block h-1', {\n \"before:content-[' '] w-full before:block before:h-1 before:animate-[progress-indeterminate_2s_cubic-bezier(0.4,0,0.2,1)_infinite] before:bg-gray-300\":\n !duration,\n ['w-0 animate-[progress_linear] bg-gray-300']: duration,\n });\n\n return (\n <span {...props} data-taco=\"progress\" className={className}>\n <span className={progressClassName} data-taco=\"progress-bar\" style={style} />\n </span>\n );\n};\n"],"names":["React"],"mappings":";;;AAaO,MAAM,WAAW,CAAC,EAAE,WAAW,QAAW,GAAG,YAA8C;AAC9F,MAAI;AAEJ,MAAI,UAAU;AACV,YAAQ;AAAA,MACJ,mBAAmB,GAAG,QAAQ;AAAA,IAAA;AAAA,EAEtC;AAEA,QAAM,YAAY,GAAG,wDAAwD,MAAM,SAAS;AAE5F,QAAM,oBAAoB,GAAG,8BAA8B;AAAA,IACvD,wJACI,CAAC;AAAA,IACL,CAAC,2CAA2C,GAAG;AAAA,EAAA,CAClD;AAED,SACIA,+BAAA,cAAC,QAAA,EAAM,GAAG,OAAO,aAAU,YAAW,UAAA,GAClCA,+BAAA,cAAC,QAAA,EAAK,WAAW,mBAAmB,aAAU,gBAAe,OAAc,CAC/E;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.cjs","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '../Toast/Toaster';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":["React","LocalizationProvider","Tooltip","ToastProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,cAAcA,iBAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAAsC;AAC3D,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAUA,iBAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,wDACKC,aAAAA,sBAAA,EAAqB,aAAA,kDACjB,YAAY,UAAZ,EAAqB,OAAO,WACzBD,iCAAA,cAACE,gBAAQ,UAAR,MACGF,iCAAA,cAACG,6BAAe,QAAS,CAC7B,CACJ,CACJ;AAER;;;"}
1
+ {"version":3,"file":"Provider.cjs","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '../Toast/Toaster';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":["React","LocalizationProvider","Tooltip","ToastProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,cAAcA,iBAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAUA,iBAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,wDACKC,aAAAA,sBAAA,EAAqB,aAAA,kDACjB,YAAY,UAAZ,EAAqB,OAAO,WACzBD,iCAAA,cAACE,gBAAQ,UAAR,MACGF,iCAAA,cAACG,6BAAe,QAAS,CAC7B,CACJ,CACJ;AAER;;;"}
@@ -11,4 +11,4 @@ export type ProviderProps = {
11
11
  localization?: Localization;
12
12
  settings: TacoSettings;
13
13
  };
14
- export declare const Provider: (props: ProviderProps) => JSX.Element;
14
+ export declare const Provider: (props: ProviderProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '../Toast/Toaster';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,cAAc,MAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAAsC;AAC3D,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAU,MAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,6CACK,sBAAA,EAAqB,aAAA,uCACjB,YAAY,UAAZ,EAAqB,OAAO,WACzB,sBAAA,cAAC,QAAQ,UAAR,MACG,sBAAA,cAAC,qBAAe,QAAS,CAC7B,CACJ,CACJ;AAER;"}
1
+ {"version":3,"file":"Provider.js","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '../Toast/Toaster';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,cAAc,MAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAU,MAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,6CACK,sBAAA,EAAqB,aAAA,uCACjB,YAAY,UAAZ,EAAqB,OAAO,WACzB,sBAAA,cAAC,QAAQ,UAAR,MACG,sBAAA,cAAC,qBAAe,QAAS,CAC7B,CACJ,CACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.cjs","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '../../hooks/useControlled';\nimport { useId } from '../../hooks/useId';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { Either } from '../../types';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nimport { getRadioItemByValue, stringifyValue } from './util';\n\nimport './RadioGroup.css';\n\n// item\nexport type RadioGroupItemValue = string | number | boolean | null;\nexport type RadioGroupItemProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = Omit<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n 'onChange'\n> & {\n /** Value of the radio button */\n value: TValue;\n /** Disable this radio button */\n disabled?: boolean;\n children?: React.ReactNode;\n};\n\ntype RadioGroupContextValue = {\n name: string;\n selectedValue: string | undefined;\n tabbableValue: string | undefined;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n required: boolean;\n onItemChange: (itemValue: string) => void;\n onItemKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue | null>(null);\n\nconst RadioGroupItem = React.forwardRef(function RadioGroupItem(props: RadioGroupItemProps, ref: React.Ref<HTMLInputElement>) {\n const { value, children, disabled, className, ...otherProps } = props;\n const context = React.useContext(RadioGroupContext);\n\n if (context === null) {\n return null;\n }\n\n const stringValue = stringifyValue(value);\n const itemDisabled = context.disabled || Boolean(disabled);\n const checked = context.selectedValue === stringValue;\n const tabIndex = context.tabbableValue === stringValue ? 0 : -1;\n\n return (\n <label\n {...otherProps}\n className={className}\n data-taco=\"radio-group-item\"\n data-selected={checked || undefined}\n data-disabled={itemDisabled || undefined}\n data-readonly={context.readOnly || undefined}\n data-invalid={context.invalid || undefined}>\n <VisuallyHidden>\n <input\n ref={ref}\n type=\"radio\"\n name={context.name}\n value={stringValue}\n checked={checked}\n disabled={itemDisabled}\n required={context.required}\n tabIndex={tabIndex}\n aria-invalid={context.invalid || undefined}\n onChange={() => context.onItemChange(stringValue)}\n onClick={event => {\n if (context.readOnly || itemDisabled) {\n event.preventDefault();\n }\n }}\n onKeyDown={context.onItemKeyDown}\n />\n </VisuallyHidden>\n {children}\n </label>\n );\n});\n\ntype RadioGroupBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> & {\n /** Disable the whole group */\n disabled?: boolean;\n /** Mark the group as invalid */\n invalid?: boolean;\n /** Mark the group as required */\n required?: boolean;\n /** Prevent changing the selected value */\n readOnly?: boolean;\n /** Layout orientation of the group */\n orientation?: 'horizontal' | 'vertical';\n /** Name used for the underlying radio inputs (form submission) */\n name?: string;\n children: React.ReactNode;\n};\n\nexport type RadioGroupProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = RadioGroupBaseProps &\n Either<\n // controlled\n {\n /** Handler called when the value changes */\n onChange: (value: TValue) => void;\n /** The current value (controlled) */\n value?: TValue;\n },\n // uncontrolled\n {\n /** The default value (uncontrolled) */\n defaultValue?: TValue;\n }\n >;\n\nexport const RadioGroup = React.forwardRef(function RadioGroup<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {\n children,\n className,\n orientation = 'vertical',\n disabled = false,\n invalid = false,\n required = false,\n readOnly = false,\n name: nameProp,\n value: valueProp,\n defaultValue,\n onChange,\n ...otherProps\n } = props;\n\n const name = useId(nameProp);\n const groupRef = useMergedRef<HTMLDivElement>(ref);\n\n const { values, enabledValues } = React.useMemo(() => {\n const values: TValue[] = [];\n const enabledValues: string[] = [];\n\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) {\n return;\n }\n\n const value = child.props.value;\n values.push(value);\n\n if (!disabled && !child.props.disabled) {\n enabledValues.push(stringifyValue(value));\n }\n });\n\n return { values, enabledValues };\n }, [children, disabled]);\n\n // values are stringified internally (radio inputs are string-based) and mapped back to their typed value on change\n const [selectedValue, setSelectedValue] = useControlled<string | undefined>({\n value: valueProp === undefined ? undefined : stringifyValue(valueProp),\n defaultValue: defaultValue === undefined ? undefined : stringifyValue(defaultValue),\n onChange: onChange && (nextValue => onChange(getRadioItemByValue(values, nextValue as string))),\n });\n\n // roving tabindex: the checked item is the tab stop; if nothing is selected the first enabled item is;\n // if the selected item is disabled the group has no tab stop (matches previous behaviour)\n const selectedExists = selectedValue !== undefined && values.some(value => stringifyValue(value) === selectedValue);\n let tabbableValue: string | undefined;\n\n if (selectedExists) {\n tabbableValue = enabledValues.includes(selectedValue as string) ? selectedValue : undefined;\n } else {\n tabbableValue = enabledValues[0];\n }\n\n const handleItemChange = (itemValue: string) => {\n if (disabled || readOnly || itemValue === selectedValue) {\n return;\n }\n\n setSelectedValue(itemValue);\n };\n\n const handleItemKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const isNext = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n if (!isNext && !isPrevious) {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = enabledValues.indexOf(event.currentTarget.value);\n\n if (disabled || readOnly || currentIndex === -1) {\n return;\n }\n\n const delta = isNext ? 1 : -1;\n const nextValue = enabledValues[(currentIndex + delta + enabledValues.length) % enabledValues.length];\n\n setSelectedValue(nextValue);\n Array.from(groupRef.current?.querySelectorAll<HTMLInputElement>('input[type=\"radio\"]') ?? [])\n .find(input => input.value === nextValue)\n ?.focus();\n };\n\n const context: RadioGroupContextValue = {\n name,\n selectedValue,\n tabbableValue,\n disabled,\n readOnly,\n invalid,\n required,\n onItemChange: handleItemChange,\n onItemKeyDown: handleItemKeyDown,\n };\n\n return (\n <div\n {...otherProps}\n ref={groupRef}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-disabled={disabled || undefined}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n data-taco=\"radio-group\"\n data-disabled={disabled ? 'true' : undefined}\n data-invalid={invalid ? 'true' : undefined}\n data-readonly={readOnly ? 'true' : undefined}\n data-required={required ? 'true' : undefined}\n className={cn(\n 'flex items-start',\n {\n 'flex-wrap gap-x-4': orientation === 'horizontal',\n 'flex-col gap-y-2': orientation === 'vertical',\n },\n className\n )}>\n <RadioGroupContext.Provider value={context}>{children}</RadioGroupContext.Provider>\n </div>\n );\n // forwardRef erases the generic; re-apply it via a cast so `<RadioGroup<T>>` types value/onChange as T.\n // `unknown` is needed because the `Either` union in the props prevents a direct overlap with the exotic type.\n}) as unknown as (<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement) & {\n Item: typeof RadioGroupItem;\n};\n\nRadioGroup.Item = RadioGroupItem;\n"],"names":["React","RadioGroupItem","stringifyValue","VisuallyHidden","RadioGroup","useId","useMergedRef","values","enabledValues","useControlled","getRadioItemByValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAM,oBAAoBA,iBAAM,cAA6C,IAAI;AAEjF,MAAM,iBAAiBA,iBAAM,WAAW,SAASC,gBAAe,OAA4B,KAAkC;AAC1H,QAAM,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,eAAe;AAChE,QAAM,UAAUD,iBAAM,WAAW,iBAAiB;AAElD,MAAI,YAAY,MAAM;AAClB,WAAO;AAAA,EACX;AAEA,QAAM,cAAcE,KAAAA,eAAe,KAAK;AACxC,QAAM,eAAe,QAAQ,YAAY,QAAQ,QAAQ;AACzD,QAAM,UAAU,QAAQ,kBAAkB;AAC1C,QAAM,WAAW,QAAQ,kBAAkB,cAAc,IAAI;AAE7D,SACIF,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,aAAU;AAAA,MACV,iBAAe,WAAW;AAAA,MAC1B,iBAAe,gBAAgB;AAAA,MAC/B,iBAAe,QAAQ,YAAY;AAAA,MACnC,gBAAc,QAAQ,WAAW;AAAA,IAAA;AAAA,mDAChCG,eAAAA,gBAAA,MACGH,iCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG;AAAA,QACA,MAAK;AAAA,QACL,MAAM,QAAQ;AAAA,QACd,OAAO;AAAA,QACP;AAAA,QACA,UAAU;AAAA,QACV,UAAU,QAAQ;AAAA,QAClB;AAAA,QACA,gBAAc,QAAQ,WAAW;AAAA,QACjC,UAAU,MAAM,QAAQ,aAAa,WAAW;AAAA,QAChD,SAAS,CAAA,UAAS;AACd,cAAI,QAAQ,YAAY,cAAc;AAClC,kBAAM,eAAA;AAAA,UACV;AAAA,QACJ;AAAA,QACA,WAAW,QAAQ;AAAA,MAAA;AAAA,IAAA,CAE3B;AAAA,IACC;AAAA,EAAA;AAGb,CAAC;AAkCM,MAAM,aAAaA,iBAAM,WAAW,SAASI,YAChD,OACA,KACF;AACE,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAEJ,QAAM,OAAOC,MAAAA,MAAM,QAAQ;AAC3B,QAAM,WAAWC,aAAAA,aAA6B,GAAG;AAEjD,QAAM,EAAE,QAAQ,cAAA,IAAkBN,iBAAM,QAAQ,MAAM;AAClD,UAAMO,UAAmB,CAAA;AACzB,UAAMC,iBAA0B,CAAA;AAEhCR,qBAAM,SAAS,QAAQ,UAAU,CAAA,UAAS;AACtC,UAAI,CAACA,iBAAM,eAAe,KAAK,GAAG;AAC9B;AAAA,MACJ;AAEA,YAAM,QAAQ,MAAM,MAAM;AAC1BO,cAAO,KAAK,KAAK;AAEjB,UAAI,CAAC,YAAY,CAAC,MAAM,MAAM,UAAU;AACpCC,uBAAc,KAAKN,oBAAe,KAAK,CAAC;AAAA,MAC5C;AAAA,IACJ,CAAC;AAED,WAAO,EAAE,QAAAK,SAAQ,eAAAC,eAAAA;AAAAA,EACrB,GAAG,CAAC,UAAU,QAAQ,CAAC;AAGvB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,4BAAkC;AAAA,IACxE,OAAO,cAAc,SAAY,SAAYP,KAAAA,eAAe,SAAS;AAAA,IACrE,cAAc,iBAAiB,SAAY,SAAYA,KAAAA,eAAe,YAAY;AAAA,IAClF,UAAU,aAAa,CAAA,cAAa,SAASQ,yBAAoB,QAAQ,SAAmB,CAAC;AAAA,EAAA,CAChG;AAID,QAAM,iBAAiB,kBAAkB,UAAa,OAAO,KAAK,CAAA,UAASR,KAAAA,eAAe,KAAK,MAAM,aAAa;AAClH,MAAI;AAEJ,MAAI,gBAAgB;AAChB,oBAAgB,cAAc,SAAS,aAAuB,IAAI,gBAAgB;AAAA,EACtF,OAAO;AACH,oBAAgB,cAAc,CAAC;AAAA,EACnC;AAEA,QAAM,mBAAmB,CAAC,cAAsB;AAC5C,QAAI,YAAY,YAAY,cAAc,eAAe;AACrD;AAAA,IACJ;AAEA,qBAAiB,SAAS;AAAA,EAC9B;AAEA,QAAM,oBAAoB,CAAC,UAAiD;AACxE,UAAM,SAAS,MAAM,QAAQ,eAAe,MAAM,QAAQ;AAC1D,UAAM,aAAa,MAAM,QAAQ,aAAa,MAAM,QAAQ;AAE5D,QAAI,CAAC,UAAU,CAAC,YAAY;AACxB;AAAA,IACJ;AAEA,UAAM,eAAA;AAEN,UAAM,eAAe,cAAc,QAAQ,MAAM,cAAc,KAAK;AAEpE,QAAI,YAAY,YAAY,iBAAiB,IAAI;AAC7C;AAAA,IACJ;AAEA,UAAM,QAAQ,SAAS,IAAI;AAC3B,UAAM,YAAY,eAAe,eAAe,QAAQ,cAAc,UAAU,cAAc,MAAM;AAEpG,qBAAiB,SAAS;AAC1B,UAAM,KAAK,SAAS,SAAS,iBAAmC,qBAAqB,KAAK,CAAA,CAAE,EACvF,KAAK,CAAA,UAAS,MAAM,UAAU,SAAS,GACtC,MAAA;AAAA,EACV;AAEA,QAAM,UAAkC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,EAAA;AAGnB,SACIF,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,MAAK;AAAA,MACL,oBAAkB;AAAA,MAClB,iBAAe,YAAY;AAAA,MAC3B,gBAAc,WAAW;AAAA,MACzB,iBAAe,YAAY;AAAA,MAC3B,iBAAe,YAAY;AAAA,MAC3B,aAAU;AAAA,MACV,iBAAe,WAAW,SAAS;AAAA,MACnC,gBAAc,UAAU,SAAS;AAAA,MACjC,iBAAe,WAAW,SAAS;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC,WAAW;AAAA,QACP;AAAA,QACA;AAAA,UACI,qBAAqB,gBAAgB;AAAA,UACrC,oBAAoB,gBAAgB;AAAA,QAAA;AAAA,QAExC;AAAA,MAAA;AAAA,IACJ;AAAA,mDACC,kBAAkB,UAAlB,EAA2B,OAAO,WAAU,QAAS;AAAA,EAAA;AAKlE,CAAC;AAMD,WAAW,OAAO;;"}
1
+ {"version":3,"file":"RadioGroup.cjs","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '../../hooks/useControlled';\nimport { useId } from '../../hooks/useId';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { Either } from '../../types';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nimport { getRadioItemByValue, stringifyValue } from './util';\n\nimport './RadioGroup.css';\n\n// item\nexport type RadioGroupItemValue = string | number | boolean | null;\nexport type RadioGroupItemProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = Omit<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n 'onChange'\n> & {\n /** Value of the radio button */\n value: TValue;\n /** Disable this radio button */\n disabled?: boolean;\n children?: React.ReactNode;\n};\n\ntype RadioGroupContextValue = {\n name: string;\n selectedValue: string | undefined;\n tabbableValue: string | undefined;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n required: boolean;\n onItemChange: (itemValue: string) => void;\n onItemKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue | null>(null);\n\nconst RadioGroupItem = React.forwardRef(function RadioGroupItem(props: RadioGroupItemProps, ref: React.Ref<HTMLInputElement>) {\n const { value, children, disabled, className, ...otherProps } = props;\n const context = React.useContext(RadioGroupContext);\n\n if (context === null) {\n return null;\n }\n\n const stringValue = stringifyValue(value);\n const itemDisabled = context.disabled || Boolean(disabled);\n const checked = context.selectedValue === stringValue;\n const tabIndex = context.tabbableValue === stringValue ? 0 : -1;\n\n return (\n <label\n {...otherProps}\n className={className}\n data-taco=\"radio-group-item\"\n data-selected={checked || undefined}\n data-disabled={itemDisabled || undefined}\n data-readonly={context.readOnly || undefined}\n data-invalid={context.invalid || undefined}>\n <VisuallyHidden>\n <input\n ref={ref}\n type=\"radio\"\n name={context.name}\n value={stringValue}\n checked={checked}\n disabled={itemDisabled}\n required={context.required}\n tabIndex={tabIndex}\n aria-invalid={context.invalid || undefined}\n onChange={() => context.onItemChange(stringValue)}\n onClick={event => {\n if (context.readOnly || itemDisabled) {\n event.preventDefault();\n }\n }}\n onKeyDown={context.onItemKeyDown}\n />\n </VisuallyHidden>\n {children}\n </label>\n );\n});\n\ntype RadioGroupBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> & {\n /** Disable the whole group */\n disabled?: boolean;\n /** Mark the group as invalid */\n invalid?: boolean;\n /** Mark the group as required */\n required?: boolean;\n /** Prevent changing the selected value */\n readOnly?: boolean;\n /** Layout orientation of the group */\n orientation?: 'horizontal' | 'vertical';\n /** Name used for the underlying radio inputs (form submission) */\n name?: string;\n children: React.ReactNode;\n};\n\nexport type RadioGroupProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = RadioGroupBaseProps &\n Either<\n // controlled\n {\n /** Handler called when the value changes */\n onChange: (value: TValue) => void;\n /** The current value (controlled) */\n value?: TValue;\n },\n // uncontrolled\n {\n /** The default value (uncontrolled) */\n defaultValue?: TValue;\n }\n >;\n\nexport const RadioGroup = React.forwardRef(function RadioGroup<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {\n children,\n className,\n orientation = 'vertical',\n disabled = false,\n invalid = false,\n required = false,\n readOnly = false,\n name: nameProp,\n value: valueProp,\n defaultValue,\n onChange,\n ...otherProps\n } = props;\n\n const name = useId(nameProp);\n const groupRef = useMergedRef<HTMLDivElement>(ref);\n\n const { values, enabledValues } = React.useMemo(() => {\n const values: TValue[] = [];\n const enabledValues: string[] = [];\n\n React.Children.forEach(children, child => {\n if (!React.isValidElement<RadioGroupItemProps<TValue>>(child)) {\n return;\n }\n\n const value = child.props.value;\n values.push(value);\n\n if (!disabled && !child.props.disabled) {\n enabledValues.push(stringifyValue(value));\n }\n });\n\n return { values, enabledValues };\n }, [children, disabled]);\n\n // values are stringified internally (radio inputs are string-based) and mapped back to their typed value on change\n const [selectedValue, setSelectedValue] = useControlled<string | undefined>({\n value: valueProp === undefined ? undefined : stringifyValue(valueProp),\n defaultValue: defaultValue === undefined ? undefined : stringifyValue(defaultValue),\n onChange: onChange && (nextValue => onChange(getRadioItemByValue(values, nextValue as string))),\n });\n\n // roving tabindex: the checked item is the tab stop; if nothing is selected the first enabled item is;\n // if the selected item is disabled the group has no tab stop (matches previous behaviour)\n const selectedExists = selectedValue !== undefined && values.some(value => stringifyValue(value) === selectedValue);\n let tabbableValue: string | undefined;\n\n if (selectedExists) {\n tabbableValue = enabledValues.includes(selectedValue as string) ? selectedValue : undefined;\n } else {\n tabbableValue = enabledValues[0];\n }\n\n const handleItemChange = (itemValue: string) => {\n if (disabled || readOnly || itemValue === selectedValue) {\n return;\n }\n\n setSelectedValue(itemValue);\n };\n\n const handleItemKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const isNext = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n if (!isNext && !isPrevious) {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = enabledValues.indexOf(event.currentTarget.value);\n\n if (disabled || readOnly || currentIndex === -1) {\n return;\n }\n\n const delta = isNext ? 1 : -1;\n const nextValue = enabledValues[(currentIndex + delta + enabledValues.length) % enabledValues.length];\n\n setSelectedValue(nextValue);\n Array.from(groupRef.current?.querySelectorAll<HTMLInputElement>('input[type=\"radio\"]') ?? [])\n .find(input => input.value === nextValue)\n ?.focus();\n };\n\n const context: RadioGroupContextValue = {\n name,\n selectedValue,\n tabbableValue,\n disabled,\n readOnly,\n invalid,\n required,\n onItemChange: handleItemChange,\n onItemKeyDown: handleItemKeyDown,\n };\n\n return (\n <div\n {...otherProps}\n ref={groupRef}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-disabled={disabled || undefined}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n data-taco=\"radio-group\"\n data-disabled={disabled ? 'true' : undefined}\n data-invalid={invalid ? 'true' : undefined}\n data-readonly={readOnly ? 'true' : undefined}\n data-required={required ? 'true' : undefined}\n className={cn(\n 'flex items-start',\n {\n 'flex-wrap gap-x-4': orientation === 'horizontal',\n 'flex-col gap-y-2': orientation === 'vertical',\n },\n className\n )}>\n <RadioGroupContext.Provider value={context}>{children}</RadioGroupContext.Provider>\n </div>\n );\n // forwardRef erases the generic; re-apply it via a cast so `<RadioGroup<T>>` types value/onChange as T.\n // `unknown` is needed because the `Either` union in the props prevents a direct overlap with the exotic type.\n}) as unknown as (<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement) & {\n Item: typeof RadioGroupItem;\n};\n\nRadioGroup.Item = RadioGroupItem;\n"],"names":["React","RadioGroupItem","stringifyValue","VisuallyHidden","RadioGroup","useId","useMergedRef","values","enabledValues","useControlled","getRadioItemByValue"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '../../hooks/useControlled';\nimport { useId } from '../../hooks/useId';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { Either } from '../../types';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nimport { getRadioItemByValue, stringifyValue } from './util';\n\nimport './RadioGroup.css';\n\n// item\nexport type RadioGroupItemValue = string | number | boolean | null;\nexport type RadioGroupItemProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = Omit<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n 'onChange'\n> & {\n /** Value of the radio button */\n value: TValue;\n /** Disable this radio button */\n disabled?: boolean;\n children?: React.ReactNode;\n};\n\ntype RadioGroupContextValue = {\n name: string;\n selectedValue: string | undefined;\n tabbableValue: string | undefined;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n required: boolean;\n onItemChange: (itemValue: string) => void;\n onItemKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue | null>(null);\n\nconst RadioGroupItem = React.forwardRef(function RadioGroupItem(props: RadioGroupItemProps, ref: React.Ref<HTMLInputElement>) {\n const { value, children, disabled, className, ...otherProps } = props;\n const context = React.useContext(RadioGroupContext);\n\n if (context === null) {\n return null;\n }\n\n const stringValue = stringifyValue(value);\n const itemDisabled = context.disabled || Boolean(disabled);\n const checked = context.selectedValue === stringValue;\n const tabIndex = context.tabbableValue === stringValue ? 0 : -1;\n\n return (\n <label\n {...otherProps}\n className={className}\n data-taco=\"radio-group-item\"\n data-selected={checked || undefined}\n data-disabled={itemDisabled || undefined}\n data-readonly={context.readOnly || undefined}\n data-invalid={context.invalid || undefined}>\n <VisuallyHidden>\n <input\n ref={ref}\n type=\"radio\"\n name={context.name}\n value={stringValue}\n checked={checked}\n disabled={itemDisabled}\n required={context.required}\n tabIndex={tabIndex}\n aria-invalid={context.invalid || undefined}\n onChange={() => context.onItemChange(stringValue)}\n onClick={event => {\n if (context.readOnly || itemDisabled) {\n event.preventDefault();\n }\n }}\n onKeyDown={context.onItemKeyDown}\n />\n </VisuallyHidden>\n {children}\n </label>\n );\n});\n\ntype RadioGroupBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> & {\n /** Disable the whole group */\n disabled?: boolean;\n /** Mark the group as invalid */\n invalid?: boolean;\n /** Mark the group as required */\n required?: boolean;\n /** Prevent changing the selected value */\n readOnly?: boolean;\n /** Layout orientation of the group */\n orientation?: 'horizontal' | 'vertical';\n /** Name used for the underlying radio inputs (form submission) */\n name?: string;\n children: React.ReactNode;\n};\n\nexport type RadioGroupProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = RadioGroupBaseProps &\n Either<\n // controlled\n {\n /** Handler called when the value changes */\n onChange: (value: TValue) => void;\n /** The current value (controlled) */\n value?: TValue;\n },\n // uncontrolled\n {\n /** The default value (uncontrolled) */\n defaultValue?: TValue;\n }\n >;\n\nexport const RadioGroup = React.forwardRef(function RadioGroup<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {\n children,\n className,\n orientation = 'vertical',\n disabled = false,\n invalid = false,\n required = false,\n readOnly = false,\n name: nameProp,\n value: valueProp,\n defaultValue,\n onChange,\n ...otherProps\n } = props;\n\n const name = useId(nameProp);\n const groupRef = useMergedRef<HTMLDivElement>(ref);\n\n const { values, enabledValues } = React.useMemo(() => {\n const values: TValue[] = [];\n const enabledValues: string[] = [];\n\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) {\n return;\n }\n\n const value = child.props.value;\n values.push(value);\n\n if (!disabled && !child.props.disabled) {\n enabledValues.push(stringifyValue(value));\n }\n });\n\n return { values, enabledValues };\n }, [children, disabled]);\n\n // values are stringified internally (radio inputs are string-based) and mapped back to their typed value on change\n const [selectedValue, setSelectedValue] = useControlled<string | undefined>({\n value: valueProp === undefined ? undefined : stringifyValue(valueProp),\n defaultValue: defaultValue === undefined ? undefined : stringifyValue(defaultValue),\n onChange: onChange && (nextValue => onChange(getRadioItemByValue(values, nextValue as string))),\n });\n\n // roving tabindex: the checked item is the tab stop; if nothing is selected the first enabled item is;\n // if the selected item is disabled the group has no tab stop (matches previous behaviour)\n const selectedExists = selectedValue !== undefined && values.some(value => stringifyValue(value) === selectedValue);\n let tabbableValue: string | undefined;\n\n if (selectedExists) {\n tabbableValue = enabledValues.includes(selectedValue as string) ? selectedValue : undefined;\n } else {\n tabbableValue = enabledValues[0];\n }\n\n const handleItemChange = (itemValue: string) => {\n if (disabled || readOnly || itemValue === selectedValue) {\n return;\n }\n\n setSelectedValue(itemValue);\n };\n\n const handleItemKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const isNext = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n if (!isNext && !isPrevious) {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = enabledValues.indexOf(event.currentTarget.value);\n\n if (disabled || readOnly || currentIndex === -1) {\n return;\n }\n\n const delta = isNext ? 1 : -1;\n const nextValue = enabledValues[(currentIndex + delta + enabledValues.length) % enabledValues.length];\n\n setSelectedValue(nextValue);\n Array.from(groupRef.current?.querySelectorAll<HTMLInputElement>('input[type=\"radio\"]') ?? [])\n .find(input => input.value === nextValue)\n ?.focus();\n };\n\n const context: RadioGroupContextValue = {\n name,\n selectedValue,\n tabbableValue,\n disabled,\n readOnly,\n invalid,\n required,\n onItemChange: handleItemChange,\n onItemKeyDown: handleItemKeyDown,\n };\n\n return (\n <div\n {...otherProps}\n ref={groupRef}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-disabled={disabled || undefined}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n data-taco=\"radio-group\"\n data-disabled={disabled ? 'true' : undefined}\n data-invalid={invalid ? 'true' : undefined}\n data-readonly={readOnly ? 'true' : undefined}\n data-required={required ? 'true' : undefined}\n className={cn(\n 'flex items-start',\n {\n 'flex-wrap gap-x-4': orientation === 'horizontal',\n 'flex-col gap-y-2': orientation === 'vertical',\n },\n className\n )}>\n <RadioGroupContext.Provider value={context}>{children}</RadioGroupContext.Provider>\n </div>\n );\n // forwardRef erases the generic; re-apply it via a cast so `<RadioGroup<T>>` types value/onChange as T.\n // `unknown` is needed because the `Either` union in the props prevents a direct overlap with the exotic type.\n}) as unknown as (<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement) & {\n Item: typeof RadioGroupItem;\n};\n\nRadioGroup.Item = RadioGroupItem;\n"],"names":["RadioGroupItem","RadioGroup","values","enabledValues"],"mappings":"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"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '../../hooks/useControlled';\nimport { useId } from '../../hooks/useId';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { Either } from '../../types';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\n\nimport { getRadioItemByValue, stringifyValue } from './util';\n\nimport './RadioGroup.css';\n\n// item\nexport type RadioGroupItemValue = string | number | boolean | null;\nexport type RadioGroupItemProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = Omit<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n 'onChange'\n> & {\n /** Value of the radio button */\n value: TValue;\n /** Disable this radio button */\n disabled?: boolean;\n children?: React.ReactNode;\n};\n\ntype RadioGroupContextValue = {\n name: string;\n selectedValue: string | undefined;\n tabbableValue: string | undefined;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n required: boolean;\n onItemChange: (itemValue: string) => void;\n onItemKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue | null>(null);\n\nconst RadioGroupItem = React.forwardRef(function RadioGroupItem(props: RadioGroupItemProps, ref: React.Ref<HTMLInputElement>) {\n const { value, children, disabled, className, ...otherProps } = props;\n const context = React.useContext(RadioGroupContext);\n\n if (context === null) {\n return null;\n }\n\n const stringValue = stringifyValue(value);\n const itemDisabled = context.disabled || Boolean(disabled);\n const checked = context.selectedValue === stringValue;\n const tabIndex = context.tabbableValue === stringValue ? 0 : -1;\n\n return (\n <label\n {...otherProps}\n className={className}\n data-taco=\"radio-group-item\"\n data-selected={checked || undefined}\n data-disabled={itemDisabled || undefined}\n data-readonly={context.readOnly || undefined}\n data-invalid={context.invalid || undefined}>\n <VisuallyHidden>\n <input\n ref={ref}\n type=\"radio\"\n name={context.name}\n value={stringValue}\n checked={checked}\n disabled={itemDisabled}\n required={context.required}\n tabIndex={tabIndex}\n aria-invalid={context.invalid || undefined}\n onChange={() => context.onItemChange(stringValue)}\n onClick={event => {\n if (context.readOnly || itemDisabled) {\n event.preventDefault();\n }\n }}\n onKeyDown={context.onItemKeyDown}\n />\n </VisuallyHidden>\n {children}\n </label>\n );\n});\n\ntype RadioGroupBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> & {\n /** Disable the whole group */\n disabled?: boolean;\n /** Mark the group as invalid */\n invalid?: boolean;\n /** Mark the group as required */\n required?: boolean;\n /** Prevent changing the selected value */\n readOnly?: boolean;\n /** Layout orientation of the group */\n orientation?: 'horizontal' | 'vertical';\n /** Name used for the underlying radio inputs (form submission) */\n name?: string;\n children: React.ReactNode;\n};\n\nexport type RadioGroupProps<TValue extends RadioGroupItemValue = RadioGroupItemValue> = RadioGroupBaseProps &\n Either<\n // controlled\n {\n /** Handler called when the value changes */\n onChange: (value: TValue) => void;\n /** The current value (controlled) */\n value?: TValue;\n },\n // uncontrolled\n {\n /** The default value (uncontrolled) */\n defaultValue?: TValue;\n }\n >;\n\nexport const RadioGroup = React.forwardRef(function RadioGroup<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {\n children,\n className,\n orientation = 'vertical',\n disabled = false,\n invalid = false,\n required = false,\n readOnly = false,\n name: nameProp,\n value: valueProp,\n defaultValue,\n onChange,\n ...otherProps\n } = props;\n\n const name = useId(nameProp);\n const groupRef = useMergedRef<HTMLDivElement>(ref);\n\n const { values, enabledValues } = React.useMemo(() => {\n const values: TValue[] = [];\n const enabledValues: string[] = [];\n\n React.Children.forEach(children, child => {\n if (!React.isValidElement<RadioGroupItemProps<TValue>>(child)) {\n return;\n }\n\n const value = child.props.value;\n values.push(value);\n\n if (!disabled && !child.props.disabled) {\n enabledValues.push(stringifyValue(value));\n }\n });\n\n return { values, enabledValues };\n }, [children, disabled]);\n\n // values are stringified internally (radio inputs are string-based) and mapped back to their typed value on change\n const [selectedValue, setSelectedValue] = useControlled<string | undefined>({\n value: valueProp === undefined ? undefined : stringifyValue(valueProp),\n defaultValue: defaultValue === undefined ? undefined : stringifyValue(defaultValue),\n onChange: onChange && (nextValue => onChange(getRadioItemByValue(values, nextValue as string))),\n });\n\n // roving tabindex: the checked item is the tab stop; if nothing is selected the first enabled item is;\n // if the selected item is disabled the group has no tab stop (matches previous behaviour)\n const selectedExists = selectedValue !== undefined && values.some(value => stringifyValue(value) === selectedValue);\n let tabbableValue: string | undefined;\n\n if (selectedExists) {\n tabbableValue = enabledValues.includes(selectedValue as string) ? selectedValue : undefined;\n } else {\n tabbableValue = enabledValues[0];\n }\n\n const handleItemChange = (itemValue: string) => {\n if (disabled || readOnly || itemValue === selectedValue) {\n return;\n }\n\n setSelectedValue(itemValue);\n };\n\n const handleItemKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const isNext = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const isPrevious = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n\n if (!isNext && !isPrevious) {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = enabledValues.indexOf(event.currentTarget.value);\n\n if (disabled || readOnly || currentIndex === -1) {\n return;\n }\n\n const delta = isNext ? 1 : -1;\n const nextValue = enabledValues[(currentIndex + delta + enabledValues.length) % enabledValues.length];\n\n setSelectedValue(nextValue);\n Array.from(groupRef.current?.querySelectorAll<HTMLInputElement>('input[type=\"radio\"]') ?? [])\n .find(input => input.value === nextValue)\n ?.focus();\n };\n\n const context: RadioGroupContextValue = {\n name,\n selectedValue,\n tabbableValue,\n disabled,\n readOnly,\n invalid,\n required,\n onItemChange: handleItemChange,\n onItemKeyDown: handleItemKeyDown,\n };\n\n return (\n <div\n {...otherProps}\n ref={groupRef}\n role=\"radiogroup\"\n aria-orientation={orientation}\n aria-disabled={disabled || undefined}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n aria-readonly={readOnly || undefined}\n data-taco=\"radio-group\"\n data-disabled={disabled ? 'true' : undefined}\n data-invalid={invalid ? 'true' : undefined}\n data-readonly={readOnly ? 'true' : undefined}\n data-required={required ? 'true' : undefined}\n className={cn(\n 'flex items-start',\n {\n 'flex-wrap gap-x-4': orientation === 'horizontal',\n 'flex-col gap-y-2': orientation === 'vertical',\n },\n className\n )}>\n <RadioGroupContext.Provider value={context}>{children}</RadioGroupContext.Provider>\n </div>\n );\n // forwardRef erases the generic; re-apply it via a cast so `<RadioGroup<T>>` types value/onChange as T.\n // `unknown` is needed because the `Either` union in the props prevents a direct overlap with the exotic type.\n}) as unknown as (<TValue extends RadioGroupItemValue = RadioGroupItemValue>(\n props: RadioGroupProps<TValue> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement) & {\n Item: typeof RadioGroupItem;\n};\n\nRadioGroup.Item = RadioGroupItem;\n"],"names":["RadioGroupItem","RadioGroup","values","enabledValues"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Report.cjs","sources":["../../../src/components/Report/Report.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { fixedForwardRef } from '../../types';\n\nimport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\nimport { useReport } from './useReport';\n\nconst Column: React.FC<ReportColumnProps<unknown>> & {\n <TType = unknown>(_: ReportColumnProps<TType>): null;\n} = () => null;\n\nColumn.displayName = 'Table3Column';\n\nfunction Group(_: ReportGroupProps) {\n return null;\n}\n\nconst BaseReport = fixedForwardRef(function BaseReport<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const report = useReport<TType>(props, ref);\n\n return (\n <Table>\n <Table.Toolbar<TType> table={report} />\n <Table.Grid<TType> data-taco=\"table-report\" table={report} />\n </Table>\n );\n});\n\nexport const Report = fixedForwardRef(function Report<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseReport<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nReport.Column = Column;\nReport.Group = Group;\n\nexport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n"],"names":["fixedForwardRef","BaseReport","useReport","Table","Report"],"mappings":";;;;;;AAQA,MAAM,SAEF,MAAM;AAEV,OAAO,cAAc;AAErB,SAAS,MAAM,GAAqB;AAChC,SAAO;AACX;AAEA,MAAM,aAAaA,MAAAA,gBAAgB,SAASC,YAA4B,OAA2B,KAA2B;AAC1H,QAAM,SAASC,UAAAA,UAAiB,OAAO,GAAG;AAE1C,6CACKC,MAAAA,OAAA,MACG,sBAAA,cAACA,MAAAA,MAAM,SAAN,EAAqB,OAAO,OAAA,CAAQ,GACrC,sBAAA,cAACA,MAAAA,MAAM,MAAN,EAAkB,aAAU,gBAAe,OAAO,QAAQ,CAC/D;AAER,CAAC;AAEM,MAAM,SAASH,MAAAA,gBAAgB,SAASI,QAAwB,OAA2B,KAA2B;AACzH,QAAM,sBAAsB,OAAO,MAAM,QAAQ;AAGjD,QAAM,MAAM,MAAM,QAAQ,MAAM,OAAO,cAAc,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;AAChG,SAAO,sBAAA,cAAC,YAAA,EAAmB,GAAG,OAAO,KAAU,KAAU;AAC7D,CAAC;AAID,OAAO,SAAS;AAChB,OAAO,QAAQ;;"}
1
+ {"version":3,"file":"Report.cjs","sources":["../../../src/components/Report/Report.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { fixedForwardRef } from '../../types';\n\nimport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\nimport { useReport } from './useReport';\n\nconst Column: React.FC<ReportColumnProps<unknown>> & {\n <TType = unknown>(_: ReportColumnProps<TType>): null;\n} = () => null;\n\nColumn.displayName = 'Table3Column';\n\nfunction Group(_: ReportGroupProps) {\n return null;\n}\n\nconst BaseReport = fixedForwardRef(function BaseReport<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const report = useReport<TType>(props, ref);\n\n return (\n <Table>\n <Table.Toolbar<TType> table={report} />\n <Table.Grid<TType> data-taco=\"table-report\" table={report} />\n </Table>\n );\n});\n\nexport const Report = fixedForwardRef(function Report<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseReport<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => React.JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nReport.Column = Column;\nReport.Group = Group;\n\nexport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n"],"names":["fixedForwardRef","BaseReport","useReport","Table","Report"],"mappings":";;;;;;AAQA,MAAM,SAEF,MAAM;AAEV,OAAO,cAAc;AAErB,SAAS,MAAM,GAAqB;AAChC,SAAO;AACX;AAEA,MAAM,aAAaA,MAAAA,gBAAgB,SAASC,YAA4B,OAA2B,KAA2B;AAC1H,QAAM,SAASC,UAAAA,UAAiB,OAAO,GAAG;AAE1C,6CACKC,MAAAA,OAAA,MACG,sBAAA,cAACA,MAAAA,MAAM,SAAN,EAAqB,OAAO,OAAA,CAAQ,GACrC,sBAAA,cAACA,MAAAA,MAAM,MAAN,EAAkB,aAAU,gBAAe,OAAO,QAAQ,CAC/D;AAER,CAAC;AAEM,MAAM,SAASH,MAAAA,gBAAgB,SAASI,QAAwB,OAA2B,KAA2B;AACzH,QAAM,sBAAsB,OAAO,MAAM,QAAQ;AAGjD,QAAM,MAAM,MAAM,QAAQ,MAAM,OAAO,cAAc,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;AAChG,SAAO,sBAAA,cAAC,YAAA,EAAmB,GAAG,OAAO,KAAU,KAAU;AAC7D,CAAC;AAID,OAAO,SAAS;AAChB,OAAO,QAAQ;;"}
@@ -4,7 +4,7 @@ declare const Column: React.FC<ReportColumnProps<unknown>> & {
4
4
  <TType = unknown>(_: ReportColumnProps<TType>): null;
5
5
  };
6
6
  declare function Group(_: ReportGroupProps): null;
7
- export declare const Report: (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => JSX.Element) & {
7
+ export declare const Report: (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => React.JSX.Element) & {
8
8
  Column: typeof Column;
9
9
  Group: typeof Group;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Report.js","sources":["../../../src/components/Report/Report.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { fixedForwardRef } from '../../types';\n\nimport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\nimport { useReport } from './useReport';\n\nconst Column: React.FC<ReportColumnProps<unknown>> & {\n <TType = unknown>(_: ReportColumnProps<TType>): null;\n} = () => null;\n\nColumn.displayName = 'Table3Column';\n\nfunction Group(_: ReportGroupProps) {\n return null;\n}\n\nconst BaseReport = fixedForwardRef(function BaseReport<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const report = useReport<TType>(props, ref);\n\n return (\n <Table>\n <Table.Toolbar<TType> table={report} />\n <Table.Grid<TType> data-taco=\"table-report\" table={report} />\n </Table>\n );\n});\n\nexport const Report = fixedForwardRef(function Report<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseReport<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nReport.Column = Column;\nReport.Group = Group;\n\nexport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n"],"names":["BaseReport","React","Report"],"mappings":";;;;AAQA,MAAM,SAEF,MAAM;AAEV,OAAO,cAAc;AAErB,SAAS,MAAM,GAAqB;AAChC,SAAO;AACX;AAEA,MAAM,aAAa,gBAAgB,SAASA,YAA4B,OAA2B,KAA2B;AAC1H,QAAM,SAAS,UAAiB,OAAO,GAAG;AAE1C,sDACK,OAAA,MACGC,+BAAA,cAAC,MAAM,SAAN,EAAqB,OAAO,OAAA,CAAQ,GACrCA,+BAAA,cAAC,MAAM,MAAN,EAAkB,aAAU,gBAAe,OAAO,QAAQ,CAC/D;AAER,CAAC;AAEM,MAAM,SAAS,gBAAgB,SAASC,QAAwB,OAA2B,KAA2B;AACzH,QAAM,sBAAsB,OAAO,MAAM,QAAQ;AAGjD,QAAM,MAAMD,eAAM,QAAQ,MAAM,OAAO,cAAc,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;AAChG,SAAOA,+BAAA,cAAC,YAAA,EAAmB,GAAG,OAAO,KAAU,KAAU;AAC7D,CAAC;AAID,OAAO,SAAS;AAChB,OAAO,QAAQ;"}
1
+ {"version":3,"file":"Report.js","sources":["../../../src/components/Report/Report.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Table } from '../../primitives/Table/Core/Table';\nimport { fixedForwardRef } from '../../types';\n\nimport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\nimport { useReport } from './useReport';\n\nconst Column: React.FC<ReportColumnProps<unknown>> & {\n <TType = unknown>(_: ReportColumnProps<TType>): null;\n} = () => null;\n\nColumn.displayName = 'Table3Column';\n\nfunction Group(_: ReportGroupProps) {\n return null;\n}\n\nconst BaseReport = fixedForwardRef(function BaseReport<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const report = useReport<TType>(props, ref);\n\n return (\n <Table>\n <Table.Toolbar<TType> table={report} />\n <Table.Grid<TType> data-taco=\"table-report\" table={report} />\n </Table>\n );\n});\n\nexport const Report = fixedForwardRef(function Report<TType = unknown>(props: ReportProps<TType>, ref: React.Ref<ReportRef>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <BaseReport<TType> {...props} key={key} ref={ref} />;\n}) as (<TType = unknown>(props: ReportProps<TType> & React.RefAttributes<ReportRef>) => React.JSX.Element) & {\n Column: typeof Column;\n Group: typeof Group;\n};\nReport.Column = Column;\nReport.Group = Group;\n\nexport type { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';\n"],"names":["BaseReport","React","Report"],"mappings":";;;;AAQA,MAAM,SAEF,MAAM;AAEV,OAAO,cAAc;AAErB,SAAS,MAAM,GAAqB;AAChC,SAAO;AACX;AAEA,MAAM,aAAa,gBAAgB,SAASA,YAA4B,OAA2B,KAA2B;AAC1H,QAAM,SAAS,UAAiB,OAAO,GAAG;AAE1C,sDACK,OAAA,MACGC,+BAAA,cAAC,MAAM,SAAN,EAAqB,OAAO,OAAA,CAAQ,GACrCA,+BAAA,cAAC,MAAM,MAAN,EAAkB,aAAU,gBAAe,OAAO,QAAQ,CAC/D;AAER,CAAC;AAEM,MAAM,SAAS,gBAAgB,SAASC,QAAwB,OAA2B,KAA2B;AACzH,QAAM,sBAAsB,OAAO,MAAM,QAAQ;AAGjD,QAAM,MAAMD,eAAM,QAAQ,MAAM,OAAO,cAAc,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;AAChG,SAAOA,+BAAA,cAAC,YAAA,EAAmB,GAAG,OAAO,KAAU,KAAU;AAC7D,CAAC;AAID,OAAO,SAAS;AAChB,OAAO,QAAQ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput2.cjs","sources":["../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Icon } from '../Icon/Icon';\nimport { Input } from '../Input/Input';\nimport { LegacyIconButton } from '../LegacyComponents/IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype CommonSearchInput2Props = {\n loading?: boolean;\n onChange: (value: string) => void;\n onClear?: () => void;\n settingsContent?: JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'>;\n\ntype BasicSearchInput2Props = {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n showTotal?: never;\n} & CommonSearchInput2Props;\n\ntype ComplexSearchInput2Props = {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n showTotal?: boolean;\n} & CommonSearchInput2Props;\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClear,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n showTotal = true,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind =\n handleClickFindNext !== undefined &&\n handleClickFindPrevious !== undefined &&\n findCurrent !== undefined &&\n findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n containerRef.current &&\n (containerRef.current === event.relatedTarget || containerRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.blur());\n handleChange('');\n onClear?.();\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n event.stopPropagation();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <LegacyIconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"flex h-4 items-center text-gray-700\">\n {loading ? (\n <Spinner className=\"h-4 w-4\" />\n ) : showTotal ? (\n <span className=\"border-r border-black-subtle pr-2\" data-taco=\"search-matches-counter\">{`${\n findCurrent ?? 0\n }/${findTotal ?? 0}`}</span>\n ) : null}\n </span>\n {findCurrent ? (\n <>\n <LegacyIconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <LegacyIconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n '!pl-7 group-focus-within:!w-72 group-focus-within:yt-focus',\n hasFind\n ? {\n '!w-48': !value,\n '!w-72': value,\n }\n : '!w-48',\n {\n '!bg-blue-100 text-blue-900': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const settingsClassname = cn(\n 'absolute left-0 right-0 top-full -mt-0.5 hidden flex-col gap-y-4 rounded-b border border-t-0 border-gray-300 bg-white p-3 !pt-[calc(theme(spacing.3)_+_theme(spacing[0.5]))] shadow focus-within:flex group-focus-within:flex'\n );\n\n return (\n <div\n className={cn('group relative', { 'z-10 [&_[data-taco=input-container]]:z-10': focused })}\n ref={containerRef}\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n style={{ opacity: 0.999 }}>\n {input}\n <div\n // We need to trigger blur when settings got blured as well, because settings is a part of SearchInput2 component\n onBlur={handleBlur}\n className={settingsClassname}\n onClickCapture={() => internalRef.current?.focus()}\n // tab index is important, it lets the element show as a relatedTarget on event handlers\n tabIndex={-1}>\n {settingsContent}\n </div>\n </div>\n );\n }\n\n return input;\n});\n"],"names":["SearchInput2","useMergedRef","useLocalization","useGlobalKeyDown","LegacyIconButton","Shortcut","Spinner","Icon","Input"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput2.cjs","sources":["../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Icon } from '../Icon/Icon';\nimport { Input } from '../Input/Input';\nimport { LegacyIconButton } from '../LegacyComponents/IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype CommonSearchInput2Props = {\n loading?: boolean;\n onChange: (value: string) => void;\n onClear?: () => void;\n settingsContent?: React.JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'>;\n\ntype BasicSearchInput2Props = {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n showTotal?: never;\n} & CommonSearchInput2Props;\n\ntype ComplexSearchInput2Props = {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n showTotal?: boolean;\n} & CommonSearchInput2Props;\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClear,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n showTotal = true,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind =\n handleClickFindNext !== undefined &&\n handleClickFindPrevious !== undefined &&\n findCurrent !== undefined &&\n findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n containerRef.current &&\n (containerRef.current === event.relatedTarget || containerRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.blur());\n handleChange('');\n onClear?.();\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n event.stopPropagation();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <LegacyIconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"flex h-4 items-center text-gray-700\">\n {loading ? (\n <Spinner className=\"h-4 w-4\" />\n ) : showTotal ? (\n <span className=\"border-r border-black-subtle pr-2\" data-taco=\"search-matches-counter\">{`${\n findCurrent ?? 0\n }/${findTotal ?? 0}`}</span>\n ) : null}\n </span>\n {findCurrent ? (\n <>\n <LegacyIconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <LegacyIconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n '!pl-7 group-focus-within:!w-72 group-focus-within:yt-focus',\n hasFind\n ? {\n '!w-48': !value,\n '!w-72': value,\n }\n : '!w-48',\n {\n '!bg-blue-100 text-blue-900': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const settingsClassname = cn(\n 'absolute left-0 right-0 top-full -mt-0.5 hidden flex-col gap-y-4 rounded-b border border-t-0 border-gray-300 bg-white p-3 !pt-[calc(theme(spacing.3)_+_theme(spacing[0.5]))] shadow focus-within:flex group-focus-within:flex'\n );\n\n return (\n <div\n className={cn('group relative', { 'z-10 [&_[data-taco=input-container]]:z-10': focused })}\n ref={containerRef}\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n style={{ opacity: 0.999 }}>\n {input}\n <div\n // We need to trigger blur when settings got blured as well, because settings is a part of SearchInput2 component\n onBlur={handleBlur}\n className={settingsClassname}\n onClickCapture={() => internalRef.current?.focus()}\n // tab index is important, it lets the element show as a relatedTarget on event handlers\n tabIndex={-1}>\n {settingsContent}\n </div>\n </div>\n );\n }\n\n return input;\n});\n"],"names":["SearchInput2","useMergedRef","useLocalization","useGlobalKeyDown","LegacyIconButton","Shortcut","Spinner","Icon","Input"],"mappings":"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"}
@@ -4,7 +4,7 @@ type CommonSearchInput2Props = {
4
4
  loading?: boolean;
5
5
  onChange: (value: string) => void;
6
6
  onClear?: () => void;
7
- settingsContent?: JSX.Element;
7
+ settingsContent?: React.JSX.Element;
8
8
  shortcut?: string | KeyDownHandlerOptions;
9
9
  value?: string;
10
10
  } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'>;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput2.js","sources":["../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Icon } from '../Icon/Icon';\nimport { Input } from '../Input/Input';\nimport { LegacyIconButton } from '../LegacyComponents/IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype CommonSearchInput2Props = {\n loading?: boolean;\n onChange: (value: string) => void;\n onClear?: () => void;\n settingsContent?: JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'>;\n\ntype BasicSearchInput2Props = {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n showTotal?: never;\n} & CommonSearchInput2Props;\n\ntype ComplexSearchInput2Props = {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n showTotal?: boolean;\n} & CommonSearchInput2Props;\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClear,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n showTotal = true,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind =\n handleClickFindNext !== undefined &&\n handleClickFindPrevious !== undefined &&\n findCurrent !== undefined &&\n findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n containerRef.current &&\n (containerRef.current === event.relatedTarget || containerRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.blur());\n handleChange('');\n onClear?.();\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n event.stopPropagation();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <LegacyIconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"flex h-4 items-center text-gray-700\">\n {loading ? (\n <Spinner className=\"h-4 w-4\" />\n ) : showTotal ? (\n <span className=\"border-r border-black-subtle pr-2\" data-taco=\"search-matches-counter\">{`${\n findCurrent ?? 0\n }/${findTotal ?? 0}`}</span>\n ) : null}\n </span>\n {findCurrent ? (\n <>\n <LegacyIconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <LegacyIconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n '!pl-7 group-focus-within:!w-72 group-focus-within:yt-focus',\n hasFind\n ? {\n '!w-48': !value,\n '!w-72': value,\n }\n : '!w-48',\n {\n '!bg-blue-100 text-blue-900': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const settingsClassname = cn(\n 'absolute left-0 right-0 top-full -mt-0.5 hidden flex-col gap-y-4 rounded-b border border-t-0 border-gray-300 bg-white p-3 !pt-[calc(theme(spacing.3)_+_theme(spacing[0.5]))] shadow focus-within:flex group-focus-within:flex'\n );\n\n return (\n <div\n className={cn('group relative', { 'z-10 [&_[data-taco=input-container]]:z-10': focused })}\n ref={containerRef}\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n style={{ opacity: 0.999 }}>\n {input}\n <div\n // We need to trigger blur when settings got blured as well, because settings is a part of SearchInput2 component\n onBlur={handleBlur}\n className={settingsClassname}\n onClickCapture={() => internalRef.current?.focus()}\n // tab index is important, it lets the element show as a relatedTarget on event handlers\n tabIndex={-1}>\n {settingsContent}\n </div>\n </div>\n );\n }\n\n return input;\n});\n"],"names":["React","SearchInput2"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput2.js","sources":["../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Icon } from '../Icon/Icon';\nimport { Input } from '../Input/Input';\nimport { LegacyIconButton } from '../LegacyComponents/IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { Spinner } from '../Spinner/Spinner';\n\ntype CommonSearchInput2Props = {\n loading?: boolean;\n onChange: (value: string) => void;\n onClear?: () => void;\n settingsContent?: React.JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'>;\n\ntype BasicSearchInput2Props = {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n showTotal?: never;\n} & CommonSearchInput2Props;\n\ntype ComplexSearchInput2Props = {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n showTotal?: boolean;\n} & CommonSearchInput2Props;\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClear,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n showTotal = true,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind =\n handleClickFindNext !== undefined &&\n handleClickFindPrevious !== undefined &&\n findCurrent !== undefined &&\n findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n containerRef.current &&\n (containerRef.current === event.relatedTarget || containerRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.blur());\n handleChange('');\n onClear?.();\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n event.stopPropagation();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <LegacyIconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"flex h-4 items-center text-gray-700\">\n {loading ? (\n <Spinner className=\"h-4 w-4\" />\n ) : showTotal ? (\n <span className=\"border-r border-black-subtle pr-2\" data-taco=\"search-matches-counter\">{`${\n findCurrent ?? 0\n }/${findTotal ?? 0}`}</span>\n ) : null}\n </span>\n {findCurrent ? (\n <>\n <LegacyIconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <LegacyIconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black-subtle [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n '!pl-7 group-focus-within:!w-72 group-focus-within:yt-focus',\n hasFind\n ? {\n '!w-48': !value,\n '!w-72': value,\n }\n : '!w-48',\n {\n '!bg-blue-100 text-blue-900': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const settingsClassname = cn(\n 'absolute left-0 right-0 top-full -mt-0.5 hidden flex-col gap-y-4 rounded-b border border-t-0 border-gray-300 bg-white p-3 !pt-[calc(theme(spacing.3)_+_theme(spacing[0.5]))] shadow focus-within:flex group-focus-within:flex'\n );\n\n return (\n <div\n className={cn('group relative', { 'z-10 [&_[data-taco=input-container]]:z-10': focused })}\n ref={containerRef}\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n style={{ opacity: 0.999 }}>\n {input}\n <div\n // We need to trigger blur when settings got blured as well, because settings is a part of SearchInput2 component\n onBlur={handleBlur}\n className={settingsClassname}\n onClickCapture={() => internalRef.current?.focus()}\n // tab index is important, it lets the element show as a relatedTarget on event handlers\n tabIndex={-1}>\n {settingsContent}\n </div>\n </div>\n );\n }\n\n return input;\n});\n"],"names":["React","SearchInput2"],"mappings":";;;;;;;;;;AAwCO,MAAM,eAAeA,eAAM,WAAW,SAASC,cAAa,OAA0B,KAAkC;AAC3H,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV;AAAA,IACA,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AACJ,QAAM,cAAc,aAA+B,GAAG;AACtD,QAAM,eAAeD,eAAM,OAAuB,IAAI;AACtD,QAAM,CAAC,SAAS,UAAU,IAAIA,eAAM,SAAS,KAAK;AAClD,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,WAAW,OAAO;AACxB,QAAM,UACF,wBAAwB,UACxB,4BAA4B,UAC5B,gBAAgB,UAChB,cAAc;AAElB,mBAAiB,UAAU,CAAC,UAAyB;AACjD,QAAI,SAAS,kBAAkB,YAAY,SAAS;AAChD,YAAM,eAAA;AACN,kBAAY,SAAS,MAAA;AAAA,IACzB;AAAA,EACJ,CAAC;AAED,QAAM,aAAa,CAAC,UAA8C;AAC9D,QACI,aAAa,YACZ,aAAa,YAAY,MAAM,iBAAiB,aAAa,SAAS,SAAS,MAAM,aAAa,IACrG;AACE;AAAA,IACJ;AAEA,eAAW,KAAK;AAChB,eAAW,SAAS,KAAK;AAAA,EAC7B;AAEA,QAAM,cAAc,MAAM;AACtB,0BAAsB,MAAM,YAAY,SAAS,KAAA,CAAM;AACvD,iBAAa,EAAE;AACf,cAAA;AAAA,EACJ;AAEA,QAAM,cAAc,CAAC,UAA8C;AAC/D,eAAW,IAAI;AACf,eAAW,UAAU,KAAK;AAAA,EAC9B;AAEA,QAAM,gBAAgB,CAAC,UAAuD;AAC1E,UAAM,YAAY,KAAK;AAEvB,QAAI,MAAM,sBAAsB;AAC5B;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,SAAS;AACvB,YAAM,eAAA;AAEN,UAAI,WAAW,UAAU;AACrB,YAAI,MAAM,UAAU;AAChB,oCAAA;AAAA,QACJ,OAAO;AACH,gCAAA;AAAA,QACJ;AAAA,MACJ;AAEA;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,UAAU;AACxB,kBAAA;AACA,YAAM,gBAAA;AACN;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI;AAEJ,MAAI,CAAC,WAAW,YAAY,CAAC,WAAW,aAAa,SAAS,UAAU;AACpE,QAAI,OAAO;AACP,gBACIA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,cAAY,MAAM,YAAY;AAAA,UAC9B,WAAU;AAAA,UACV,MAAK;AAAA,UACL,aAAa;AAAA,UACb,UAAU;AAAA,UACV,SACI,UACIA,+BAAA,cAAAA,eAAA,UAAA,MACK,MAAM,YAAY,OAAM,KAACA,+BAAA,cAAC,UAAA,EAAS,MAAK,UAAS,CACtD,IAEA,MAAM,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAKtC;AAEA,QAAI,WAAW,UAAU;AACrB,gBACIA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA,cAAC,QAAA,EAAK,WAAU,sCAAA,GACX,UACGA,+BAAA,cAAC,SAAA,EAAQ,WAAU,UAAA,CAAU,IAC7B,YACAA,+BAAA,cAAC,QAAA,EAAK,WAAU,qCAAoC,aAAU,4BAA0B,GACpF,eAAe,CACnB,IAAI,aAAa,CAAC,EAAG,IACrB,IACR,GACC,cACGA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,cAAY,MAAM,YAAY;AAAA,UAC9B,WAAU;AAAA,UACV,MAAK;AAAA,UACL,aAAa;AAAA,UACb,UAAU;AAAA,UACV,SACI,UACIA,+BAAA,cAAAA,eAAA,UAAA,MACK,MAAM,YAAY,cAAa,KAACA,+BAAA,cAAC,UAAA,EAAS,MAAM,EAAE,OAAO,MAAM,KAAK,WAAW,CACpF,IAEA,MAAM,YAAY;AAAA,QAAA;AAAA,MAAA,GAI9BA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,cAAY,MAAM,YAAY;AAAA,UAC9B,WAAU;AAAA,UACV,MAAK;AAAA,UACL,aAAa;AAAA,UACb,UAAU;AAAA,UACV,SACI,UACIA,+BAAA,cAAAA,eAAA,UAAA,MACK,MAAM,YAAY,UAAS,KAACA,+BAAA,cAAC,UAAA,EAAS,MAAK,SAAQ,CACxD,IAEA,MAAM,YAAY;AAAA,QAAA;AAAA,MAAA,CAIlC,IACA,MACH,OACL;AAAA,IAER;AAAA,EACJ,WAAW,YAAY,CAAC,WAAW,CAAC,OAAO;AACvC,cAAUA,+BAAA,cAAC,YAAS,MAAM,UAAU,gBAAgB,MAAM,YAAY,SAAS,MAAA,EAAM,CAAG;AAAA,EAC5F;AAEA,QAAM,YAAY;AAAA,IACd;AAAA,IACA,UACM;AAAA,MACI,SAAS,CAAC;AAAA,MACV,SAAS;AAAA,IAAA,IAEb;AAAA,IACN;AAAA,MACI,8BAA8B;AAAA,IAAA;AAAA,IAElC,MAAM;AAAA,EAAA;AAGV,QAAM,OACFA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,cAAY,MAAM,YAAY;AAAA,MAC9B,WAAU;AAAA,MACV,MAAK;AAAA,MACL,gBAAgB,MAAM,YAAY,SAAS,MAAA;AAAA,IAAM;AAAA,EAAA;AAIzD,QAAM,QACFA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,cAAY,WAAW,YAAY,KAAK,MAAM,YAAY;AAAA,MAC1D;AAAA,MACA,aAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU,CAAA,UAAS,aAAa,MAAM,OAAO,KAAK;AAAA,MAClD,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa,WAAW,eAAe,MAAM,YAAY;AAAA,MACzD,QAAQ;AAAA,MACR;AAAA,MACA,KAAK;AAAA,MACL,OAAO,SAAS;AAAA,IAAA;AAAA,EAAA;AAIxB,MAAI,iBAAiB;AACjB,UAAM,oBAAoB;AAAA,MACtB;AAAA,IAAA;AAGJ,WACIA,+BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,GAAG,kBAAkB,EAAE,6CAA6C,SAAS;AAAA,QACxF,KAAK;AAAA,QAGL,OAAO,EAAE,SAAS,MAAA;AAAA,MAAM;AAAA,MACvB;AAAA,MACDA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEG,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,gBAAgB,MAAM,YAAY,SAAS,MAAA;AAAA,UAE3C,UAAU;AAAA,QAAA;AAAA,QACT;AAAA,MAAA;AAAA,IACL;AAAA,EAGZ;AAEA,SAAO;AACX,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.cjs","sources":["../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import type { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { createCustomEvent } from '../../utils/input';\nimport type { ListboxProps } from '../Listbox/Listbox';\nimport type { ScrollableListItemValue } from '../Listbox/ScrollableList';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { useLocalization } from '../Provider/Localization';\n\nimport type { SelectProps } from './Select';\n\ntype InternalButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\ntype InternalListboxProps = ListboxProps & { ref: React.ForwardedRef<HTMLInputElement> };\ntype InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.ForwardedRef<HTMLInputElement> };\n\ntype useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {\n button: InternalButtonProps;\n listbox: InternalListboxProps;\n input: InternalInputProps;\n popover: Pick<PopoverPrimitive.Root.Props, 'onOpenChange' | 'open'>;\n text: string | JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onBlur,\n onClick: _1,\n onChange,\n readOnly,\n tabIndex,\n value,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const flattenedData = useFlattenedData(data);\n const listboxInputRef = useMergedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${nanoid()}`, [nativeId]);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (value === undefined) {\n if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {\n setInputValueByRef(inputRef.current, defaultValue);\n } else if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0]?.value);\n }\n } else if (!multiselect && !findByValue(flattenedData, value)) {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0]?.value);\n }\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.key) {\n case 'Escape': {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(listboxInputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case 'Tab':\n case 'Enter': {\n if (event.key !== 'Tab') {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n if (onBlur) {\n onBlur(createCustomEvent('blur') as unknown as React.FocusEvent<HTMLElement, Element>);\n }\n }\n };\n\n let text: string | JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(flattenedData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(flattenedData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, '-mt-px mr-1'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(flattenedData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (readOnly) {\n event.preventDefault();\n }\n };\n\n // select the value text if the select is readonly\n const handleButtonFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n };\n\n const button: InternalButtonProps = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n 'aria-readonly': readOnly ? 'true' : undefined,\n disabled: disabled,\n id: buttonId,\n onClick: handleButtonClick,\n onFocus: handleButtonFocus,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n tabIndex,\n type: 'button',\n };\n\n const listbox: InternalListboxProps = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onBlur,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(inputRef.current, event.target.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: listboxInputRef,\n value,\n };\n\n const input: InternalInputProps = {\n onChange: handleInputChange,\n ref: inputRef,\n value: String(value ?? ''),\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: setOpen,\n },\n text,\n more,\n };\n};\n"],"names":["useLocalization","useFlattenedData","useMergedRef","React","nanoid","findByValue","setInputValueByRef","createCustomEvent","sanitizeItem","i","value","input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2BO,MAAM,YAAY,CACrB;AAAA,EACI,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,OAAO,CAAA;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,GACA,QACY;AACZ,QAAM,EAAE,MAAA,IAAUA,6BAAA;AAClB,QAAM,gBAAgBC,KAAAA,iBAAiB,IAAI;AAC3C,QAAM,kBAAkBC,aAAAA,aAA+B,GAAG;AAC1D,QAAM,CAAC,MAAM,OAAO,IAAIC,iBAAM,SAAS,KAAK;AAC5C,QAAM,KAAKA,iBAAM,QAAQ,MAAM,YAAY,UAAUC,cAAA,CAAQ,IAAI,CAAC,QAAQ,CAAC;AAC3E,QAAM,WAAWD,iBAAM,OAAyB,IAAI;AACpD,QAAM,WAAW,GAAG,EAAE;AAEtB,QAAM,CAAC,WAAW,YAAY,IAAIA,iBAAM,SAA8C,KAAK;AAE3FA,mBAAM,UAAU,MAAM;AAClB,iBAAa,KAAK;AAAA,EACtB,GAAG,CAAC,IAAI,CAAC;AAETA,mBAAM,UAAU,MAAM;AAClB,QAAI,UAAU,QAAW;AACrB,UAAI,iBAAiB,UAAaE,KAAAA,YAAY,eAAe,YAAY,GAAG;AACxEC,gCAAmB,SAAS,SAAS,YAAY;AAAA,MACrD,WAAW,eAAe,QAAW;AACjCA,gCAAmB,SAAS,SAAS,UAAU;AAAA,MACnD,WAAW,KAAK,SAAS,GAAG;AACxBA,aAAAA,mBAAmB,SAAS,SAAS,KAAK,CAAC,GAAG,KAAK;AAAA,MACvD;AAAA,IACJ,WAAW,CAAC,eAAe,CAACD,KAAAA,YAAY,eAAe,KAAK,GAAG;AAC3D,UAAI,eAAe,QAAW;AAC1BC,gCAAmB,SAAS,SAAS,UAAU;AAAA,MACnD,WAAW,KAAK,SAAS,GAAG;AACxBA,aAAAA,mBAAmB,SAAS,SAAS,KAAK,CAAC,GAAG,KAAK;AAAA,MACvD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAA,CAAE;AAGL,QAAM,sBAAsB,CAAC,UAAwD;AACjF,QAAI,MAAM,QAAQ,aAAa,MAAM,QAAQ,aAAa;AACtD,YAAM,eAAA;AACN,cAAQ,IAAI;AAAA,IAChB;AAAA,EACJ;AAEA,QAAM,uBAAuB,CAAC,UAAkD;AAC5E,YAAQ,MAAM,KAAA;AAAA,MACV,KAAK,UAAU;AACX,cAAM,eAAA;AACN,YAAI,cAAc,QAAW;AACzBA,kCAAmB,gBAAgB,SAAS,SAAS;AAAA,QACzD;AAEA,gBAAQ,KAAK;AACb;AAAA,MACJ;AAAA,MAEA,KAAK;AAAA,MACL,KAAK,SAAS;AACV,YAAI,MAAM,QAAQ,OAAO;AACrB,gBAAM,eAAA;AAAA,QACV;AACA,gBAAQ,KAAK;AACb;AAAA,MACJ;AAAA,IAEA;AAGJ,QAAI,WAAW,WAAW;AACtB,iBAAW,UAAU,KAAK;AAAA,IAC9B;AAAA,EACJ;AAEA,QAAM,qBAAqB,CAAC,UAAiD;AACzE,UAAM,eAAA;AACN,QAAI,CAAC,aAAa;AACd,cAAQ,KAAK;AACb,UAAI,QAAQ;AACR,eAAOC,MAAAA,kBAAkB,MAAM,CAAsD;AAAA,MACzF;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAA6B;AACjC,MAAI,OAAO;AAEX,MAAI,UAAU,QAAW;AACrB,QAAI,aAAa;AACb,YAAM,iBAAiB,OAAO,SAAA,EAAW,MAAM,GAAG,KAAK,CAAA;AAEvD,UAAI,eAAe,WAAW,cAAc,OAAO,UAAQ,CAAC,KAAK,QAAQ,EAAE,QAAQ;AAC/E,eAAO,MAAM,OAAO;AAAA,MACxB,OAAO;AACH,eAAOF,KAAAA,YAAY,eAAe,eAAe,CAAC,CAAC,GAAG,QAAQ;AAC9D,eAAO,eAAe,SAAS,IAAI,eAAe,SAAS,IAAI;AAAA,MACnE;AAAA,IACJ,OAAO;AACH,YAAM,OAAOA,KAAAA,YAAY,eAAe,KAAK;AAE7C,UAAI,MAAM;AACN,eAAO,KAAK,OACRF,iCAAA,cAAAA,iBAAA,UAAA,MACKA,iBAAM,aAAa,KAAK,MAAM;AAAA,UAC3B,WAAW,GAAG,KAAK,KAAK,MAAM,WAAW,aAAa;AAAA,QAAA,CACzD,GACA,KAAK,IACV,IAEA,KAAK;AAAA,MAEb;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,oBAAoB,CAAC,UAAqD;AAC5E,UAAM,QAAA;AAEN,QAAI,UAAU;AACV,YAAM,OAAOE,KAAAA,YAAY,eAAe,MAAM,OAAO,KAAK;AACzD,YAAc,SAASG,KAAAA,aAAa,IAAI;AAEzC,YAAM,UAAU,MAAM,MAAM,MAAM,GAAG,KAAK,CAAA;AAE1C,UAAI,QAAQ,SAAS,GAAG;AAEpB,gBAAQ,IAAA;AAER,YAAI;AAEH,cAAc,OAAO,UAAU,QAAQ,IAAI,CAAA,MAAK;AAC7C,qBAAW,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI;AAChD,iBAAOA,KAAAA,aAAa,cAAc,KAAK,CAAAC,OAAKA,GAAE,SAAS,QAAQ,CAAC;AAAA,QACpE,CAAC;AAAA,MACL;AAEA,eAAS,KAAK;AAAA,IAClB;AAAA,EACJ;AAEA,QAAM,oBAAoB,CAAC,UAA+C;AACtE,QAAI,UAAU;AACV,YAAM,eAAA;AAAA,IACV;AAAA,EACJ;AAGA,QAAM,oBAAoB,CAAC,UAA+C;AACtE,QAAI,UAAU;AACV,YAAMC,SAAQ,MAAM,cAAc,cAAc,cAAc;AAE9D,UAAIA,QAAO;AACP,eAAO,aAAA,GAAgB,oBAAoBA,MAAK;AAAA,MACpD;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,SAA8B;AAAA,IAChC,iBAAiB;AAAA,IACjB,cAAc,YAAY,GAAG,SAAS,IAAI,IAAI,KAAK;AAAA,IACnD,mBAAmB,iBAAiB,GAAG,cAAc,IAAI,QAAQ,KAAK;AAAA,IACtE,iBAAiB,WAAW,SAAS;AAAA,IACrC;AAAA,IACA,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW,CAAC,YAAY,CAAC,WAAW,sBAAsB;AAAA,IAC1D;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,QAAM,UAAgC;AAAA,IAClC,GAAG;AAAA,IACH,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU,CAAA,UAAS;AACfJ,WAAAA,mBAAmB,SAAS,SAAS,MAAM,OAAO,KAAK;AAAA,IAC3D;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,IACL;AAAA,EAAA;AAGJ,QAAMK,UAA4B;AAAA,IAC9B,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO,OAAO,SAAS,EAAE;AAAA,EAAA;AAG7B,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IAAA,OACAA;AAAAA,IACA,SAAS;AAAA,MACL;AAAA,MACA,cAAc;AAAA,IAAA;AAAA,IAElB;AAAA,IACA;AAAA,EAAA;AAER;;"}
1
+ {"version":3,"file":"useSelect.cjs","sources":["../../../src/components/Select/useSelect.tsx"],"sourcesContent":["import type { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { createCustomEvent } from '../../utils/input';\nimport type { ListboxProps } from '../Listbox/Listbox';\nimport type { ScrollableListItemValue } from '../Listbox/ScrollableList';\nimport { setInputValueByRef, findByValue, useFlattenedData, sanitizeItem } from '../Listbox/util';\nimport { useLocalization } from '../Provider/Localization';\n\nimport type { SelectProps } from './Select';\n\ntype InternalButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\ntype InternalListboxProps = ListboxProps & { ref: React.ForwardedRef<HTMLInputElement> };\ntype InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & { ref: React.ForwardedRef<HTMLInputElement> };\n\ntype useSelect = Omit<React.HtmlHTMLAttributes<HTMLDivElement>, 'popover'> & {\n button: InternalButtonProps;\n listbox: InternalListboxProps;\n input: InternalInputProps;\n popover: Pick<PopoverPrimitive.Root.Props, 'onOpenChange' | 'open'>;\n text: string | React.JSX.Element;\n more?: number;\n};\n\nexport const useSelect = (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n multiselect,\n onBlur,\n onClick: _1,\n onChange,\n readOnly,\n tabIndex,\n value,\n ...otherProps\n }: SelectProps,\n ref: React.Ref<HTMLInputElement>\n): useSelect => {\n const { texts } = useLocalization();\n const flattenedData = useFlattenedData(data);\n const listboxInputRef = useMergedRef<HTMLInputElement>(ref);\n const [open, setOpen] = React.useState(false);\n const id = React.useMemo(() => nativeId || `select_${nanoid()}`, [nativeId]);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const buttonId = `${id}-button`;\n // support 'escape' resetting to the value that was set when the listbox opened\n const [lastValue, setLastValue] = React.useState<ScrollableListItemValue | undefined>(value);\n\n React.useEffect(() => {\n setLastValue(value);\n }, [open]);\n\n React.useEffect(() => {\n if (value === undefined) {\n if (defaultValue !== undefined && findByValue(flattenedData, defaultValue)) {\n setInputValueByRef(inputRef.current, defaultValue);\n } else if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0]?.value);\n }\n } else if (!multiselect && !findByValue(flattenedData, value)) {\n if (emptyValue !== undefined) {\n setInputValueByRef(inputRef.current, emptyValue);\n } else if (data.length > 0) {\n setInputValueByRef(inputRef.current, data[0]?.value);\n }\n }\n }, []);\n\n // event handlers\n const handleButtonKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n setOpen(true);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n switch (event.key) {\n case 'Escape': {\n event.preventDefault();\n if (lastValue !== undefined) {\n setInputValueByRef(listboxInputRef.current, lastValue);\n }\n\n setOpen(false);\n break;\n }\n\n case 'Tab':\n case 'Enter': {\n if (event.key !== 'Tab') {\n event.preventDefault();\n }\n setOpen(false);\n break;\n }\n\n default:\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n event.preventDefault();\n if (!multiselect) {\n setOpen(false);\n if (onBlur) {\n onBlur(createCustomEvent('blur') as unknown as React.FocusEvent<HTMLElement, Element>);\n }\n }\n };\n\n let text: string | React.JSX.Element = '';\n let more = 0;\n\n if (value !== undefined) {\n if (multiselect) {\n const selectedValues = value?.toString().split(',') || [];\n\n if (selectedValues.length === flattenedData.filter(item => !item.disabled).length) {\n text = texts.select.allOptionsSelected;\n } else {\n text = findByValue(flattenedData, selectedValues[0])?.text ?? '';\n more = selectedValues.length > 1 ? selectedValues.length - 1 : 0;\n }\n } else {\n const item = findByValue(flattenedData, value);\n\n if (item) {\n text = item.icon ? (\n <>\n {React.cloneElement(item.icon, {\n className: cn(item.icon.props.className, '-mt-px mr-1'),\n })}\n {item.text}\n </>\n ) : (\n item.text\n );\n }\n }\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(flattenedData, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(flattenedData.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (readOnly) {\n event.preventDefault();\n }\n };\n\n // select the value text if the select is readonly\n const handleButtonFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n };\n\n const button: InternalButtonProps = {\n 'aria-haspopup': 'listbox' as const,\n 'aria-label': ariaLabel ? `${ariaLabel} ${text}` : undefined,\n 'aria-labelledby': ariaLabelledBy ? `${ariaLabelledBy} ${buttonId}` : undefined,\n 'aria-readonly': readOnly ? 'true' : undefined,\n disabled: disabled,\n id: buttonId,\n onClick: handleButtonClick,\n onFocus: handleButtonFocus,\n onKeyDown: !disabled && !readOnly ? handleButtonKeyDown : undefined,\n tabIndex,\n type: 'button',\n };\n\n const listbox: InternalListboxProps = {\n ...otherProps,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n data,\n disabled,\n emptyValue,\n onBlur,\n onClick: handleListboxClick,\n onChange: event => {\n setInputValueByRef(inputRef.current, event.target.value);\n },\n onKeyDown: handleListboxKeyDown,\n ref: listboxInputRef,\n value,\n };\n\n const input: InternalInputProps = {\n onChange: handleInputChange,\n ref: inputRef,\n value: String(value ?? ''),\n };\n\n return {\n button,\n listbox,\n input,\n popover: {\n open,\n onOpenChange: setOpen,\n },\n text,\n more,\n };\n};\n"],"names":["useLocalization","useFlattenedData","useMergedRef","React","nanoid","findByValue","setInputValueByRef","createCustomEvent","sanitizeItem","i","value","input"],"mappings":"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"}
@@ -9,12 +9,12 @@ type InternalListboxProps = ListboxProps & {
9
9
  type InternalInputProps = React.InputHTMLAttributes<HTMLInputElement> & {
10
10
  ref: React.ForwardedRef<HTMLInputElement>;
11
11
  };
12
- type useSelect = React.HtmlHTMLAttributes<HTMLDivElement> & {
12
+ type useSelect = Omit<React.HtmlHTMLAttributes<HTMLDivElement>, 'popover'> & {
13
13
  button: InternalButtonProps;
14
14
  listbox: InternalListboxProps;
15
15
  input: InternalInputProps;
16
16
  popover: Pick<PopoverPrimitive.Root.Props, 'onOpenChange' | 'open'>;
17
- text: string | JSX.Element;
17
+ text: string | React.JSX.Element;
18
18
  more?: number;
19
19
  };
20
20
  export declare const useSelect: ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, data, defaultValue, disabled, emptyValue, id: nativeId, multiselect, onBlur, onClick: _1, onChange, readOnly, tabIndex, value, ...otherProps }: SelectProps, ref: React.Ref<HTMLInputElement>) => useSelect;