@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":"useSelect.js","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":["i","value"],"mappings":"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"}
1
+ {"version":3,"file":"useSelect.js","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":["i","value"],"mappings":"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"}
@@ -134,9 +134,7 @@ function _Select2Inner(props, ref) {
134
134
  if (!queryTimeoutRef.current) {
135
135
  return;
136
136
  }
137
- const matchedValueIndex = visibleChildren.findIndex(
138
- (child) => !useChildren.isGroup(child) && utilities.filterOption(child, queryTimeoutRef.current)
139
- );
137
+ const matchedValueIndex = flattenedChildren.findIndex((child) => utilities.filterOption(child, queryTimeoutRef.current));
140
138
  if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== void 0) {
141
139
  setValue(selectOptions[matchedValueIndex]);
142
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select2.cjs","sources":["../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport type { CollectionRef } from '../../primitives/Collection/Collection';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport type { FontSize } from '../../types';\nimport { fixedForwardRef, FontSizes } from '../../types';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { debounce } from '../../utils/debounce';\nimport { getNextFocussableElement, isElementInsideTable3OrReport } from '../../utils/dom';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { LegacyButton } from '../LegacyComponents/Button/Button';\nimport { useLocalization } from '../Provider/Localization';\nimport { Spinner } from '../Spinner/Spinner';\n\nimport { Collection } from './components/Collection';\nimport { Select2Context } from './components/Context';\nimport { Create } from './components/Create';\nimport type { Select2GroupProps } from './components/Group';\nimport { Group } from './components/Group';\nimport type { Select2OptionProps } from './components/Option';\nimport { Option } from './components/Option';\nimport { Search } from './components/Search';\nimport type { Select2TitleProps } from './components/Title';\nimport { Title } from './components/Title';\nimport { Trigger } from './components/Trigger';\nimport { isGroup, useChildren } from './hooks/useChildren';\nimport type {\n Select2Child,\n Select2Children,\n Select2CreateHandler,\n Select2CreateDialogRenderer,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { createCollectionClassName, filterOption, FONT_SIZE_CLASSNAME } from './utilities';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props<T extends Select2Value = Select2Value> = Omit<\n React.HTMLAttributes<HTMLButtonElement>,\n 'children' | 'defaultValue' | 'onChange' | 'value'\n> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: T;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Extract<T, Select2OptionValue>;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 is loading the data **/\n loading?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: T) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: T;\n /** Create dialog component, if specified, then create button will become always visible in the bottom of options dropdown,\n * when clicked, it will open create dialog and wait for 'onCreate' handler to be triggered from the dialog */\n createDialog?: Select2CreateDialogRenderer;\n /** Create button text */\n createTriggerText?: string;\n};\n\n// generic overload is the public face; the wide implementation signature lets the internals\n// (which all operate on Select2Value) consume the props without assertions\nfunction _Select2Inner<T extends Select2Value = Select2Value>(\n props: Select2Props<T>,\n ref: React.Ref<HTMLButtonElement>\n): JSX.Element;\nfunction _Select2Inner(props: Select2Props, ref: React.Ref<HTMLButtonElement>): JSX.Element {\n const {\n children: initChildren,\n defaultValue,\n disabled = false,\n emptyValue = undefined,\n fontSize,\n highlighted = false,\n invalid = false,\n loading,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n placeholder,\n readOnly = false,\n tags = false,\n value: prop,\n createDialog,\n createTriggerText,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n // flatten nested arrays from maps and strip conditionals (false/null) so the internals see a flat list\n const children = React.Children.toArray(initChildren).filter((child): child is Select2Child =>\n React.isValidElement(child)\n );\n\n return emptyOption ? [emptyOption, ...children] : children;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControlled<Select2Value>({\n // uncontrolled\n defaultValue,\n // controlled\n onChange,\n value: prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(\n multiple,\n // the state can genuinely become undefined (form reset), but widening `useControlled` to\n // `Select2Value | undefined` would require onChange to accept `undefined` — a breaking API change\n _setValue as React.Dispatch<React.SetStateAction<Select2Value | undefined>>\n );\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n createDialog,\n createTriggerText,\n };\n\n const hasInlineCreation = onCreate && !createDialog;\n const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;\n const visibleChildren = searchQuery === '' ? initialChildren : filteredChildren;\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.props.value)\n : filteredChildren.flatMap(child => {\n if (isGroup(child)) {\n return Array.isArray(child.props.children)\n ? child.props.children.map(subChild => subChild.props.value)\n : [];\n }\n return child.props.value;\n });\n\n // support typeahead functionality when search isn't available\n const queryTimeoutRef = React.useRef('');\n\n const typeahead = debounce(function () {\n if (!queryTimeoutRef.current) {\n return;\n }\n\n const matchedValueIndex = visibleChildren.findIndex(\n child => !isGroup(child) && filterOption(child, queryTimeoutRef.current)\n );\n\n if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== undefined) {\n setValue(selectOptions[matchedValueIndex]);\n }\n\n queryTimeoutRef.current = '';\n }, 200);\n\n const setValueIfMatched = (query: string) => {\n queryTimeoutRef.current = queryTimeoutRef.current + query;\n typeahead();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (isElementInsideTable3OrReport(event.currentTarget) && isAriaDirectionKey(event)) {\n return;\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n\n if (!hasSearch) {\n setValueIfMatched(event.key);\n }\n }\n\n // Collect the first character when opening with keyboard (when user starts typing while focused on a trigger)\n if (hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setSearchQuery(prev => prev + event.key);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event));\n };\n\n const shouldFocusNextRef = React.useRef<number | undefined>(undefined);\n\n const handleHorizontalNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (isElementInsideTable3OrReport(internalRef.current)) {\n const isTriggeredFromPopover = event.target instanceof Node && event.currentTarget.contains?.(event.target);\n\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowRight') && isTriggeredFromPopover) {\n event.preventDefault(); // prevents scrolling horizontally in the table on arrow left/right.\n event.stopPropagation();\n\n shouldFocusNextRef.current = event.key === 'ArrowLeft' ? -1 : +1;\n setOpen(false);\n }\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n return;\n }\n\n if (event.key === 'Tab') {\n shouldFocusNextRef.current = event.shiftKey ? -1 : +1;\n setOpen(false);\n return;\n }\n\n // Handle Escape key to close the select without closing the parent dialog\n if (!hasSearch && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n return;\n }\n\n // support typeahead to set the value by typing its text\n if (!hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setValueIfMatched(event.key);\n return;\n }\n };\n\n const handleOpenChange = (open: boolean, details: { reason: string; event: Event }) => {\n if (!open && (details.reason === 'outside-press' || details.reason === 'focus-out')) {\n otherProps.onBlur?.(details.event as unknown as React.FocusEvent<HTMLButtonElement>);\n }\n setOpen(open);\n };\n\n const handleFinalFocus = (closeType: 'mouse' | 'touch' | 'keyboard' | 'pen' | '') => {\n if (shouldFocusNextRef.current !== undefined) {\n const el = getNextFocussableElement(internalRef.current, shouldFocusNextRef.current);\n shouldFocusNextRef.current = undefined;\n return el || false;\n }\n if (closeType === 'mouse' || closeType === 'touch') {\n // Don't steal focus — the clicked element receives it naturally.\n return false;\n }\n return true;\n };\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n }\n return texts.select2.selectAll;\n }\n\n if (areAllSelected) {\n return texts.select2.deselectAllResults;\n }\n\n return texts.select2.selectAllResults;\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue));\n setValue(nextValue);\n }\n };\n\n const className = cn(\n 'rounded border border-gray-300 bg-white py-1.5 shadow-md',\n {\n 'focus-within:yt-focus': !hasSearch,\n 'outline-none': hasSearch,\n },\n createCollectionClassName()\n );\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger\n render={\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n aria-multiselectable={multiple}\n // oxlint-disable-next-line taco/data-taco-kebab-case -- established public selector API; renaming it is a breaking change\n data-taco=\"Select2\"\n emptyValue={emptyValue}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={internalRef}>\n {flattenedChildren}\n </Trigger>\n }\n />\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align=\"start\"\n sideOffset={4}\n collisionAvoidance={{\n side: 'flip',\n fallbackAxisSide: 'none',\n }}>\n <PopoverPrimitive.Popup\n className={className}\n style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}\n initialFocus={hasSearch ? searchRef : true}\n finalFocus={handleFinalFocus}\n onKeyDown={handleHorizontalNavigation}\n tabIndex={-1}>\n {hasSearch ? (\n <>\n <Search\n placeholder={hasInlineCreation ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <LegacyButton\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </LegacyButton>\n <div className=\"mx-3 rounded border-t border-gray-200\" />\n </>\n )}\n </>\n ) : null}\n {loading ? (\n <span\n className={cn(\n 'flex items-center italic text-gray-700',\n fontSize && FONT_SIZE_CLASSNAME[fontSize]\n )}>\n <span>\n <Spinner\n delay={0}\n className={cn('ml-3 mr-2 mt-1.5 h-5 w-5', {\n '!mt-1 !h-3.5 !w-3.5': fontSize === FontSizes.small,\n '!h-4 !w-4': fontSize === FontSizes.medium,\n '!h-5 !w-5': fontSize === FontSizes.large,\n })}\n />\n </span>\n <span>{texts.listbox.loading}</span>\n </span>\n ) : flattenedChildren.length <= 0 && !onCreate ? (\n <div className=\"-mt-0.5 flex h-8 items-center px-2 text-gray-700\" role=\"presentation\">\n {texts.listbox.empty}\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5 focus-visible:outline-none\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n value={value}>\n <Collection>{visibleChildren}</Collection>\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}\n\nexport const Select2 = Object.assign(fixedForwardRef(_Select2Inner), {\n Option,\n Group,\n Title,\n displayName: 'Select2',\n});\n\ntype ControlledHiddenFieldProps = {\n emptyValue: ListboxPrimitive.Listbox2OptionValue | undefined;\n multiple: boolean;\n name: string | undefined;\n options: Select2OptionValue[];\n parentRef: React.RefObject<HTMLButtonElement>;\n setValue: (nextValue: Select2Value | undefined) => void;\n value: Select2Value | undefined;\n};\n\nconst ControlledHiddenField = (props: ControlledHiddenFieldProps) => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} tabIndex={-1} value={bubbleValue}>\n {emptyValue === undefined ? null : <option value={emptyValue === null ? '' : String(emptyValue)} />}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\n\nexport type {\n Select2Texts,\n Select2Child,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n Select2Children,\n};\n"],"names":["Option","useMergedRef","useLocalization","useBoundingClientRectListener","useControlled","ListboxPrimitive.createListboxValueSetter","useIsHoverStatePaused","useChildren","isGroup","debounce","filterOption","isElementInsideTable3OrReport","isAriaDirectionKey","createCustomKeyboardEvent","open","getNextFocussableElement","createCollectionClassName","Select2Context","PopoverPrimitive","Trigger","Search","LegacyButton","FONT_SIZE_CLASSNAME","Spinner","FontSizes","ListboxPrimitive.Root","Collection","Create","fixedForwardRef","Group","Title","useIsFormControl","BubbleSelect"],"mappings":"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"}
1
+ {"version":3,"file":"Select2.cjs","sources":["../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport type { CollectionRef } from '../../primitives/Collection/Collection';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport type { FontSize } from '../../types';\nimport { fixedForwardRef, FontSizes } from '../../types';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { debounce } from '../../utils/debounce';\nimport { getNextFocussableElement, isElementInsideTable3OrReport } from '../../utils/dom';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { LegacyButton } from '../LegacyComponents/Button/Button';\nimport { useLocalization } from '../Provider/Localization';\nimport { Spinner } from '../Spinner/Spinner';\n\nimport { Collection } from './components/Collection';\nimport { Select2Context } from './components/Context';\nimport { Create } from './components/Create';\nimport type { Select2GroupProps } from './components/Group';\nimport { Group } from './components/Group';\nimport type { Select2OptionProps } from './components/Option';\nimport { Option } from './components/Option';\nimport { Search } from './components/Search';\nimport type { Select2TitleProps } from './components/Title';\nimport { Title } from './components/Title';\nimport { Trigger } from './components/Trigger';\nimport { isGroup, useChildren } from './hooks/useChildren';\nimport type {\n Select2Child,\n Select2Children,\n Select2CreateHandler,\n Select2CreateDialogRenderer,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { createCollectionClassName, filterOption, FONT_SIZE_CLASSNAME } from './utilities';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props<T extends Select2Value = Select2Value> = Omit<\n React.HTMLAttributes<HTMLButtonElement>,\n 'children' | 'defaultValue' | 'onChange' | 'value'\n> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: T;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Extract<T, Select2OptionValue>;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 is loading the data **/\n loading?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: T) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: T;\n /** Create dialog component, if specified, then create button will become always visible in the bottom of options dropdown,\n * when clicked, it will open create dialog and wait for 'onCreate' handler to be triggered from the dialog */\n createDialog?: Select2CreateDialogRenderer;\n /** Create button text */\n createTriggerText?: string;\n};\n\n// generic overload is the public face; the wide implementation signature lets the internals\n// (which all operate on Select2Value) consume the props without assertions\nfunction _Select2Inner<T extends Select2Value = Select2Value>(\n props: Select2Props<T>,\n ref: React.Ref<HTMLButtonElement>\n): React.JSX.Element;\nfunction _Select2Inner(props: Select2Props, ref: React.Ref<HTMLButtonElement>): React.JSX.Element {\n const {\n children: initChildren,\n defaultValue,\n disabled = false,\n emptyValue = undefined,\n fontSize,\n highlighted = false,\n invalid = false,\n loading,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n placeholder,\n readOnly = false,\n tags = false,\n value: prop,\n createDialog,\n createTriggerText,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n // flatten nested arrays from maps and strip conditionals (false/null) so the internals see a flat list\n const children = React.Children.toArray(initChildren).filter((child): child is Select2Child =>\n React.isValidElement(child)\n );\n\n return emptyOption ? [emptyOption, ...children] : children;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControlled<Select2Value>({\n // uncontrolled\n defaultValue,\n // controlled\n onChange,\n value: prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(\n multiple,\n // the state can genuinely become undefined (form reset), but widening `useControlled` to\n // `Select2Value | undefined` would require onChange to accept `undefined` — a breaking API change\n _setValue as React.Dispatch<React.SetStateAction<Select2Value | undefined>>\n );\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n createDialog,\n createTriggerText,\n };\n\n const hasInlineCreation = onCreate && !createDialog;\n const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;\n const visibleChildren = searchQuery === '' ? initialChildren : filteredChildren;\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.props.value)\n : filteredChildren.flatMap(child => {\n if (isGroup(child)) {\n return Array.isArray(child.props.children)\n ? child.props.children.map(subChild => subChild.props.value)\n : [];\n }\n return child.props.value;\n });\n\n // support typeahead functionality when search isn't available\n const queryTimeoutRef = React.useRef('');\n\n const typeahead = debounce(function () {\n if (!queryTimeoutRef.current) {\n return;\n }\n\n // match against the flattened list — selectOptions is flattened too, so indices\n // stay aligned when groups are present, and group members can be matched\n const matchedValueIndex = flattenedChildren.findIndex(child => filterOption(child, queryTimeoutRef.current));\n\n if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== undefined) {\n setValue(selectOptions[matchedValueIndex]);\n }\n\n queryTimeoutRef.current = '';\n }, 200);\n\n const setValueIfMatched = (query: string) => {\n queryTimeoutRef.current = queryTimeoutRef.current + query;\n typeahead();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (isElementInsideTable3OrReport(event.currentTarget) && isAriaDirectionKey(event)) {\n return;\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n\n if (!hasSearch) {\n setValueIfMatched(event.key);\n }\n }\n\n // Collect the first character when opening with keyboard (when user starts typing while focused on a trigger)\n if (hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setSearchQuery(prev => prev + event.key);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event));\n };\n\n const shouldFocusNextRef = React.useRef<number | undefined>(undefined);\n\n const handleHorizontalNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (isElementInsideTable3OrReport(internalRef.current)) {\n const isTriggeredFromPopover = event.target instanceof Node && event.currentTarget.contains?.(event.target);\n\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowRight') && isTriggeredFromPopover) {\n event.preventDefault(); // prevents scrolling horizontally in the table on arrow left/right.\n event.stopPropagation();\n\n shouldFocusNextRef.current = event.key === 'ArrowLeft' ? -1 : +1;\n setOpen(false);\n }\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n return;\n }\n\n if (event.key === 'Tab') {\n shouldFocusNextRef.current = event.shiftKey ? -1 : +1;\n setOpen(false);\n return;\n }\n\n // Handle Escape key to close the select without closing the parent dialog\n if (!hasSearch && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n return;\n }\n\n // support typeahead to set the value by typing its text\n if (!hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setValueIfMatched(event.key);\n return;\n }\n };\n\n const handleOpenChange = (open: boolean, details: { reason: string; event: Event }) => {\n if (!open && (details.reason === 'outside-press' || details.reason === 'focus-out')) {\n otherProps.onBlur?.(details.event as unknown as React.FocusEvent<HTMLButtonElement>);\n }\n setOpen(open);\n };\n\n const handleFinalFocus = (closeType: 'mouse' | 'touch' | 'keyboard' | 'pen' | '') => {\n if (shouldFocusNextRef.current !== undefined) {\n const el = getNextFocussableElement(internalRef.current, shouldFocusNextRef.current);\n shouldFocusNextRef.current = undefined;\n return el || false;\n }\n if (closeType === 'mouse' || closeType === 'touch') {\n // Don't steal focus — the clicked element receives it naturally.\n return false;\n }\n return true;\n };\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n }\n return texts.select2.selectAll;\n }\n\n if (areAllSelected) {\n return texts.select2.deselectAllResults;\n }\n\n return texts.select2.selectAllResults;\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue));\n setValue(nextValue);\n }\n };\n\n const className = cn(\n 'rounded border border-gray-300 bg-white py-1.5 shadow-md',\n {\n 'focus-within:yt-focus': !hasSearch,\n 'outline-none': hasSearch,\n },\n createCollectionClassName()\n );\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger\n render={\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n aria-multiselectable={multiple}\n // oxlint-disable-next-line taco/data-taco-kebab-case -- established public selector API; renaming it is a breaking change\n data-taco=\"Select2\"\n emptyValue={emptyValue}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={internalRef}>\n {flattenedChildren}\n </Trigger>\n }\n />\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align=\"start\"\n sideOffset={4}\n collisionAvoidance={{\n side: 'flip',\n fallbackAxisSide: 'none',\n }}>\n <PopoverPrimitive.Popup\n className={className}\n style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}\n initialFocus={hasSearch ? searchRef : true}\n finalFocus={handleFinalFocus}\n onKeyDown={handleHorizontalNavigation}\n tabIndex={-1}>\n {hasSearch ? (\n <>\n <Search\n placeholder={hasInlineCreation ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <LegacyButton\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </LegacyButton>\n <div className=\"mx-3 rounded border-t border-gray-200\" />\n </>\n )}\n </>\n ) : null}\n {loading ? (\n <span\n className={cn(\n 'flex items-center italic text-gray-700',\n fontSize && FONT_SIZE_CLASSNAME[fontSize]\n )}>\n <span>\n <Spinner\n delay={0}\n className={cn('ml-3 mr-2 mt-1.5 h-5 w-5', {\n '!mt-1 !h-3.5 !w-3.5': fontSize === FontSizes.small,\n '!h-4 !w-4': fontSize === FontSizes.medium,\n '!h-5 !w-5': fontSize === FontSizes.large,\n })}\n />\n </span>\n <span>{texts.listbox.loading}</span>\n </span>\n ) : flattenedChildren.length <= 0 && !onCreate ? (\n <div className=\"-mt-0.5 flex h-8 items-center px-2 text-gray-700\" role=\"presentation\">\n {texts.listbox.empty}\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5 focus-visible:outline-none\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n value={value}>\n <Collection>{visibleChildren}</Collection>\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}\n\nexport const Select2 = Object.assign(fixedForwardRef(_Select2Inner), {\n Option,\n Group,\n Title,\n displayName: 'Select2',\n});\n\ntype ControlledHiddenFieldProps = {\n emptyValue: ListboxPrimitive.Listbox2OptionValue | undefined;\n multiple: boolean;\n name: string | undefined;\n options: Select2OptionValue[];\n parentRef: React.RefObject<HTMLButtonElement>;\n setValue: (nextValue: Select2Value | undefined) => void;\n value: Select2Value | undefined;\n};\n\nconst ControlledHiddenField = (props: ControlledHiddenFieldProps) => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} tabIndex={-1} value={bubbleValue}>\n {emptyValue === undefined ? null : <option value={emptyValue === null ? '' : String(emptyValue)} />}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\n\nexport type {\n Select2Texts,\n Select2Child,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n Select2Children,\n};\n"],"names":["Option","useMergedRef","useLocalization","useBoundingClientRectListener","useControlled","ListboxPrimitive.createListboxValueSetter","useIsHoverStatePaused","useChildren","isGroup","debounce","filterOption","isElementInsideTable3OrReport","isAriaDirectionKey","createCustomKeyboardEvent","open","getNextFocussableElement","createCollectionClassName","Select2Context","PopoverPrimitive","Trigger","Search","LegacyButton","FONT_SIZE_CLASSNAME","Spinner","FontSizes","ListboxPrimitive.Root","Collection","Create","fixedForwardRef","Group","Title","useIsFormControl","BubbleSelect"],"mappings":"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"}
@@ -111,16 +111,16 @@ export declare const Select2: (<T extends Select2Value = Select2Value>(props: Om
111
111
  createDialog?: Select2CreateDialogRenderer;
112
112
  /** Create button text */
113
113
  createTriggerText?: string;
114
- } & React.RefAttributes<HTMLButtonElement>) => JSX.Element) & {
114
+ } & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element) & {
115
115
  Option: <T extends Select2OptionValue>(props: Omit<ListboxPrimitive.Listbox2OptionProps<T>, "children" | "prefix"> & {
116
- children: string | JSX.Element;
116
+ children: string | React.JSX.Element;
117
117
  color?: import('../..').Color;
118
118
  description?: string;
119
119
  fontSize?: FontSize;
120
- prefix?: import('..').IconName | JSX.Element;
121
- postfix?: import('..').IconName | JSX.Element;
120
+ prefix?: import('..').IconName | React.JSX.Element;
121
+ postfix?: import('..').IconName | React.JSX.Element;
122
122
  textValue?: string;
123
- } & React.RefAttributes<HTMLDivElement>) => JSX.Element;
123
+ } & React.RefAttributes<HTMLDivElement>) => React.JSX.Element;
124
124
  Group: React.ForwardRefExoticComponent<Omit<ListboxPrimitive.Listbox2GroupProps, "children"> & {
125
125
  children: React.ReactElement<Select2OptionProps>[];
126
126
  hasSeparator?: boolean;
@@ -132,9 +132,7 @@ function _Select2Inner(props, ref) {
132
132
  if (!queryTimeoutRef.current) {
133
133
  return;
134
134
  }
135
- const matchedValueIndex = visibleChildren.findIndex(
136
- (child) => !isGroup(child) && filterOption(child, queryTimeoutRef.current)
137
- );
135
+ const matchedValueIndex = flattenedChildren.findIndex((child) => filterOption(child, queryTimeoutRef.current));
138
136
  if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== void 0) {
139
137
  setValue(selectOptions[matchedValueIndex]);
140
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select2.js","sources":["../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport type { CollectionRef } from '../../primitives/Collection/Collection';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport type { FontSize } from '../../types';\nimport { fixedForwardRef, FontSizes } from '../../types';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { debounce } from '../../utils/debounce';\nimport { getNextFocussableElement, isElementInsideTable3OrReport } from '../../utils/dom';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { LegacyButton } from '../LegacyComponents/Button/Button';\nimport { useLocalization } from '../Provider/Localization';\nimport { Spinner } from '../Spinner/Spinner';\n\nimport { Collection } from './components/Collection';\nimport { Select2Context } from './components/Context';\nimport { Create } from './components/Create';\nimport type { Select2GroupProps } from './components/Group';\nimport { Group } from './components/Group';\nimport type { Select2OptionProps } from './components/Option';\nimport { Option } from './components/Option';\nimport { Search } from './components/Search';\nimport type { Select2TitleProps } from './components/Title';\nimport { Title } from './components/Title';\nimport { Trigger } from './components/Trigger';\nimport { isGroup, useChildren } from './hooks/useChildren';\nimport type {\n Select2Child,\n Select2Children,\n Select2CreateHandler,\n Select2CreateDialogRenderer,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { createCollectionClassName, filterOption, FONT_SIZE_CLASSNAME } from './utilities';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props<T extends Select2Value = Select2Value> = Omit<\n React.HTMLAttributes<HTMLButtonElement>,\n 'children' | 'defaultValue' | 'onChange' | 'value'\n> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: T;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Extract<T, Select2OptionValue>;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 is loading the data **/\n loading?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: T) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: T;\n /** Create dialog component, if specified, then create button will become always visible in the bottom of options dropdown,\n * when clicked, it will open create dialog and wait for 'onCreate' handler to be triggered from the dialog */\n createDialog?: Select2CreateDialogRenderer;\n /** Create button text */\n createTriggerText?: string;\n};\n\n// generic overload is the public face; the wide implementation signature lets the internals\n// (which all operate on Select2Value) consume the props without assertions\nfunction _Select2Inner<T extends Select2Value = Select2Value>(\n props: Select2Props<T>,\n ref: React.Ref<HTMLButtonElement>\n): JSX.Element;\nfunction _Select2Inner(props: Select2Props, ref: React.Ref<HTMLButtonElement>): JSX.Element {\n const {\n children: initChildren,\n defaultValue,\n disabled = false,\n emptyValue = undefined,\n fontSize,\n highlighted = false,\n invalid = false,\n loading,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n placeholder,\n readOnly = false,\n tags = false,\n value: prop,\n createDialog,\n createTriggerText,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n // flatten nested arrays from maps and strip conditionals (false/null) so the internals see a flat list\n const children = React.Children.toArray(initChildren).filter((child): child is Select2Child =>\n React.isValidElement(child)\n );\n\n return emptyOption ? [emptyOption, ...children] : children;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControlled<Select2Value>({\n // uncontrolled\n defaultValue,\n // controlled\n onChange,\n value: prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(\n multiple,\n // the state can genuinely become undefined (form reset), but widening `useControlled` to\n // `Select2Value | undefined` would require onChange to accept `undefined` — a breaking API change\n _setValue as React.Dispatch<React.SetStateAction<Select2Value | undefined>>\n );\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n createDialog,\n createTriggerText,\n };\n\n const hasInlineCreation = onCreate && !createDialog;\n const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;\n const visibleChildren = searchQuery === '' ? initialChildren : filteredChildren;\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.props.value)\n : filteredChildren.flatMap(child => {\n if (isGroup(child)) {\n return Array.isArray(child.props.children)\n ? child.props.children.map(subChild => subChild.props.value)\n : [];\n }\n return child.props.value;\n });\n\n // support typeahead functionality when search isn't available\n const queryTimeoutRef = React.useRef('');\n\n const typeahead = debounce(function () {\n if (!queryTimeoutRef.current) {\n return;\n }\n\n const matchedValueIndex = visibleChildren.findIndex(\n child => !isGroup(child) && filterOption(child, queryTimeoutRef.current)\n );\n\n if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== undefined) {\n setValue(selectOptions[matchedValueIndex]);\n }\n\n queryTimeoutRef.current = '';\n }, 200);\n\n const setValueIfMatched = (query: string) => {\n queryTimeoutRef.current = queryTimeoutRef.current + query;\n typeahead();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (isElementInsideTable3OrReport(event.currentTarget) && isAriaDirectionKey(event)) {\n return;\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n\n if (!hasSearch) {\n setValueIfMatched(event.key);\n }\n }\n\n // Collect the first character when opening with keyboard (when user starts typing while focused on a trigger)\n if (hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setSearchQuery(prev => prev + event.key);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event));\n };\n\n const shouldFocusNextRef = React.useRef<number | undefined>(undefined);\n\n const handleHorizontalNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (isElementInsideTable3OrReport(internalRef.current)) {\n const isTriggeredFromPopover = event.target instanceof Node && event.currentTarget.contains?.(event.target);\n\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowRight') && isTriggeredFromPopover) {\n event.preventDefault(); // prevents scrolling horizontally in the table on arrow left/right.\n event.stopPropagation();\n\n shouldFocusNextRef.current = event.key === 'ArrowLeft' ? -1 : +1;\n setOpen(false);\n }\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n return;\n }\n\n if (event.key === 'Tab') {\n shouldFocusNextRef.current = event.shiftKey ? -1 : +1;\n setOpen(false);\n return;\n }\n\n // Handle Escape key to close the select without closing the parent dialog\n if (!hasSearch && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n return;\n }\n\n // support typeahead to set the value by typing its text\n if (!hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setValueIfMatched(event.key);\n return;\n }\n };\n\n const handleOpenChange = (open: boolean, details: { reason: string; event: Event }) => {\n if (!open && (details.reason === 'outside-press' || details.reason === 'focus-out')) {\n otherProps.onBlur?.(details.event as unknown as React.FocusEvent<HTMLButtonElement>);\n }\n setOpen(open);\n };\n\n const handleFinalFocus = (closeType: 'mouse' | 'touch' | 'keyboard' | 'pen' | '') => {\n if (shouldFocusNextRef.current !== undefined) {\n const el = getNextFocussableElement(internalRef.current, shouldFocusNextRef.current);\n shouldFocusNextRef.current = undefined;\n return el || false;\n }\n if (closeType === 'mouse' || closeType === 'touch') {\n // Don't steal focus — the clicked element receives it naturally.\n return false;\n }\n return true;\n };\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n }\n return texts.select2.selectAll;\n }\n\n if (areAllSelected) {\n return texts.select2.deselectAllResults;\n }\n\n return texts.select2.selectAllResults;\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue));\n setValue(nextValue);\n }\n };\n\n const className = cn(\n 'rounded border border-gray-300 bg-white py-1.5 shadow-md',\n {\n 'focus-within:yt-focus': !hasSearch,\n 'outline-none': hasSearch,\n },\n createCollectionClassName()\n );\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger\n render={\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n aria-multiselectable={multiple}\n // oxlint-disable-next-line taco/data-taco-kebab-case -- established public selector API; renaming it is a breaking change\n data-taco=\"Select2\"\n emptyValue={emptyValue}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={internalRef}>\n {flattenedChildren}\n </Trigger>\n }\n />\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align=\"start\"\n sideOffset={4}\n collisionAvoidance={{\n side: 'flip',\n fallbackAxisSide: 'none',\n }}>\n <PopoverPrimitive.Popup\n className={className}\n style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}\n initialFocus={hasSearch ? searchRef : true}\n finalFocus={handleFinalFocus}\n onKeyDown={handleHorizontalNavigation}\n tabIndex={-1}>\n {hasSearch ? (\n <>\n <Search\n placeholder={hasInlineCreation ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <LegacyButton\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </LegacyButton>\n <div className=\"mx-3 rounded border-t border-gray-200\" />\n </>\n )}\n </>\n ) : null}\n {loading ? (\n <span\n className={cn(\n 'flex items-center italic text-gray-700',\n fontSize && FONT_SIZE_CLASSNAME[fontSize]\n )}>\n <span>\n <Spinner\n delay={0}\n className={cn('ml-3 mr-2 mt-1.5 h-5 w-5', {\n '!mt-1 !h-3.5 !w-3.5': fontSize === FontSizes.small,\n '!h-4 !w-4': fontSize === FontSizes.medium,\n '!h-5 !w-5': fontSize === FontSizes.large,\n })}\n />\n </span>\n <span>{texts.listbox.loading}</span>\n </span>\n ) : flattenedChildren.length <= 0 && !onCreate ? (\n <div className=\"-mt-0.5 flex h-8 items-center px-2 text-gray-700\" role=\"presentation\">\n {texts.listbox.empty}\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5 focus-visible:outline-none\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n value={value}>\n <Collection>{visibleChildren}</Collection>\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}\n\nexport const Select2 = Object.assign(fixedForwardRef(_Select2Inner), {\n Option,\n Group,\n Title,\n displayName: 'Select2',\n});\n\ntype ControlledHiddenFieldProps = {\n emptyValue: ListboxPrimitive.Listbox2OptionValue | undefined;\n multiple: boolean;\n name: string | undefined;\n options: Select2OptionValue[];\n parentRef: React.RefObject<HTMLButtonElement>;\n setValue: (nextValue: Select2Value | undefined) => void;\n value: Select2Value | undefined;\n};\n\nconst ControlledHiddenField = (props: ControlledHiddenFieldProps) => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} tabIndex={-1} value={bubbleValue}>\n {emptyValue === undefined ? null : <option value={emptyValue === null ? '' : String(emptyValue)} />}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\n\nexport type {\n Select2Texts,\n Select2Child,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n Select2Children,\n};\n"],"names":["React","ListboxPrimitive.createListboxValueSetter","open","PopoverPrimitive","ListboxPrimitive.Root"],"mappings":"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"}
1
+ {"version":3,"file":"Select2.js","sources":["../../../src/components/Select2/Select2.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useBoundingClientRectListener } from '../../hooks/useBoundingClientRectListener';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useIsFormControl } from '../../hooks/useIsFormControl';\nimport { useIsHoverStatePaused } from '../../hooks/useIsHoverStatePaused';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { BubbleSelect } from '../../primitives/BubbleSelect';\nimport type { CollectionRef } from '../../primitives/Collection/Collection';\nimport * as ListboxPrimitive from '../../primitives/Listbox2/Listbox2';\nimport type { FontSize } from '../../types';\nimport { fixedForwardRef, FontSizes } from '../../types';\nimport { isAriaDirectionKey } from '../../utils/aria';\nimport { debounce } from '../../utils/debounce';\nimport { getNextFocussableElement, isElementInsideTable3OrReport } from '../../utils/dom';\nimport { createCustomKeyboardEvent } from '../../utils/input';\nimport { LegacyButton } from '../LegacyComponents/Button/Button';\nimport { useLocalization } from '../Provider/Localization';\nimport { Spinner } from '../Spinner/Spinner';\n\nimport { Collection } from './components/Collection';\nimport { Select2Context } from './components/Context';\nimport { Create } from './components/Create';\nimport type { Select2GroupProps } from './components/Group';\nimport { Group } from './components/Group';\nimport type { Select2OptionProps } from './components/Option';\nimport { Option } from './components/Option';\nimport { Search } from './components/Search';\nimport type { Select2TitleProps } from './components/Title';\nimport { Title } from './components/Title';\nimport { Trigger } from './components/Trigger';\nimport { isGroup, useChildren } from './hooks/useChildren';\nimport type {\n Select2Child,\n Select2Children,\n Select2CreateHandler,\n Select2CreateDialogRenderer,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n} from './types';\nimport { createCollectionClassName, filterOption, FONT_SIZE_CLASSNAME } from './utilities';\n\ntype Select2Texts = {\n allSelect: string;\n allDeselect: string;\n cancel: string;\n chooseColor: string;\n create: string;\n delete: string;\n save: string;\n search: string;\n searchOrCreate: string;\n selectAll: string;\n selectAllResults: string;\n deselectAll: string;\n deselectAllResults: string;\n};\n\ntype Select2Props<T extends Select2Value = Select2Value> = Omit<\n React.HTMLAttributes<HTMLButtonElement>,\n 'children' | 'defaultValue' | 'onChange' | 'value'\n> & {\n /** Autofocus Select2 when loaded **/\n autoFocus?: boolean;\n /** Array of options in Select2 */\n children: Select2Children;\n /** Initial value of the input in Select2 */\n defaultValue?: T;\n /** Set what value should have an empty option in Select2 */\n emptyValue?: Extract<T, Select2OptionValue>;\n /** Whether the Select2 is in a disabled state **/\n disabled?: boolean;\n /** Font size of text in Select2 **/\n fontSize?: FontSize;\n /** Draws attention to the Select2 by changing its style and making it visually prominent */\n highlighted?: boolean;\n /** Whether the Select2 is in an invalid state **/\n invalid?: boolean;\n /** Whether the Select2 is loading the data **/\n loading?: boolean;\n /** Whether the Select2 allows selecting multiple values **/\n multiple?: boolean;\n /** Whether the Select2 is in an invalid state **/\n name?: string;\n /** Handler called when user chooses an option from the provided options **/\n onChange?: (value: T) => void;\n /** Handler called when user creates a new option **/\n onCreate?: Select2CreateHandler;\n /** Handler called when user deletes an option **/\n onDelete?: Select2DeleteHandler;\n /** Handler called when user edits an option **/\n onEdit?: Select2EditHandler;\n /** Placeholder showed when nothing is selected **/\n placeholder?: string;\n /** Whether the Select2 is in a readonly state **/\n readOnly?: boolean;\n required?: boolean;\n /** Renders select options as tags **/\n tags?: boolean;\n /** Value of the input in select2 */\n value?: T;\n /** Create dialog component, if specified, then create button will become always visible in the bottom of options dropdown,\n * when clicked, it will open create dialog and wait for 'onCreate' handler to be triggered from the dialog */\n createDialog?: Select2CreateDialogRenderer;\n /** Create button text */\n createTriggerText?: string;\n};\n\n// generic overload is the public face; the wide implementation signature lets the internals\n// (which all operate on Select2Value) consume the props without assertions\nfunction _Select2Inner<T extends Select2Value = Select2Value>(\n props: Select2Props<T>,\n ref: React.Ref<HTMLButtonElement>\n): React.JSX.Element;\nfunction _Select2Inner(props: Select2Props, ref: React.Ref<HTMLButtonElement>): React.JSX.Element {\n const {\n children: initChildren,\n defaultValue,\n disabled = false,\n emptyValue = undefined,\n fontSize,\n highlighted = false,\n invalid = false,\n loading,\n multiple = false,\n name,\n onChange,\n onCreate,\n onDelete,\n onEdit,\n placeholder,\n readOnly = false,\n tags = false,\n value: prop,\n createDialog,\n createTriggerText,\n ...otherProps\n } = props;\n\n const emptyOption: React.ReactElement<Select2OptionProps> | undefined = React.useMemo(() => {\n if (emptyValue !== undefined && !multiple) {\n // Empty option has 0px height, because it's empty, so need to apply height manually\n return <Option key=\"__empty\" children=\"\" value={emptyValue} className=\"h-8\" />;\n }\n return;\n }, [emptyValue, multiple]);\n\n const initialChildren = React.useMemo(() => {\n // flatten nested arrays from maps and strip conditionals (false/null) so the internals see a flat list\n const children = React.Children.toArray(initChildren).filter((child): child is Select2Child =>\n React.isValidElement(child)\n );\n\n return emptyOption ? [emptyOption, ...children] : children;\n }, [emptyOption, initChildren]);\n\n // refs\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const listboxRef = React.useRef<CollectionRef>(null);\n const searchRef = React.useRef<HTMLInputElement>(null);\n const { texts } = useLocalization();\n // align the listbox min width with the width of the input - it should never be smaller\n const dimensions = useBoundingClientRectListener(internalRef);\n\n // state\n const [open, setOpen] = React.useState(false);\n const [value, _setValue] = useControlled<Select2Value>({\n // uncontrolled\n defaultValue,\n // controlled\n onChange,\n value: prop,\n });\n const setValue = ListboxPrimitive.createListboxValueSetter(\n multiple,\n // the state can genuinely become undefined (form reset), but widening `useControlled` to\n // `Select2Value | undefined` would require onChange to accept `undefined` — a breaking API change\n _setValue as React.Dispatch<React.SetStateAction<Select2Value | undefined>>\n );\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n\n const { flattenedChildren, filteredChildren, searchQuery, setSearchQuery } = useChildren({\n children: initialChildren,\n emptyValue,\n multiple,\n open,\n setValue,\n value,\n });\n\n // context\n const context = {\n disabled,\n highlighted,\n invalid,\n listboxRef,\n multiple,\n onCreate,\n onDelete,\n onEdit,\n open,\n readOnly,\n ref: internalRef,\n searchQuery,\n searchRef,\n setOpen,\n setSearchQuery,\n setValidationError,\n setValue,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n tags,\n fontSize,\n validationError,\n value,\n createDialog,\n createTriggerText,\n };\n\n const hasInlineCreation = onCreate && !createDialog;\n const hasSearch = flattenedChildren.length > 5 || hasInlineCreation;\n const visibleChildren = searchQuery === '' ? initialChildren : filteredChildren;\n const selectOptions =\n searchQuery === ''\n ? flattenedChildren.map(child => child.props.value)\n : filteredChildren.flatMap(child => {\n if (isGroup(child)) {\n return Array.isArray(child.props.children)\n ? child.props.children.map(subChild => subChild.props.value)\n : [];\n }\n return child.props.value;\n });\n\n // support typeahead functionality when search isn't available\n const queryTimeoutRef = React.useRef('');\n\n const typeahead = debounce(function () {\n if (!queryTimeoutRef.current) {\n return;\n }\n\n // match against the flattened list — selectOptions is flattened too, so indices\n // stay aligned when groups are present, and group members can be matched\n const matchedValueIndex = flattenedChildren.findIndex(child => filterOption(child, queryTimeoutRef.current));\n\n if (matchedValueIndex > -1 && selectOptions[matchedValueIndex] !== undefined) {\n setValue(selectOptions[matchedValueIndex]);\n }\n\n queryTimeoutRef.current = '';\n }, 200);\n\n const setValueIfMatched = (query: string) => {\n queryTimeoutRef.current = queryTimeoutRef.current + query;\n typeahead();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (open) {\n event.preventDefault();\n } else if (isElementInsideTable3OrReport(event.currentTarget) && isAriaDirectionKey(event)) {\n return;\n } else if (!event.ctrlKey && !event.metaKey && (event.key === 'ArrowDown' || /^[a-z0-9]$/i.test(event.key))) {\n setOpen(true);\n\n if (!hasSearch) {\n setValueIfMatched(event.key);\n }\n }\n\n // Collect the first character when opening with keyboard (when user starts typing while focused on a trigger)\n if (hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setSearchQuery(prev => prev + event.key);\n }\n\n // the focus should always remain on the input, so we forward events on to the listbox\n listboxRef.current?.dispatchEvent(createCustomKeyboardEvent(event));\n };\n\n const shouldFocusNextRef = React.useRef<number | undefined>(undefined);\n\n const handleHorizontalNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (isElementInsideTable3OrReport(internalRef.current)) {\n const isTriggeredFromPopover = event.target instanceof Node && event.currentTarget.contains?.(event.target);\n\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowRight') && isTriggeredFromPopover) {\n event.preventDefault(); // prevents scrolling horizontally in the table on arrow left/right.\n event.stopPropagation();\n\n shouldFocusNextRef.current = event.key === 'ArrowLeft' ? -1 : +1;\n setOpen(false);\n }\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isAriaDirectionKey(event)) {\n setShouldPauseHoverState(true);\n return;\n }\n\n if (event.key === 'Tab') {\n shouldFocusNextRef.current = event.shiftKey ? -1 : +1;\n setOpen(false);\n return;\n }\n\n // Handle Escape key to close the select without closing the parent dialog\n if (!hasSearch && event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n return;\n }\n\n // support typeahead to set the value by typing its text\n if (!hasSearch && /^[a-z0-9]$/i.test(event.key)) {\n setValueIfMatched(event.key);\n return;\n }\n };\n\n const handleOpenChange = (open: boolean, details: { reason: string; event: Event }) => {\n if (!open && (details.reason === 'outside-press' || details.reason === 'focus-out')) {\n otherProps.onBlur?.(details.event as unknown as React.FocusEvent<HTMLButtonElement>);\n }\n setOpen(open);\n };\n\n const handleFinalFocus = (closeType: 'mouse' | 'touch' | 'keyboard' | 'pen' | '') => {\n if (shouldFocusNextRef.current !== undefined) {\n const el = getNextFocussableElement(internalRef.current, shouldFocusNextRef.current);\n shouldFocusNextRef.current = undefined;\n return el || false;\n }\n if (closeType === 'mouse' || closeType === 'touch') {\n // Don't steal focus — the clicked element receives it naturally.\n return false;\n }\n return true;\n };\n const areAllSelected = Array.isArray(value) && selectOptions.every(option => value.includes(option));\n\n const selectAllText = React.useMemo(() => {\n if (searchQuery === '') {\n if (areAllSelected) {\n return texts.select2.deselectAll;\n }\n return texts.select2.selectAll;\n }\n\n if (areAllSelected) {\n return texts.select2.deselectAllResults;\n }\n\n return texts.select2.selectAllResults;\n }, [areAllSelected, searchQuery]);\n\n const selectAll = () => {\n if (!Array.isArray(value) || value.length === 0) {\n setValue(selectOptions);\n } else {\n // array of all available options which are not selected\n const preselectedValues = selectOptions.filter(option => !value.includes(option));\n setValue([...value, ...preselectedValues]);\n }\n };\n\n const deselectAll = () => {\n if (searchQuery === '') {\n setValue([]);\n } else {\n const nextValue = Array.isArray(value) && value.filter(subValue => !selectOptions.includes(subValue));\n setValue(nextValue);\n }\n };\n\n const className = cn(\n 'rounded border border-gray-300 bg-white py-1.5 shadow-md',\n {\n 'focus-within:yt-focus': !hasSearch,\n 'outline-none': hasSearch,\n },\n createCollectionClassName()\n );\n\n return (\n <Select2Context.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger\n render={\n <Trigger\n {...otherProps}\n aria-haspopup=\"listbox\"\n aria-multiselectable={multiple}\n // oxlint-disable-next-line taco/data-taco-kebab-case -- established public selector API; renaming it is a breaking change\n data-taco=\"Select2\"\n emptyValue={emptyValue}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={internalRef}>\n {flattenedChildren}\n </Trigger>\n }\n />\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align=\"start\"\n sideOffset={4}\n collisionAvoidance={{\n side: 'flip',\n fallbackAxisSide: 'none',\n }}>\n <PopoverPrimitive.Popup\n className={className}\n style={{ minWidth: dimensions?.width ? `${dimensions.width}px` : undefined }}\n initialFocus={hasSearch ? searchRef : true}\n finalFocus={handleFinalFocus}\n onKeyDown={handleHorizontalNavigation}\n tabIndex={-1}>\n {hasSearch ? (\n <>\n <Search\n placeholder={hasInlineCreation ? texts.select2.searchOrCreate : texts.select2.search}\n ref={searchRef}\n />\n {multiple && selectOptions.length > 1 && (\n <>\n <LegacyButton\n className=\"!justify-start\"\n appearance=\"discrete\"\n onClick={areAllSelected ? deselectAll : selectAll}>\n {selectAllText}\n </LegacyButton>\n <div className=\"mx-3 rounded border-t border-gray-200\" />\n </>\n )}\n </>\n ) : null}\n {loading ? (\n <span\n className={cn(\n 'flex items-center italic text-gray-700',\n fontSize && FONT_SIZE_CLASSNAME[fontSize]\n )}>\n <span>\n <Spinner\n delay={0}\n className={cn('ml-3 mr-2 mt-1.5 h-5 w-5', {\n '!mt-1 !h-3.5 !w-3.5': fontSize === FontSizes.small,\n '!h-4 !w-4': fontSize === FontSizes.medium,\n '!h-5 !w-5': fontSize === FontSizes.large,\n })}\n />\n </span>\n <span>{texts.listbox.loading}</span>\n </span>\n ) : flattenedChildren.length <= 0 && !onCreate ? (\n <div className=\"-mt-0.5 flex h-8 items-center px-2 text-gray-700\" role=\"presentation\">\n {texts.listbox.empty}\n </div>\n ) : (\n <ListboxPrimitive.Root\n className=\"flex flex-col gap-0.5 focus-visible:outline-none\"\n customSelector=\":scope > button\"\n disabled={disabled}\n multiple={multiple}\n onKeyDown={handleListboxKeyDown}\n readOnly={readOnly}\n ref={listboxRef}\n setValue={setValue}\n value={value}>\n <Collection>{visibleChildren}</Collection>\n {onCreate ? <Create onCreate={onCreate} options={flattenedChildren} /> : null}\n </ListboxPrimitive.Root>\n )}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n <ControlledHiddenField\n emptyValue={emptyValue}\n multiple={multiple || tags}\n name={name}\n options={flattenedChildren.map(child => child.props.value)}\n parentRef={internalRef}\n setValue={setValue}\n value={value}\n />\n </PopoverPrimitive.Root>\n </Select2Context.Provider>\n );\n}\n\nexport const Select2 = Object.assign(fixedForwardRef(_Select2Inner), {\n Option,\n Group,\n Title,\n displayName: 'Select2',\n});\n\ntype ControlledHiddenFieldProps = {\n emptyValue: ListboxPrimitive.Listbox2OptionValue | undefined;\n multiple: boolean;\n name: string | undefined;\n options: Select2OptionValue[];\n parentRef: React.RefObject<HTMLButtonElement>;\n setValue: (nextValue: Select2Value | undefined) => void;\n value: Select2Value | undefined;\n};\n\nconst ControlledHiddenField = (props: ControlledHiddenFieldProps) => {\n const { emptyValue, multiple, name, options, parentRef, value, setValue } = props;\n const isFormControl = useIsFormControl(parentRef, () => setValue(multiple ? [] : undefined));\n\n let bubbleValue;\n\n if (isFormControl) {\n if (value !== undefined) {\n if (multiple) {\n bubbleValue = Array.isArray(value) ? value.map(String) : [value === null ? '' : String(value)];\n } else {\n bubbleValue = value === null ? '' : String(value);\n }\n }\n\n return (\n <BubbleSelect aria-hidden key={String(bubbleValue)} multiple={multiple} name={name} tabIndex={-1} value={bubbleValue}>\n {emptyValue === undefined ? null : <option value={emptyValue === null ? '' : String(emptyValue)} />}\n {options.map(option => (\n <option key={String(option)} value={String(option)} />\n ))}\n </BubbleSelect>\n );\n }\n\n return null;\n};\n\nexport type {\n Select2Texts,\n Select2Child,\n Select2GroupProps,\n Select2OptionProps,\n Select2OptionValue,\n Select2Value,\n Select2Props,\n Select2TitleProps,\n Select2Children,\n};\n"],"names":["React","ListboxPrimitive.createListboxValueSetter","open","PopoverPrimitive","ListboxPrimitive.Root"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Context.cjs","sources":["../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CollectionRef } from '../../../primitives/Collection/Collection';\nimport type { FontSize } from '../../../types';\nimport type {\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n Select2CreateDialogRenderer,\n} from '../types';\n\nexport type Select2ContextProps = {\n createDialog?: Select2CreateDialogRenderer;\n createTriggerText?: string;\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef>;\n multiple: boolean;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: (pause: boolean) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n fontSize?: FontSize;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n"],"names":[],"mappings":";;;AAyCO,MAAM,iBAAiB,MAAM,cAAc,CAAA,CAAyB;AACpE,MAAM,oBAAoB,MAAM,MAAM,WAAW,cAAc;;;"}
1
+ {"version":3,"file":"Context.cjs","sources":["../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CollectionRef } from '../../../primitives/Collection/Collection';\nimport type { FontSize } from '../../../types';\nimport type {\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n Select2CreateDialogRenderer,\n} from '../types';\n\nexport type Select2ContextProps = {\n createDialog?: Select2CreateDialogRenderer;\n createTriggerText?: string;\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef | null>;\n multiple: boolean;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement | null>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement | null>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: (pause: boolean) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n fontSize?: FontSize;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n"],"names":[],"mappings":";;;AAyCO,MAAM,iBAAiB,MAAM,cAAc,CAAA,CAAyB;AACpE,MAAM,oBAAoB,MAAM,MAAM,WAAW,cAAc;;;"}
@@ -8,16 +8,16 @@ export type Select2ContextProps = {
8
8
  disabled: boolean;
9
9
  highlighted: boolean;
10
10
  invalid: boolean;
11
- listboxRef: React.RefObject<CollectionRef>;
11
+ listboxRef: React.RefObject<CollectionRef | null>;
12
12
  multiple: boolean;
13
13
  onCreate?: Select2CreateHandler;
14
14
  onDelete?: Select2DeleteHandler;
15
15
  onEdit?: Select2EditHandler;
16
16
  open: boolean;
17
17
  readOnly: boolean;
18
- ref: React.RefObject<HTMLButtonElement>;
18
+ ref: React.RefObject<HTMLButtonElement | null>;
19
19
  searchQuery: string;
20
- searchRef?: React.RefObject<HTMLInputElement>;
20
+ searchRef?: React.RefObject<HTMLInputElement | null>;
21
21
  setOpen: (open: boolean) => void;
22
22
  setSearchQuery: (value: string) => void;
23
23
  setValidationError: (error: Error | undefined) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CollectionRef } from '../../../primitives/Collection/Collection';\nimport type { FontSize } from '../../../types';\nimport type {\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n Select2CreateDialogRenderer,\n} from '../types';\n\nexport type Select2ContextProps = {\n createDialog?: Select2CreateDialogRenderer;\n createTriggerText?: string;\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef>;\n multiple: boolean;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: (pause: boolean) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n fontSize?: FontSize;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n"],"names":["React"],"mappings":";AAyCO,MAAM,iBAAiBA,eAAM,cAAc,CAAA,CAAyB;AACpE,MAAM,oBAAoB,MAAMA,eAAM,WAAW,cAAc;"}
1
+ {"version":3,"file":"Context.js","sources":["../../../../src/components/Select2/components/Context.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { CollectionRef } from '../../../primitives/Collection/Collection';\nimport type { FontSize } from '../../../types';\nimport type {\n Select2CreateHandler,\n Select2DeleteHandler,\n Select2EditHandler,\n Select2OptionValue,\n Select2Value,\n Select2CreateDialogRenderer,\n} from '../types';\n\nexport type Select2ContextProps = {\n createDialog?: Select2CreateDialogRenderer;\n createTriggerText?: string;\n disabled: boolean;\n highlighted: boolean;\n invalid: boolean;\n listboxRef: React.RefObject<CollectionRef | null>;\n multiple: boolean;\n onCreate?: Select2CreateHandler;\n onDelete?: Select2DeleteHandler;\n onEdit?: Select2EditHandler;\n open: boolean;\n readOnly: boolean;\n ref: React.RefObject<HTMLButtonElement | null>;\n searchQuery: string;\n searchRef?: React.RefObject<HTMLInputElement | null>;\n setOpen: (open: boolean) => void;\n setSearchQuery: (value: string) => void;\n setValidationError: (error: Error | undefined) => void;\n setValue: (value: Select2OptionValue) => void;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: (pause: boolean) => void;\n tags?: boolean;\n validationError?: Error;\n value?: Select2Value;\n fontSize?: FontSize;\n};\n\nexport const Select2Context = React.createContext({} as Select2ContextProps);\nexport const useSelect2Context = () => React.useContext(Select2Context);\n"],"names":["React"],"mappings":";AAyCO,MAAM,iBAAiBA,eAAM,cAAc,CAAA,CAAyB;AACpE,MAAM,oBAAoB,MAAMA,eAAM,WAAW,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.cjs","sources":["../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport type { Color, FontSize } from '../../../types';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { isMobileDevice } from '../../../utils/device';\nimport type { IconName } from '../../Icon/Icon';\nimport { Icon } from '../../Icon/Icon';\nimport { LegacyIconButton } from '../../LegacyComponents/IconButton/IconButton';\nimport { Tag } from '../../Tag/Tag';\nimport type { Select2OptionValue } from '../types';\nimport { createOptionClassName, FONT_SIZE_CLASSNAME } from '../utilities';\n\nimport { useSelect2Context } from './Context';\nimport type { EditPopoverProps } from './Edit';\nimport { EditPopover } from './Edit';\n\nexport type Select2OptionProps<T extends Select2OptionValue = Select2OptionValue> = Omit<\n ListboxPrimitive.Listbox2OptionProps<T>,\n 'children' | 'prefix'\n> & {\n children: string | JSX.Element;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | JSX.Element;\n postfix?: IconName | JSX.Element;\n textValue?: string;\n};\n\nexport const Option = fixedForwardRef(function Select2Option<T extends Select2OptionValue>(\n props: Select2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize = 'medium',\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), FONT_SIZE_CLASSNAME[fontSize], cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (multiple) {\n selectRef.current?.focus();\n } else {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event) && (!multiple || event.key === 'Tab')) {\n setOpen(false);\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? (popoverProps: Partial<EditPopoverProps>) => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : (\n <span className=\"-mx-0.5 inline-flex h-4 w-4 flex-shrink-0\" aria-hidden />\n )}\n\n {typeof children === 'string' ? (\n isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} className=\"!h-5 !w-5\" /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? (\n <span className=\"-mt-1.5 mb-1.5 text-xs text-gray-700\" data-taco=\"description\">\n {description}\n </span>\n ) : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? (\n typeof postfix === 'string' ? (\n <Icon name={postfix} className=\"!h-5 !w-5\" />\n ) : (\n postfix\n )\n ) : null}\n </span>\n </span>\n </>\n )\n ) : (\n <span className=\"w-full\">{children}</span>\n )}\n {popover ? (\n <LegacyIconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black-subtle focus:!shadow-none group-hover:visible group-aria-current:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["fixedForwardRef","useSelect2Context","createOptionClassName","FONT_SIZE_CLASSNAME","isAriaSelectionKey","EditPopover","ListboxPrimitive.Option","Icon","Tag","LegacyIconButton","isMobileDevice"],"mappings":";;;;;;;;;;;;;;AAgCO,MAAM,SAASA,MAAAA,gBAAgB,SAAS,cAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,OAAO,aAAa,QAAQ,SAAS,WAAW,OAAO,GAAG,WAAA,IAAe;AAC3F,QAAM;AAAA,IACF,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACAC,0BAAA;AACJ,QAAM,YAAY,GAAGC,gCAAsB,qBAAqB,GAAGC,8BAAoB,QAAQ,GAAG,KAAK;AAEvG,QAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,SAAS,UAAU;AACnE,QAAM,QAAQ,QAAQ,CAAC,CAAC;AAExB,QAAM,cAAc,MAAM;AACtB,QAAI,UAAU;AACV,gBAAU,SAAS,MAAA;AAAA,IACvB,OAAO;AACH,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAIC,KAAAA,mBAAmB,KAAK,MAAM,CAAC,YAAY,MAAM,QAAQ,QAAQ;AACjE,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,aAAa;AAEnC,QAAM,UACF,kBAAkB,UAAU,YACtB,CAAC,iBACG,sBAAA;AAAA,IAACC,KAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC7C,MAAM,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC9C,OAAO,MAAM;AAAA,IAAA;AAAA,EAAA,IAGrB;AAEV,SACI,sBAAA,cAACC,SAAAA,QAAA,EAAyB,GAAG,YAAY,WAAsB,SAAS,aAAa,WAAW,eAAe,OAC1G,WACG,sBAAA,cAACC,KAAAA,QAAK,MAAK,QAAO,WAAU,8EAAA,CAA8E,IAE1G,sBAAA,cAAC,QAAA,EAAK,WAAU,6CAA4C,eAAW,KAAA,CAAC,GAG3E,OAAO,aAAa,WACjB,QACI,sBAAA,cAACC,IAAAA,KAAA,EAAI,WAAU,4BAA2B,OAAc,MAAM,UACzD,QACL,IAEA,sBAAA,cAAA,MAAA,UAAA,MACK,SAAS,OAAO,WAAW,WAAW,sBAAA,cAACD,KAAAA,MAAA,EAAK,MAAM,QAAQ,WAAU,YAAA,CAAY,IAAK,SAAS,0CAC9F,QAAA,EAAK,WAAU,iCACZ,sBAAA,cAAC,QAAA,EAAK,WAAU,gBAAA,GACZ,sBAAA,cAAC,QAAA,MAAM,QAAS,GACf,cACG,sBAAA,cAAC,QAAA,EAAK,WAAU,wCAAuC,aAAU,cAAA,GAC5D,WACL,IACA,IACR,GACA,sBAAA,cAAC,UAAK,WAAU,4BAAA,GACX,UACG,OAAO,YAAY,WACf,sBAAA,cAACA,KAAAA,MAAA,EAAK,MAAM,SAAS,WAAU,YAAA,CAAY,IAE3C,UAEJ,IACR,CACJ,CACJ,IAGJ,sBAAA,cAAC,UAAK,WAAU,SAAA,GAAU,QAAS,GAEtC,UACG,sBAAA;AAAA,IAACE,WAAAA;AAAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,YAAW;AAAA,MACX,WAAW;AAAA,QACP;AAAA,QACA;AAAA,UACI,YAAYC,OAAAA,eAAe,QAAQ,SAAS;AAAA,QAAA;AAAA,MAChD;AAAA,MAEJ,SAAS,CAAA,UAAS;AACd,cAAM,gBAAA;AACN,oBAAY,SAAS,wBAAwB,MAAM,cAAc,aAA+B;AAAA,MACpG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA,IAEd,IACR;AAER,CAAC;;"}
1
+ {"version":3,"file":"Option.cjs","sources":["../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport type { Color, FontSize } from '../../../types';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { isMobileDevice } from '../../../utils/device';\nimport type { IconName } from '../../Icon/Icon';\nimport { Icon } from '../../Icon/Icon';\nimport { LegacyIconButton } from '../../LegacyComponents/IconButton/IconButton';\nimport { Tag } from '../../Tag/Tag';\nimport type { Select2OptionValue } from '../types';\nimport { createOptionClassName, FONT_SIZE_CLASSNAME } from '../utilities';\n\nimport { useSelect2Context } from './Context';\nimport type { EditPopoverProps } from './Edit';\nimport { EditPopover } from './Edit';\n\nexport type Select2OptionProps<T extends Select2OptionValue = Select2OptionValue> = Omit<\n ListboxPrimitive.Listbox2OptionProps<T>,\n 'children' | 'prefix'\n> & {\n children: string | React.JSX.Element;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | React.JSX.Element;\n postfix?: IconName | React.JSX.Element;\n textValue?: string;\n};\n\nexport const Option = fixedForwardRef(function Select2Option<T extends Select2OptionValue>(\n props: Select2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize = 'medium',\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), FONT_SIZE_CLASSNAME[fontSize], cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (multiple) {\n selectRef.current?.focus();\n } else {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event) && (!multiple || event.key === 'Tab')) {\n setOpen(false);\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? (popoverProps: Partial<EditPopoverProps>) => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : (\n <span className=\"-mx-0.5 inline-flex h-4 w-4 flex-shrink-0\" aria-hidden />\n )}\n\n {typeof children === 'string' ? (\n isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} className=\"!h-5 !w-5\" /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? (\n <span className=\"-mt-1.5 mb-1.5 text-xs text-gray-700\" data-taco=\"description\">\n {description}\n </span>\n ) : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? (\n typeof postfix === 'string' ? (\n <Icon name={postfix} className=\"!h-5 !w-5\" />\n ) : (\n postfix\n )\n ) : null}\n </span>\n </span>\n </>\n )\n ) : (\n <span className=\"w-full\">{children}</span>\n )}\n {popover ? (\n <LegacyIconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black-subtle focus:!shadow-none group-hover:visible group-aria-current:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["fixedForwardRef","useSelect2Context","createOptionClassName","FONT_SIZE_CLASSNAME","isAriaSelectionKey","EditPopover","ListboxPrimitive.Option","Icon","Tag","LegacyIconButton","isMobileDevice"],"mappings":";;;;;;;;;;;;;;AAgCO,MAAM,SAASA,MAAAA,gBAAgB,SAAS,cAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,OAAO,aAAa,QAAQ,SAAS,WAAW,OAAO,GAAG,WAAA,IAAe;AAC3F,QAAM;AAAA,IACF,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACAC,0BAAA;AACJ,QAAM,YAAY,GAAGC,gCAAsB,qBAAqB,GAAGC,8BAAoB,QAAQ,GAAG,KAAK;AAEvG,QAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,SAAS,UAAU;AACnE,QAAM,QAAQ,QAAQ,CAAC,CAAC;AAExB,QAAM,cAAc,MAAM;AACtB,QAAI,UAAU;AACV,gBAAU,SAAS,MAAA;AAAA,IACvB,OAAO;AACH,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAIC,KAAAA,mBAAmB,KAAK,MAAM,CAAC,YAAY,MAAM,QAAQ,QAAQ;AACjE,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,aAAa;AAEnC,QAAM,UACF,kBAAkB,UAAU,YACtB,CAAC,iBACG,sBAAA;AAAA,IAACC,KAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC7C,MAAM,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC9C,OAAO,MAAM;AAAA,IAAA;AAAA,EAAA,IAGrB;AAEV,SACI,sBAAA,cAACC,SAAAA,QAAA,EAAyB,GAAG,YAAY,WAAsB,SAAS,aAAa,WAAW,eAAe,OAC1G,WACG,sBAAA,cAACC,KAAAA,QAAK,MAAK,QAAO,WAAU,8EAAA,CAA8E,IAE1G,sBAAA,cAAC,QAAA,EAAK,WAAU,6CAA4C,eAAW,KAAA,CAAC,GAG3E,OAAO,aAAa,WACjB,QACI,sBAAA,cAACC,IAAAA,KAAA,EAAI,WAAU,4BAA2B,OAAc,MAAM,UACzD,QACL,IAEA,sBAAA,cAAA,MAAA,UAAA,MACK,SAAS,OAAO,WAAW,WAAW,sBAAA,cAACD,KAAAA,MAAA,EAAK,MAAM,QAAQ,WAAU,YAAA,CAAY,IAAK,SAAS,0CAC9F,QAAA,EAAK,WAAU,iCACZ,sBAAA,cAAC,QAAA,EAAK,WAAU,gBAAA,GACZ,sBAAA,cAAC,QAAA,MAAM,QAAS,GACf,cACG,sBAAA,cAAC,QAAA,EAAK,WAAU,wCAAuC,aAAU,cAAA,GAC5D,WACL,IACA,IACR,GACA,sBAAA,cAAC,UAAK,WAAU,4BAAA,GACX,UACG,OAAO,YAAY,WACf,sBAAA,cAACA,KAAAA,MAAA,EAAK,MAAM,SAAS,WAAU,YAAA,CAAY,IAE3C,UAEJ,IACR,CACJ,CACJ,IAGJ,sBAAA,cAAC,UAAK,WAAU,SAAA,GAAU,QAAS,GAEtC,UACG,sBAAA;AAAA,IAACE,WAAAA;AAAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,YAAW;AAAA,MACX,WAAW;AAAA,QACP;AAAA,QACA;AAAA,UACI,YAAYC,OAAAA,eAAe,QAAQ,SAAS;AAAA,QAAA;AAAA,MAChD;AAAA,MAEJ,SAAS,CAAA,UAAS;AACd,cAAM,gBAAA;AACN,oBAAY,SAAS,wBAAwB,MAAM,cAAc,aAA+B;AAAA,MACpG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA,IAEd,IACR;AAER,CAAC;;"}
@@ -4,20 +4,20 @@ import { IconName } from '../../Icon/Icon';
4
4
  import { Select2OptionValue } from '../types';
5
5
  import * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';
6
6
  export type Select2OptionProps<T extends Select2OptionValue = Select2OptionValue> = Omit<ListboxPrimitive.Listbox2OptionProps<T>, 'children' | 'prefix'> & {
7
- children: string | JSX.Element;
7
+ children: string | React.JSX.Element;
8
8
  color?: Color;
9
9
  description?: string;
10
10
  fontSize?: FontSize;
11
- prefix?: IconName | JSX.Element;
12
- postfix?: IconName | JSX.Element;
11
+ prefix?: IconName | React.JSX.Element;
12
+ postfix?: IconName | React.JSX.Element;
13
13
  textValue?: string;
14
14
  };
15
15
  export declare const Option: <T extends Select2OptionValue>(props: Omit<ListboxPrimitive.Listbox2OptionProps<T>, "children" | "prefix"> & {
16
- children: string | JSX.Element;
16
+ children: string | React.JSX.Element;
17
17
  color?: Color;
18
18
  description?: string;
19
19
  fontSize?: FontSize;
20
- prefix?: IconName | JSX.Element;
21
- postfix?: IconName | JSX.Element;
20
+ prefix?: IconName | React.JSX.Element;
21
+ postfix?: IconName | React.JSX.Element;
22
22
  textValue?: string;
23
- } & React.RefAttributes<HTMLDivElement>) => JSX.Element;
23
+ } & React.RefAttributes<HTMLDivElement>) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport type { Color, FontSize } from '../../../types';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { isMobileDevice } from '../../../utils/device';\nimport type { IconName } from '../../Icon/Icon';\nimport { Icon } from '../../Icon/Icon';\nimport { LegacyIconButton } from '../../LegacyComponents/IconButton/IconButton';\nimport { Tag } from '../../Tag/Tag';\nimport type { Select2OptionValue } from '../types';\nimport { createOptionClassName, FONT_SIZE_CLASSNAME } from '../utilities';\n\nimport { useSelect2Context } from './Context';\nimport type { EditPopoverProps } from './Edit';\nimport { EditPopover } from './Edit';\n\nexport type Select2OptionProps<T extends Select2OptionValue = Select2OptionValue> = Omit<\n ListboxPrimitive.Listbox2OptionProps<T>,\n 'children' | 'prefix'\n> & {\n children: string | JSX.Element;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | JSX.Element;\n postfix?: IconName | JSX.Element;\n textValue?: string;\n};\n\nexport const Option = fixedForwardRef(function Select2Option<T extends Select2OptionValue>(\n props: Select2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize = 'medium',\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), FONT_SIZE_CLASSNAME[fontSize], cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (multiple) {\n selectRef.current?.focus();\n } else {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event) && (!multiple || event.key === 'Tab')) {\n setOpen(false);\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? (popoverProps: Partial<EditPopoverProps>) => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : (\n <span className=\"-mx-0.5 inline-flex h-4 w-4 flex-shrink-0\" aria-hidden />\n )}\n\n {typeof children === 'string' ? (\n isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} className=\"!h-5 !w-5\" /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? (\n <span className=\"-mt-1.5 mb-1.5 text-xs text-gray-700\" data-taco=\"description\">\n {description}\n </span>\n ) : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? (\n typeof postfix === 'string' ? (\n <Icon name={postfix} className=\"!h-5 !w-5\" />\n ) : (\n postfix\n )\n ) : null}\n </span>\n </span>\n </>\n )\n ) : (\n <span className=\"w-full\">{children}</span>\n )}\n {popover ? (\n <LegacyIconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black-subtle focus:!shadow-none group-hover:visible group-aria-current:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["React","ListboxPrimitive.Option"],"mappings":";;;;;;;;;;;;AAgCO,MAAM,SAAS,gBAAgB,SAAS,cAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,OAAO,aAAa,QAAQ,SAAS,WAAW,OAAO,GAAG,WAAA,IAAe;AAC3F,QAAM;AAAA,IACF,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACA,kBAAA;AACJ,QAAM,YAAY,GAAG,sBAAsB,qBAAqB,GAAG,oBAAoB,QAAQ,GAAG,KAAK;AAEvG,QAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,SAAS,UAAU;AACnE,QAAM,QAAQ,QAAQ,CAAC,CAAC;AAExB,QAAM,cAAc,MAAM;AACtB,QAAI,UAAU;AACV,gBAAU,SAAS,MAAA;AAAA,IACvB,OAAO;AACH,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,mBAAmB,KAAK,MAAM,CAAC,YAAY,MAAM,QAAQ,QAAQ;AACjE,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,aAAa;AAEnC,QAAM,UACF,kBAAkB,UAAU,YACtB,CAAC,iBACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC7C,MAAM,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC9C,OAAO,MAAM;AAAA,IAAA;AAAA,EAAA,IAGrB;AAEV,SACIA,+BAAA,cAACC,UAAA,EAAyB,GAAG,YAAY,WAAsB,SAAS,aAAa,WAAW,eAAe,OAC1G,WACGD,+BAAA,cAAC,QAAK,MAAK,QAAO,WAAU,8EAAA,CAA8E,IAE1GA,+BAAA,cAAC,QAAA,EAAK,WAAU,6CAA4C,eAAW,KAAA,CAAC,GAG3E,OAAO,aAAa,WACjB,QACIA,+BAAA,cAAC,KAAA,EAAI,WAAU,4BAA2B,OAAc,MAAM,UACzD,QACL,IAEAA,+BAAA,cAAAA,eAAA,UAAA,MACK,SAAS,OAAO,WAAW,WAAWA,+BAAA,cAAC,MAAA,EAAK,MAAM,QAAQ,WAAU,YAAA,CAAY,IAAK,SAAS,mDAC9F,QAAA,EAAK,WAAU,iCACZA,+BAAA,cAAC,QAAA,EAAK,WAAU,gBAAA,GACZA,+BAAA,cAAC,QAAA,MAAM,QAAS,GACf,cACGA,+BAAA,cAAC,QAAA,EAAK,WAAU,wCAAuC,aAAU,cAAA,GAC5D,WACL,IACA,IACR,GACAA,+BAAA,cAAC,UAAK,WAAU,4BAAA,GACX,UACG,OAAO,YAAY,WACfA,+BAAA,cAAC,MAAA,EAAK,MAAM,SAAS,WAAU,YAAA,CAAY,IAE3C,UAEJ,IACR,CACJ,CACJ,IAGJA,+BAAA,cAAC,UAAK,WAAU,SAAA,GAAU,QAAS,GAEtC,UACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,YAAW;AAAA,MACX,WAAW;AAAA,QACP;AAAA,QACA;AAAA,UACI,YAAY,eAAe,QAAQ,SAAS;AAAA,QAAA;AAAA,MAChD;AAAA,MAEJ,SAAS,CAAA,UAAS;AACd,cAAM,gBAAA;AACN,oBAAY,SAAS,wBAAwB,MAAM,cAAc,aAA+B;AAAA,MACpG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA,IAEd,IACR;AAER,CAAC;"}
1
+ {"version":3,"file":"Option.js","sources":["../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport type { Color, FontSize } from '../../../types';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport { isMobileDevice } from '../../../utils/device';\nimport type { IconName } from '../../Icon/Icon';\nimport { Icon } from '../../Icon/Icon';\nimport { LegacyIconButton } from '../../LegacyComponents/IconButton/IconButton';\nimport { Tag } from '../../Tag/Tag';\nimport type { Select2OptionValue } from '../types';\nimport { createOptionClassName, FONT_SIZE_CLASSNAME } from '../utilities';\n\nimport { useSelect2Context } from './Context';\nimport type { EditPopoverProps } from './Edit';\nimport { EditPopover } from './Edit';\n\nexport type Select2OptionProps<T extends Select2OptionValue = Select2OptionValue> = Omit<\n ListboxPrimitive.Listbox2OptionProps<T>,\n 'children' | 'prefix'\n> & {\n children: string | React.JSX.Element;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | React.JSX.Element;\n postfix?: IconName | React.JSX.Element;\n textValue?: string;\n};\n\nexport const Option = fixedForwardRef(function Select2Option<T extends Select2OptionValue>(\n props: Select2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize = 'medium',\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), FONT_SIZE_CLASSNAME[fontSize], cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (multiple) {\n selectRef.current?.focus();\n } else {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event) && (!multiple || event.key === 'Tab')) {\n setOpen(false);\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? (popoverProps: Partial<EditPopoverProps>) => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : (\n <span className=\"-mx-0.5 inline-flex h-4 w-4 flex-shrink-0\" aria-hidden />\n )}\n\n {typeof children === 'string' ? (\n isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} className=\"!h-5 !w-5\" /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? (\n <span className=\"-mt-1.5 mb-1.5 text-xs text-gray-700\" data-taco=\"description\">\n {description}\n </span>\n ) : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? (\n typeof postfix === 'string' ? (\n <Icon name={postfix} className=\"!h-5 !w-5\" />\n ) : (\n postfix\n )\n ) : null}\n </span>\n </span>\n </>\n )\n ) : (\n <span className=\"w-full\">{children}</span>\n )}\n {popover ? (\n <LegacyIconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black-subtle focus:!shadow-none group-hover:visible group-aria-current:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["React","ListboxPrimitive.Option"],"mappings":";;;;;;;;;;;;AAgCO,MAAM,SAAS,gBAAgB,SAAS,cAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,OAAO,aAAa,QAAQ,SAAS,WAAW,OAAO,GAAG,WAAA,IAAe;AAC3F,QAAM;AAAA,IACF,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACA,kBAAA;AACJ,QAAM,YAAY,GAAG,sBAAsB,qBAAqB,GAAG,oBAAoB,QAAQ,GAAG,KAAK;AAEvG,QAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,SAAS,UAAU;AACnE,QAAM,QAAQ,QAAQ,CAAC,CAAC;AAExB,QAAM,cAAc,MAAM;AACtB,QAAI,UAAU;AACV,gBAAU,SAAS,MAAA;AAAA,IACvB,OAAO;AACH,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,mBAAmB,KAAK,MAAM,CAAC,YAAY,MAAM,QAAQ,QAAQ;AACjE,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,gBAAgB,aAAa;AAEnC,QAAM,UACF,kBAAkB,UAAU,YACtB,CAAC,iBACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC7C,MAAM,MAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,MAC9C,OAAO,MAAM;AAAA,IAAA;AAAA,EAAA,IAGrB;AAEV,SACIA,+BAAA,cAACC,UAAA,EAAyB,GAAG,YAAY,WAAsB,SAAS,aAAa,WAAW,eAAe,OAC1G,WACGD,+BAAA,cAAC,QAAK,MAAK,QAAO,WAAU,8EAAA,CAA8E,IAE1GA,+BAAA,cAAC,QAAA,EAAK,WAAU,6CAA4C,eAAW,KAAA,CAAC,GAG3E,OAAO,aAAa,WACjB,QACIA,+BAAA,cAAC,KAAA,EAAI,WAAU,4BAA2B,OAAc,MAAM,UACzD,QACL,IAEAA,+BAAA,cAAAA,eAAA,UAAA,MACK,SAAS,OAAO,WAAW,WAAWA,+BAAA,cAAC,MAAA,EAAK,MAAM,QAAQ,WAAU,YAAA,CAAY,IAAK,SAAS,mDAC9F,QAAA,EAAK,WAAU,iCACZA,+BAAA,cAAC,QAAA,EAAK,WAAU,gBAAA,GACZA,+BAAA,cAAC,QAAA,MAAM,QAAS,GACf,cACGA,+BAAA,cAAC,QAAA,EAAK,WAAU,wCAAuC,aAAU,cAAA,GAC5D,WACL,IACA,IACR,GACAA,+BAAA,cAAC,UAAK,WAAU,4BAAA,GACX,UACG,OAAO,YAAY,WACfA,+BAAA,cAAC,MAAA,EAAK,MAAM,SAAS,WAAU,YAAA,CAAY,IAE3C,UAEJ,IACR,CACJ,CACJ,IAGJA,+BAAA,cAAC,UAAK,WAAU,SAAA,GAAU,QAAS,GAEtC,UACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,YAAW;AAAA,MACX,WAAW;AAAA,QACP;AAAA,QACA;AAAA,UACI,YAAY,eAAe,QAAQ,SAAS;AAAA,QAAA;AAAA,MAChD;AAAA,MAEJ,SAAS,CAAA,UAAS;AACd,cAAM,gBAAA;AACN,oBAAY,SAAS,wBAAwB,MAAM,cAAc,aAA+B;AAAA,MACpG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA,IAEd,IACR;AAER,CAAC;"}