@spark-ui/components 13.1.3 → 13.1.5

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 (354) hide show
  1. package/dist/Button-B6rA3-e5.js +2 -0
  2. package/dist/{Button-C3xHNaGl.js.map → Button-B6rA3-e5.js.map} +1 -1
  3. package/dist/{Button-D32Avk2j.mjs → Button-C3C0aixy.mjs} +4 -4
  4. package/dist/{Button-D32Avk2j.mjs.map → Button-C3C0aixy.mjs.map} +1 -1
  5. package/dist/DialogContent.styles-B5pR8ECK.js +2 -0
  6. package/dist/{DialogContent.styles-BrhKaHc_.js.map → DialogContent.styles-B5pR8ECK.js.map} +1 -1
  7. package/dist/{DialogContent.styles-WGWJS9dj.mjs → DialogContent.styles-_lRDsl8c.mjs} +4 -4
  8. package/dist/{DialogContent.styles-WGWJS9dj.mjs.map → DialogContent.styles-_lRDsl8c.mjs.map} +1 -1
  9. package/dist/Icon-CF0W0LKr.js +2 -0
  10. package/dist/{Icon-Bf0XrmiR.js.map → Icon-CF0W0LKr.js.map} +1 -1
  11. package/dist/{Icon-D1RueiPY.mjs → Icon-Ck-dhfLd.mjs} +6 -6
  12. package/dist/{Icon-D1RueiPY.mjs.map → Icon-Ck-dhfLd.mjs.map} +1 -1
  13. package/dist/{IconButton-BY3gYXtU.mjs → IconButton-C62-axzv.mjs} +6 -6
  14. package/dist/{IconButton-BY3gYXtU.mjs.map → IconButton-C62-axzv.mjs.map} +1 -1
  15. package/dist/IconButton-D3g86WpZ.js +2 -0
  16. package/dist/{IconButton-Bf-EDzpI.js.map → IconButton-D3g86WpZ.js.map} +1 -1
  17. package/dist/Slot-D2Bbf8Gw.mjs +14 -0
  18. package/dist/{Slot-C98rL4yy.mjs.map → Slot-D2Bbf8Gw.mjs.map} +1 -1
  19. package/dist/Slot-DQ8z2zsy.js +2 -0
  20. package/dist/{Slot-ghrohQLA.js.map → Slot-DQ8z2zsy.js.map} +1 -1
  21. package/dist/Spinner-_Kffli3B.js +2 -0
  22. package/dist/{Spinner-DK8VEsaR.js.map → Spinner-_Kffli3B.js.map} +1 -1
  23. package/dist/{Spinner-CYL5kyzM.mjs → Spinner-jF3-zoh_.mjs} +3 -3
  24. package/dist/{Spinner-CYL5kyzM.mjs.map → Spinner-jF3-zoh_.mjs.map} +1 -1
  25. package/dist/{TextLink-3MEVs3No.mjs → TextLink-BuzFRWO6.mjs} +3 -3
  26. package/dist/{TextLink-3MEVs3No.mjs.map → TextLink-BuzFRWO6.mjs.map} +1 -1
  27. package/dist/TextLink-C3xDLsbC.js +2 -0
  28. package/dist/{TextLink-DD0VO37q.js.map → TextLink-C3xDLsbC.js.map} +1 -1
  29. package/dist/{VisuallyHidden-AoRh4WRK.js → VisuallyHidden-CB6Nx76j.js} +2 -2
  30. package/dist/{VisuallyHidden-AoRh4WRK.js.map → VisuallyHidden-CB6Nx76j.js.map} +1 -1
  31. package/dist/{VisuallyHidden-ByNP7ZUI.mjs → VisuallyHidden-KH1biLx-.mjs} +2 -2
  32. package/dist/{VisuallyHidden-ByNP7ZUI.mjs.map → VisuallyHidden-KH1biLx-.mjs.map} +1 -1
  33. package/dist/accordion/index.d.mts +15 -0
  34. package/dist/accordion/index.js +1 -1
  35. package/dist/accordion/index.js.map +1 -1
  36. package/dist/accordion/index.mjs +90 -608
  37. package/dist/accordion/index.mjs.map +1 -1
  38. package/dist/alert-dialog/index.d.mts +38 -0
  39. package/dist/alert-dialog/index.js +1 -34
  40. package/dist/alert-dialog/index.js.map +1 -1
  41. package/dist/alert-dialog/index.mjs +130 -2473
  42. package/dist/alert-dialog/index.mjs.map +1 -1
  43. package/dist/avatar/index.d.mts +15 -0
  44. package/dist/avatar/index.js +1 -1
  45. package/dist/avatar/index.js.map +1 -1
  46. package/dist/avatar/index.mjs +4 -4
  47. package/dist/badge/index.d.mts +1 -0
  48. package/dist/badge/index.js +1 -1
  49. package/dist/badge/index.js.map +1 -1
  50. package/dist/badge/index.mjs +6 -6
  51. package/dist/breadcrumb/index.d.mts +12 -0
  52. package/dist/breadcrumb/index.js +1 -1
  53. package/dist/breadcrumb/index.js.map +1 -1
  54. package/dist/breadcrumb/index.mjs +21 -21
  55. package/dist/button/Button.d.ts +1 -1
  56. package/dist/button/index.d.mts +1 -0
  57. package/dist/button/index.js +1 -1
  58. package/dist/button/index.mjs +1 -1
  59. package/dist/button/variants/index.d.mts +5 -0
  60. package/dist/card/index.d.mts +8 -0
  61. package/dist/card/index.js +1 -1
  62. package/dist/card/index.js.map +1 -1
  63. package/dist/card/index.mjs +2 -2
  64. package/dist/carousel/index.d.mts +19 -0
  65. package/dist/carousel/index.js +1 -1
  66. package/dist/carousel/index.js.map +1 -1
  67. package/dist/carousel/index.mjs +3 -3
  68. package/dist/checkbox/index.d.mts +2 -0
  69. package/dist/checkbox/index.js +1 -1
  70. package/dist/checkbox/index.js.map +1 -1
  71. package/dist/checkbox/index.mjs +128 -364
  72. package/dist/checkbox/index.mjs.map +1 -1
  73. package/dist/chip/index.d.mts +15 -0
  74. package/dist/chip/index.js +1 -1
  75. package/dist/chip/index.js.map +1 -1
  76. package/dist/chip/index.mjs +196 -370
  77. package/dist/chip/index.mjs.map +1 -1
  78. package/dist/chip/variants/index.d.mts +3 -0
  79. package/dist/collapsible/index.d.mts +7 -0
  80. package/dist/collapsible/index.js +1 -1
  81. package/dist/collapsible/index.js.map +1 -1
  82. package/dist/collapsible/index.mjs +38 -213
  83. package/dist/collapsible/index.mjs.map +1 -1
  84. package/dist/combobox/index.d.mts +35 -0
  85. package/dist/combobox/index.js +1 -1
  86. package/dist/combobox/index.js.map +1 -1
  87. package/dist/combobox/index.mjs +7 -7
  88. package/dist/combobox/utils/index.d.mts +14 -0
  89. package/dist/dialog/index.d.mts +37 -0
  90. package/dist/dialog/index.js +1 -1
  91. package/dist/dialog/index.js.map +1 -1
  92. package/dist/dialog/index.mjs +120 -120
  93. package/dist/dialog/index.mjs.map +1 -1
  94. package/dist/divider/index.d.mts +6 -0
  95. package/dist/divider/index.js +1 -1
  96. package/dist/divider/index.js.map +1 -1
  97. package/dist/divider/index.mjs +58 -76
  98. package/dist/divider/index.mjs.map +1 -1
  99. package/dist/drawer/index.d.mts +35 -0
  100. package/dist/drawer/index.js +1 -1
  101. package/dist/drawer/index.js.map +1 -1
  102. package/dist/drawer/index.mjs +88 -88
  103. package/dist/drawer/index.mjs.map +1 -1
  104. package/dist/dropdown/index.d.mts +29 -0
  105. package/dist/dropdown/index.js +1 -1
  106. package/dist/dropdown/index.js.map +1 -1
  107. package/dist/dropdown/index.mjs +5 -5
  108. package/dist/file-upload/index.d.mts +22 -0
  109. package/dist/file-upload/index.js +1 -1
  110. package/dist/file-upload/index.js.map +1 -1
  111. package/dist/file-upload/index.mjs +6 -6
  112. package/dist/form-field/index.d.mts +31 -0
  113. package/dist/form-field/index.js +1 -1
  114. package/dist/form-field/index.js.map +1 -1
  115. package/dist/form-field/index.mjs +47 -47
  116. package/dist/icon/index.d.mts +1 -0
  117. package/dist/icon/index.js +1 -1
  118. package/dist/icon/index.mjs +1 -1
  119. package/dist/icon-button/index.d.mts +1 -0
  120. package/dist/icon-button/index.js +1 -1
  121. package/dist/icon-button/index.mjs +1 -1
  122. package/dist/input/index.d.mts +21 -0
  123. package/dist/input/index.js +1 -1
  124. package/dist/input/index.js.map +1 -1
  125. package/dist/input/index.mjs +4 -4
  126. package/dist/input-otp/index.d.mts +14 -0
  127. package/dist/input-otp/index.js +1 -1
  128. package/dist/input-otp/index.js.map +1 -1
  129. package/dist/input-otp/index.mjs +63 -61
  130. package/dist/input-otp/index.mjs.map +1 -1
  131. package/dist/kbd/index.d.mts +1 -0
  132. package/dist/label/index.d.mts +7 -0
  133. package/dist/label/index.js +1 -1
  134. package/dist/label/index.js.map +1 -1
  135. package/dist/label/index.mjs +37 -2
  136. package/dist/label/index.mjs.map +1 -1
  137. package/dist/link-box/index.d.mts +9 -0
  138. package/dist/link-box/index.js +1 -1
  139. package/dist/link-box/index.js.map +1 -1
  140. package/dist/link-box/index.mjs +7 -7
  141. package/dist/pagination/index.d.mts +18 -0
  142. package/dist/pagination/index.js +1 -1
  143. package/dist/pagination/index.js.map +1 -1
  144. package/dist/pagination/index.mjs +126 -784
  145. package/dist/pagination/index.mjs.map +1 -1
  146. package/dist/popover/index.d.mts +17 -0
  147. package/dist/popover/index.js +1 -1
  148. package/dist/popover/index.js.map +1 -1
  149. package/dist/popover/index.mjs +119 -1748
  150. package/dist/popover/index.mjs.map +1 -1
  151. package/dist/portal/index.d.mts +1 -0
  152. package/dist/portal/index.js +1 -1
  153. package/dist/portal/index.js.map +1 -1
  154. package/dist/portal/index.mjs +3 -3
  155. package/dist/portal/index.mjs.map +1 -1
  156. package/dist/progress/index.d.mts +13 -0
  157. package/dist/progress/index.js +1 -6
  158. package/dist/progress/index.js.map +1 -1
  159. package/dist/progress/index.mjs +87 -162
  160. package/dist/progress/index.mjs.map +1 -1
  161. package/dist/progress-tracker/index.d.mts +10 -0
  162. package/dist/progress-tracker/index.js +1 -1
  163. package/dist/progress-tracker/index.js.map +1 -1
  164. package/dist/progress-tracker/index.mjs +14 -14
  165. package/dist/radio-group/index.d.mts +7 -0
  166. package/dist/radio-group/index.js +1 -1
  167. package/dist/radio-group/index.js.map +1 -1
  168. package/dist/radio-group/index.mjs +85 -312
  169. package/dist/radio-group/index.mjs.map +1 -1
  170. package/dist/rating/index.d.mts +1 -0
  171. package/dist/rating/index.js +1 -1
  172. package/dist/rating/index.js.map +1 -1
  173. package/dist/rating/index.mjs +11 -11
  174. package/dist/scrolling-list/index.d.mts +15 -0
  175. package/dist/scrolling-list/index.js +1 -1
  176. package/dist/scrolling-list/index.js.map +1 -1
  177. package/dist/scrolling-list/index.mjs +168 -333
  178. package/dist/scrolling-list/index.mjs.map +1 -1
  179. package/dist/segmented-gauge/index.d.mts +13 -0
  180. package/dist/segmented-gauge/index.js +1 -1
  181. package/dist/segmented-gauge/index.js.map +1 -1
  182. package/dist/segmented-gauge/index.mjs +1 -1
  183. package/dist/select/index.d.mts +21 -0
  184. package/dist/select/index.js +1 -1
  185. package/dist/select/index.js.map +1 -1
  186. package/dist/select/index.mjs +21 -21
  187. package/dist/skeleton/index.d.mts +8 -0
  188. package/dist/skeleton/index.js +1 -1
  189. package/dist/skeleton/index.js.map +1 -1
  190. package/dist/skeleton/index.mjs +2 -2
  191. package/dist/slider/index.d.mts +8 -0
  192. package/dist/slider/index.js +1 -1
  193. package/dist/slider/index.js.map +1 -1
  194. package/dist/slider/index.mjs +62 -486
  195. package/dist/slider/index.mjs.map +1 -1
  196. package/dist/slot/index.d.mts +1 -0
  197. package/dist/slot/index.js +1 -1
  198. package/dist/slot/index.mjs +1 -1
  199. package/dist/snackbar/index.d.mts +13 -0
  200. package/dist/snackbar/index.js +1 -1
  201. package/dist/snackbar/index.js.map +1 -1
  202. package/dist/snackbar/index.mjs +189 -1105
  203. package/dist/snackbar/index.mjs.map +1 -1
  204. package/dist/spinner/index.d.mts +1 -0
  205. package/dist/spinner/index.js +1 -1
  206. package/dist/spinner/index.mjs +1 -1
  207. package/dist/stepper/index.d.mts +9 -0
  208. package/dist/stepper/index.js +1 -7
  209. package/dist/stepper/index.js.map +1 -1
  210. package/dist/stepper/index.mjs +137 -2317
  211. package/dist/stepper/index.mjs.map +1 -1
  212. package/dist/switch/index.d.mts +1 -0
  213. package/dist/switch/index.js +1 -1
  214. package/dist/switch/index.js.map +1 -1
  215. package/dist/switch/index.mjs +85 -208
  216. package/dist/switch/index.mjs.map +1 -1
  217. package/dist/tabs/index.d.mts +13 -0
  218. package/dist/tabs/index.js +1 -1
  219. package/dist/tabs/index.js.map +1 -1
  220. package/dist/tabs/index.mjs +179 -329
  221. package/dist/tabs/index.mjs.map +1 -1
  222. package/dist/tag/index.d.mts +1 -0
  223. package/dist/tag/index.js +1 -1
  224. package/dist/tag/index.js.map +1 -1
  225. package/dist/tag/index.mjs +2 -2
  226. package/dist/tag/variants/index.d.mts +3 -0
  227. package/dist/text-link/index.d.mts +1 -0
  228. package/dist/text-link/index.js +1 -1
  229. package/dist/text-link/index.mjs +1 -1
  230. package/dist/textarea/index.d.mts +14 -0
  231. package/dist/textarea/index.js +1 -1
  232. package/dist/textarea/index.js.map +1 -1
  233. package/dist/textarea/index.mjs +6 -6
  234. package/dist/toast/index.d.mts +20 -0
  235. package/dist/toast/index.js +1 -1
  236. package/dist/toast/index.js.map +1 -1
  237. package/dist/toast/index.mjs +146 -1008
  238. package/dist/toast/index.mjs.map +1 -1
  239. package/dist/visually-hidden/index.d.mts +1 -0
  240. package/dist/visually-hidden/index.js +1 -1
  241. package/dist/visually-hidden/index.mjs +1 -1
  242. package/package.json +5 -4
  243. package/dist/Button-C3xHNaGl.js +0 -2
  244. package/dist/DialogContent.styles-BrhKaHc_.js +0 -2
  245. package/dist/Icon-Bf0XrmiR.js +0 -2
  246. package/dist/IconButton-Bf-EDzpI.js +0 -2
  247. package/dist/Slot-C98rL4yy.mjs +0 -14
  248. package/dist/Slot-ghrohQLA.js +0 -2
  249. package/dist/Spinner-DK8VEsaR.js +0 -2
  250. package/dist/TextLink-DD0VO37q.js +0 -2
  251. package/dist/composite-Br3kM5N9.mjs +0 -40
  252. package/dist/composite-Br3kM5N9.mjs.map +0 -1
  253. package/dist/composite-fJD9R7R0.js +0 -2
  254. package/dist/composite-fJD9R7R0.js.map +0 -1
  255. package/dist/detectBrowser-Bc7rk5fI.mjs +0 -44
  256. package/dist/detectBrowser-Bc7rk5fI.mjs.map +0 -1
  257. package/dist/detectBrowser-DTbs_30X.js +0 -2
  258. package/dist/detectBrowser-DTbs_30X.js.map +0 -1
  259. package/dist/downshift.esm-Ncwetv0s.mjs +0 -3038
  260. package/dist/downshift.esm-Ncwetv0s.mjs.map +0 -1
  261. package/dist/downshift.esm-PfCOUbxq.js +0 -37
  262. package/dist/downshift.esm-PfCOUbxq.js.map +0 -1
  263. package/dist/floating-ui.utils.dom-CCN4I08l.js +0 -2
  264. package/dist/floating-ui.utils.dom-CCN4I08l.js.map +0 -1
  265. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +0 -136
  266. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +0 -1
  267. package/dist/index-0KYGKeVg.js +0 -2
  268. package/dist/index-0KYGKeVg.js.map +0 -1
  269. package/dist/index-1WIgmEZh.js +0 -2
  270. package/dist/index-1WIgmEZh.js.map +0 -1
  271. package/dist/index-BRi38DTc.mjs +0 -21
  272. package/dist/index-BRi38DTc.mjs.map +0 -1
  273. package/dist/index-BZAtNKwE.mjs +0 -71
  274. package/dist/index-BZAtNKwE.mjs.map +0 -1
  275. package/dist/index-BZPx6jYI.mjs +0 -9
  276. package/dist/index-BZPx6jYI.mjs.map +0 -1
  277. package/dist/index-BlkdpEIe.mjs +0 -55
  278. package/dist/index-BlkdpEIe.mjs.map +0 -1
  279. package/dist/index-BmAFn37q.mjs +0 -49
  280. package/dist/index-BmAFn37q.mjs.map +0 -1
  281. package/dist/index-C-J_tHdS.js +0 -6
  282. package/dist/index-C-J_tHdS.js.map +0 -1
  283. package/dist/index-C1qb0595.mjs +0 -28
  284. package/dist/index-C1qb0595.mjs.map +0 -1
  285. package/dist/index-C34GgsKQ.mjs +0 -54
  286. package/dist/index-C34GgsKQ.mjs.map +0 -1
  287. package/dist/index-CCKe-Mpx.mjs +0 -7
  288. package/dist/index-CCKe-Mpx.mjs.map +0 -1
  289. package/dist/index-CDBBjNXc.js +0 -2
  290. package/dist/index-CDBBjNXc.js.map +0 -1
  291. package/dist/index-CYjGhVvU.mjs +0 -243
  292. package/dist/index-CYjGhVvU.mjs.map +0 -1
  293. package/dist/index-ChLwd62c.js +0 -2
  294. package/dist/index-ChLwd62c.js.map +0 -1
  295. package/dist/index-Cjj_rUPu.js +0 -2
  296. package/dist/index-Cjj_rUPu.js.map +0 -1
  297. package/dist/index-CyMbLkj0.js +0 -2
  298. package/dist/index-CyMbLkj0.js.map +0 -1
  299. package/dist/index-DFZozV_h.mjs +0 -69
  300. package/dist/index-DFZozV_h.mjs.map +0 -1
  301. package/dist/index-DKuHkHFX.js +0 -2
  302. package/dist/index-DKuHkHFX.js.map +0 -1
  303. package/dist/index-DLHLIYPI.mjs +0 -16
  304. package/dist/index-DLHLIYPI.mjs.map +0 -1
  305. package/dist/index-DO-atGp-.js +0 -2
  306. package/dist/index-DO-atGp-.js.map +0 -1
  307. package/dist/index-DWlg8lkk.mjs +0 -179
  308. package/dist/index-DWlg8lkk.mjs.map +0 -1
  309. package/dist/index-DYxWvftI.js +0 -2
  310. package/dist/index-DYxWvftI.js.map +0 -1
  311. package/dist/index-D_lWkK39.mjs +0 -803
  312. package/dist/index-D_lWkK39.mjs.map +0 -1
  313. package/dist/index-DdkVj7D0.js +0 -18
  314. package/dist/index-DdkVj7D0.js.map +0 -1
  315. package/dist/index-De-6atSi.js +0 -2
  316. package/dist/index-De-6atSi.js.map +0 -1
  317. package/dist/index-DhGWNzsz.mjs +0 -83
  318. package/dist/index-DhGWNzsz.mjs.map +0 -1
  319. package/dist/index-Dkj4QRX8.js +0 -2
  320. package/dist/index-Dkj4QRX8.js.map +0 -1
  321. package/dist/index-DlIFg0Eu.mjs +0 -60
  322. package/dist/index-DlIFg0Eu.mjs.map +0 -1
  323. package/dist/index-DnaHaH_0.js +0 -2
  324. package/dist/index-DnaHaH_0.js.map +0 -1
  325. package/dist/index-MHF2-CYX.js +0 -2
  326. package/dist/index-MHF2-CYX.js.map +0 -1
  327. package/dist/index-MQ0c3ZX_.js +0 -2
  328. package/dist/index-MQ0c3ZX_.js.map +0 -1
  329. package/dist/index-MSR-vgWR.mjs +0 -37
  330. package/dist/index-MSR-vgWR.mjs.map +0 -1
  331. package/dist/index-VL0YEmOW.mjs +0 -125
  332. package/dist/index-VL0YEmOW.mjs.map +0 -1
  333. package/dist/index-tXqxYME3.js +0 -42
  334. package/dist/index-tXqxYME3.js.map +0 -1
  335. package/dist/inertValue-Bif5Sqs6.mjs +0 -522
  336. package/dist/inertValue-Bif5Sqs6.mjs.map +0 -1
  337. package/dist/inertValue-ShwihJSN.js +0 -5
  338. package/dist/inertValue-ShwihJSN.js.map +0 -1
  339. package/dist/useCollapsiblePanel-D1dCo0lf.js +0 -4
  340. package/dist/useCollapsiblePanel-D1dCo0lf.js.map +0 -1
  341. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +0 -287
  342. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +0 -1
  343. package/dist/useFocusWithin-CFNEka2I.js +0 -2
  344. package/dist/useFocusWithin-CFNEka2I.js.map +0 -1
  345. package/dist/useFocusWithin-CoL4390f.mjs +0 -796
  346. package/dist/useFocusWithin-CoL4390f.mjs.map +0 -1
  347. package/dist/useOpenChangeComplete-Dk-u_f2y.js +0 -2
  348. package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +0 -1
  349. package/dist/useOpenChangeComplete-RUbg6RBw.mjs +0 -582
  350. package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +0 -1
  351. package/dist/useTransitionStatus-CktVVKxz.mjs +0 -46
  352. package/dist/useTransitionStatus-CktVVKxz.mjs.map +0 -1
  353. package/dist/useTransitionStatus-CqbEyvIj.js +0 -2
  354. package/dist/useTransitionStatus-CqbEyvIj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../node_modules/@base-ui/react/esm/collapsible/root/stateAttributesMapping.js","../../../../node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRoot.js","../../../../node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTrigger.js","../../../../node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanelCssVars.js","../../../../node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanel.js","../../src/collapsible/useRenderSlot.tsx","../../src/collapsible/Content.tsx","../../src/collapsible/Root.tsx","../../src/collapsible/Trigger.tsx","../../src/collapsible/index.ts"],"sourcesContent":["import { collapsibleOpenStateMapping as baseMapping } from \"../../utils/collapsibleOpenStateMapping.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nexport const collapsibleStateAttributesMapping = {\n ...baseMapping,\n ...transitionStatusMapping\n};","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useCollapsibleRoot } from \"./useCollapsibleRoot.js\";\nimport { CollapsibleRootContext } from \"./CollapsibleRootContext.js\";\nimport { collapsibleStateAttributesMapping } from \"./stateAttributesMapping.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the collapsible.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Collapsible](https://base-ui.com/react/components/collapsible)\n */\nexport const CollapsibleRoot = /*#__PURE__*/React.forwardRef(function CollapsibleRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n defaultOpen = false,\n disabled = false,\n onOpenChange: onOpenChangeProp,\n open,\n ...elementProps\n } = componentProps;\n const onOpenChange = useStableCallback(onOpenChangeProp);\n const collapsible = useCollapsibleRoot({\n open,\n defaultOpen,\n onOpenChange,\n disabled\n });\n const state = React.useMemo(() => ({\n open: collapsible.open,\n disabled: collapsible.disabled,\n transitionStatus: collapsible.transitionStatus\n }), [collapsible.open, collapsible.disabled, collapsible.transitionStatus]);\n const contextValue = React.useMemo(() => ({\n ...collapsible,\n onOpenChange,\n state\n }), [collapsible, onOpenChange, state]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: collapsibleStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(CollapsibleRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") CollapsibleRoot.displayName = \"CollapsibleRoot\";","'use client';\n\nimport * as React from 'react';\nimport { triggerOpenStateMapping } from \"../../utils/collapsibleOpenStateMapping.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useButton } from \"../../use-button/index.js\";\nimport { useCollapsibleRootContext } from \"../root/CollapsibleRootContext.js\";\nconst stateAttributesMapping = {\n ...triggerOpenStateMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A button that opens and closes the collapsible panel.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Collapsible](https://base-ui.com/react/components/collapsible)\n */\nexport const CollapsibleTrigger = /*#__PURE__*/React.forwardRef(function CollapsibleTrigger(componentProps, forwardedRef) {\n const {\n panelId,\n open,\n handleTrigger,\n state,\n disabled: contextDisabled\n } = useCollapsibleRootContext();\n const {\n className,\n disabled = contextDisabled,\n id,\n render,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton\n });\n const props = React.useMemo(() => ({\n 'aria-controls': open ? panelId : undefined,\n 'aria-expanded': open,\n disabled,\n onClick: handleTrigger\n }), [panelId, disabled, open, handleTrigger]);\n const element = useRenderElement('button', componentProps, {\n state,\n ref: [forwardedRef, buttonRef],\n props: [props, elementProps, getButtonProps],\n stateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CollapsibleTrigger.displayName = \"CollapsibleTrigger\";","export let CollapsiblePanelCssVars = /*#__PURE__*/function (CollapsiblePanelCssVars) {\n /**\n * The collapsible panel's height.\n * @type {number}\n */\n CollapsiblePanelCssVars[\"collapsiblePanelHeight\"] = \"--collapsible-panel-height\";\n /**\n * The collapsible panel's width.\n * @type {number}\n */\n CollapsiblePanelCssVars[\"collapsiblePanelWidth\"] = \"--collapsible-panel-width\";\n return CollapsiblePanelCssVars;\n}({});","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { warn } from '@base-ui/utils/warn';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useCollapsibleRootContext } from \"../root/CollapsibleRootContext.js\";\nimport { collapsibleStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nimport { useCollapsiblePanel } from \"./useCollapsiblePanel.js\";\nimport { CollapsiblePanelCssVars } from \"./CollapsiblePanelCssVars.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\n/**\n * A panel with the collapsible contents.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Collapsible](https://base-ui.com/react/components/collapsible)\n */\nexport const CollapsiblePanel = /*#__PURE__*/React.forwardRef(function CollapsiblePanel(componentProps, forwardedRef) {\n const {\n className,\n hiddenUntilFound: hiddenUntilFoundProp,\n keepMounted: keepMountedProp,\n render,\n id: idProp,\n ...elementProps\n } = componentProps;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useIsoLayoutEffect(() => {\n if (hiddenUntilFoundProp && keepMountedProp === false) {\n warn('The `keepMounted={false}` prop on a Collapsible will be ignored when using `hiddenUntilFound` since it requires the Panel to remain mounted even when closed.');\n }\n }, [hiddenUntilFoundProp, keepMountedProp]);\n }\n const {\n abortControllerRef,\n animationTypeRef,\n height,\n mounted,\n onOpenChange,\n open,\n panelId,\n panelRef,\n runOnceAnimationsFinish,\n setDimensions,\n setHiddenUntilFound,\n setKeepMounted,\n setMounted,\n setPanelIdState,\n setOpen,\n setVisible,\n state,\n transitionDimensionRef,\n visible,\n width,\n transitionStatus\n } = useCollapsibleRootContext();\n const hiddenUntilFound = hiddenUntilFoundProp ?? false;\n const keepMounted = keepMountedProp ?? false;\n useIsoLayoutEffect(() => {\n if (idProp) {\n setPanelIdState(idProp);\n return () => {\n setPanelIdState(undefined);\n };\n }\n return undefined;\n }, [idProp, setPanelIdState]);\n useIsoLayoutEffect(() => {\n setHiddenUntilFound(hiddenUntilFound);\n }, [setHiddenUntilFound, hiddenUntilFound]);\n useIsoLayoutEffect(() => {\n setKeepMounted(keepMounted);\n }, [setKeepMounted, keepMounted]);\n const {\n props\n } = useCollapsiblePanel({\n abortControllerRef,\n animationTypeRef,\n externalRef: forwardedRef,\n height,\n hiddenUntilFound,\n id: panelId,\n keepMounted,\n mounted,\n onOpenChange,\n open,\n panelRef,\n runOnceAnimationsFinish,\n setDimensions,\n setMounted,\n setOpen,\n setVisible,\n transitionDimensionRef,\n visible,\n width\n });\n useOpenChangeComplete({\n open: open && transitionStatus === 'idle',\n ref: panelRef,\n onComplete() {\n if (!open) {\n return;\n }\n setDimensions({\n height: undefined,\n width: undefined\n });\n }\n });\n const panelState = React.useMemo(() => ({\n ...state,\n transitionStatus\n }), [state, transitionStatus]);\n const element = useRenderElement('div', componentProps, {\n state: panelState,\n ref: [forwardedRef, panelRef],\n props: [props, {\n style: {\n [CollapsiblePanelCssVars.collapsiblePanelHeight]: height === undefined ? 'auto' : `${height}px`,\n [CollapsiblePanelCssVars.collapsiblePanelWidth]: width === undefined ? 'auto' : `${width}px`\n }\n }, elementProps],\n stateAttributesMapping: collapsibleStateAttributesMapping\n });\n const shouldRender = keepMounted || hiddenUntilFound || !keepMounted && mounted;\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CollapsiblePanel.displayName = \"CollapsiblePanel\";","import { Slot } from '../slot'\n\nexport function useRenderSlot(asChild: boolean, defaultTag: string) {\n const Component = asChild ? Slot : defaultTag\n\n return asChild ? ({ ...props }) => <Component {...props} /> : undefined\n}\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface ContentProps extends ComponentProps<typeof Collapsible.Panel> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Content = ({\n asChild = false,\n className,\n children,\n hiddenUntilFound = true,\n ...props\n}: ContentProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <Collapsible.Panel\n data-spark-component=\"collapsible-content\"\n className={cx(\n 'overflow-hidden',\n 'h-[var(--collapsible-panel-height)]',\n 'transition-all duration-200',\n 'motion-reduce:transition-none',\n 'data-[starting-style]:h-0',\n 'data-[ending-style]:h-0',\n className\n )}\n render={renderSlot}\n hiddenUntilFound={hiddenUntilFound}\n {...props}\n >\n {children}\n </Collapsible.Panel>\n )\n}\n\nContent.displayName = 'Collapsible.Content'\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface RootProps extends ComponentProps<typeof Collapsible.Root> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Root = ({ asChild = false, children, ...props }: RootProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <Collapsible.Root data-spark-component=\"collapsible\" render={renderSlot} {...props}>\n {children}\n </Collapsible.Root>\n )\n}\n\nRoot.displayName = 'Collapsible'\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface TriggerProps extends ComponentProps<'button'> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Trigger = ({ asChild = false, children, ...props }: TriggerProps) => {\n const renderSlot = useRenderSlot(asChild, 'button')\n\n return (\n <Collapsible.Trigger data-spark-component=\"collapsible-trigger\" render={renderSlot} {...props}>\n {children}\n </Collapsible.Trigger>\n )\n}\n\nTrigger.displayName = 'Collapsible.Trigger'\n","import { Content } from './Content'\nimport { Root } from './Root'\nimport { Trigger } from './Trigger'\n\nexport const Collapsible: typeof Root & {\n Trigger: typeof Trigger\n Content: typeof Content\n} = Object.assign(Root, {\n Trigger,\n Content,\n})\n\nCollapsible.displayName = 'Collapsible'\nTrigger.displayName = 'Collapsible.Trigger'\nContent.displayName = 'Collapsible.Content'\n"],"names":["collapsibleStateAttributesMapping","baseMapping","transitionStatusMapping","CollapsibleRoot","React","componentProps","forwardedRef","render","className","defaultOpen","disabled","onOpenChangeProp","open","elementProps","onOpenChange","useStableCallback","collapsible","useCollapsibleRoot","state","contextValue","element","useRenderElement","_jsx","CollapsibleRootContext","stateAttributesMapping","triggerOpenStateMapping","CollapsibleTrigger","panelId","handleTrigger","contextDisabled","useCollapsibleRootContext","id","nativeButton","getButtonProps","buttonRef","useButton","props","CollapsiblePanelCssVars","CollapsiblePanel","hiddenUntilFoundProp","keepMountedProp","idProp","useIsoLayoutEffect","warn","abortControllerRef","animationTypeRef","height","mounted","panelRef","runOnceAnimationsFinish","setDimensions","setHiddenUntilFound","setKeepMounted","setMounted","setPanelIdState","setOpen","setVisible","transitionDimensionRef","visible","width","transitionStatus","hiddenUntilFound","keepMounted","useCollapsiblePanel","useOpenChangeComplete","panelState","useRenderSlot","asChild","defaultTag","Component","Slot","jsx","Content","children","renderSlot","Collapsible.Panel","cx","Root","Collapsible.Root","Trigger","Collapsible.Trigger","Collapsible"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/collapsible/useRenderSlot.tsx","../../src/collapsible/Content.tsx","../../src/collapsible/Root.tsx","../../src/collapsible/Trigger.tsx","../../src/collapsible/index.ts"],"sourcesContent":["import { Slot } from '../slot'\n\nexport function useRenderSlot(asChild: boolean, defaultTag: string) {\n const Component = asChild ? Slot : defaultTag\n\n return asChild ? ({ ...props }) => <Component {...props} /> : undefined\n}\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface ContentProps extends ComponentProps<typeof Collapsible.Panel> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Content = ({\n asChild = false,\n className,\n children,\n hiddenUntilFound = true,\n ...props\n}: ContentProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <Collapsible.Panel\n data-spark-component=\"collapsible-content\"\n className={cx(\n 'overflow-hidden',\n 'h-[var(--collapsible-panel-height)]',\n 'transition-all duration-200',\n 'motion-reduce:transition-none',\n 'data-[starting-style]:h-0',\n 'data-[ending-style]:h-0',\n className\n )}\n render={renderSlot}\n hiddenUntilFound={hiddenUntilFound}\n {...props}\n >\n {children}\n </Collapsible.Panel>\n )\n}\n\nContent.displayName = 'Collapsible.Content'\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface RootProps extends ComponentProps<typeof Collapsible.Root> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Root = ({ asChild = false, children, ...props }: RootProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <Collapsible.Root data-spark-component=\"collapsible\" render={renderSlot} {...props}>\n {children}\n </Collapsible.Root>\n )\n}\n\nRoot.displayName = 'Collapsible'\n","import { Collapsible } from '@base-ui/react/collapsible'\nimport { type ComponentProps } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\nexport interface TriggerProps extends ComponentProps<'button'> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n}\n\nexport const Trigger = ({ asChild = false, children, ...props }: TriggerProps) => {\n const renderSlot = useRenderSlot(asChild, 'button')\n\n return (\n <Collapsible.Trigger data-spark-component=\"collapsible-trigger\" render={renderSlot} {...props}>\n {children}\n </Collapsible.Trigger>\n )\n}\n\nTrigger.displayName = 'Collapsible.Trigger'\n","import { Content } from './Content'\nimport { Root } from './Root'\nimport { Trigger } from './Trigger'\n\nexport const Collapsible: typeof Root & {\n Trigger: typeof Trigger\n Content: typeof Content\n} = Object.assign(Root, {\n Trigger,\n Content,\n})\n\nCollapsible.displayName = 'Collapsible'\nTrigger.displayName = 'Collapsible.Trigger'\nContent.displayName = 'Collapsible.Content'\n"],"names":["useRenderSlot","asChild","defaultTag","Component","Slot","props","jsx","Content","className","children","hiddenUntilFound","renderSlot","Collapsible","cx","Root","Trigger"],"mappings":";;;;AAEO,SAASA,EAAcC,GAAkBC,GAAoB;AAClE,QAAMC,IAAYF,IAAUG,IAAOF;AAEnC,SAAOD,IAAU,CAAC,EAAE,GAAGI,EAAA,MAAY,gBAAAC,EAACH,GAAA,EAAW,GAAGE,EAAA,CAAO,IAAK;AAChE;ACOO,MAAME,IAAU,CAAC;AAAA,EACtB,SAAAN,IAAU;AAAA,EACV,WAAAO;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,GAAGL;AACL,MAAoB;AAClB,QAAMM,IAAaX,EAAcC,GAAS,KAAK;AAE/C,SACE,gBAAAK;AAAA,IAACM,EAAY;AAAA,IAAZ;AAAA,MACC,wBAAqB;AAAA,MACrB,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,QAAQG;AAAA,MACR,kBAAAD;AAAA,MACC,GAAGL;AAAA,MAEH,UAAAI;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAF,EAAQ,cAAc;AC/Bf,MAAMO,IAAO,CAAC,EAAE,SAAAb,IAAU,IAAO,UAAAQ,GAAU,GAAGJ,QAAuB;AAC1E,QAAMM,IAAaX,EAAcC,GAAS,KAAK;AAE/C,SACE,gBAAAK,EAACM,EAAY,MAAZ,EAAiB,wBAAqB,eAAc,QAAQD,GAAa,GAAGN,GAC1E,UAAAI,EAAA,CACH;AAEJ;AAEAK,EAAK,cAAc;ACVZ,MAAMC,IAAU,CAAC,EAAE,SAAAd,IAAU,IAAO,UAAAQ,GAAU,GAAGJ,QAA0B;AAChF,QAAMM,IAAaX,EAAcC,GAAS,QAAQ;AAElD,SACE,gBAAAK,EAACM,EAAY,SAAZ,EAAoB,wBAAqB,uBAAsB,QAAQD,GAAa,GAAGN,GACrF,UAAAI,EAAA,CACH;AAEJ;AAEAM,EAAQ,cAAc;AClBf,MAAMH,IAGT,OAAO,OAAOE,GAAM;AAAA,EACtB,SAAAC;AAAA,EACA,SAAAR;AACF,CAAC;AAEDK,EAAY,cAAc;AAC1BG,EAAQ,cAAc;AACtBR,EAAQ,cAAc;"}
@@ -0,0 +1,35 @@
1
+ import { Combobox as Root } from './Combobox';
2
+ import { ClearButton } from './ComboboxClearButton';
3
+ import { ComboboxProvider, useComboboxContext } from './ComboboxContext';
4
+ import { Disclosure } from './ComboboxDisclosure';
5
+ import { Empty } from './ComboboxEmpty';
6
+ import { Group } from './ComboboxGroup';
7
+ import { Input } from './ComboboxInput';
8
+ import { Item } from './ComboboxItem';
9
+ import { ItemIndicator } from './ComboboxItemIndicator';
10
+ import { Items } from './ComboboxItems';
11
+ import { ItemText } from './ComboboxItemText';
12
+ import { Label } from './ComboboxLabel';
13
+ import { LeadingIcon } from './ComboboxLeadingIcon';
14
+ import { Popover } from './ComboboxPopover';
15
+ import { Portal } from './ComboboxPortal';
16
+ import { SelectedItems } from './ComboboxSelectedItems';
17
+ import { Trigger } from './ComboboxTrigger';
18
+ export { useComboboxContext, ComboboxProvider };
19
+ export declare const Combobox: typeof Root & {
20
+ Group: typeof Group;
21
+ Item: typeof Item;
22
+ Items: typeof Items;
23
+ ItemText: typeof ItemText;
24
+ ItemIndicator: typeof ItemIndicator;
25
+ Label: typeof Label;
26
+ Popover: typeof Popover;
27
+ Trigger: typeof Trigger;
28
+ LeadingIcon: typeof LeadingIcon;
29
+ Empty: typeof Empty;
30
+ Input: typeof Input;
31
+ Disclosure: typeof Disclosure;
32
+ SelectedItems: typeof SelectedItems;
33
+ ClearButton: typeof ClearButton;
34
+ Portal: typeof Portal;
35
+ };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),J=require("../form-field/index.js"),we=require("@spark-ui/hooks/use-combined-state"),I=require("../downshift.esm-PfCOUbxq.js"),l=require("react"),M=require("../popover/index.js"),Pe=require("@spark-ui/icons/DeleteOutline"),x=require("../index-DnaHaH_0.js"),A=require("../Icon-Bf0XrmiR.js"),L=require("@spark-ui/hooks/use-merge-refs"),Ze=require("@spark-ui/icons/ArrowHorizontalDown"),et=require("../IconButton-Bf-EDzpI.js"),tt=require("../VisuallyHidden-AoRh4WRK.js"),ot=require("@spark-ui/icons/Check"),st=require("../Spinner-DK8VEsaR.js");function Ne(e,o){let t=0;for(const[s]of e.entries()){if(s===o)return t;t++}return-1}const nt=(e,o)=>{let t=0;for(const s of e.keys()){if(t===o)return s;t++}},rt=(e,o)=>{const t=nt(e,o);return t!==void 0?e.get(t):void 0},W=e=>e?e.type.displayName:"",Se=(e,o=[])=>(l.Children.forEach(e,t=>{if(l.isValidElement(t)){if(W(t)==="Combobox.Item"){const s=t.props;o.push({value:s.value,disabled:!!s.disabled,text:je(s.children)})}t.props.children&&Se(t.props.children,o)}}),o),Te=e=>{if(!e)return"";for(const o of l.Children.toArray(e))if(l.isValidElement(o)){const t=o;if(W(t)==="Combobox.ItemText")return t.props.children;const s=Te(t.props.children);if(s)return s}return""},je=e=>typeof e=="string"?e:Te(e),ve=e=>{const o=new Map;return Se(e).forEach(t=>{o.set(t.value,t)}),o},Ee=(e,o)=>l.Children.toArray(e).some(t=>l.isValidElement(t)?W(t)===o?!0:t.props.children?Ee(t.props.children,o):!1:!1),F=(e,o)=>l.Children.toArray(e).filter(l.isValidElement).find(t=>o===W(t)||""),lt=({multiselect:e,selectedItems:o,allowCustomValue:t=!1,setSelectedItems:s,triggerAreaRef:i,items:r})=>(c,{changes:n,type:p})=>{const m=i.current?.contains?.(document.activeElement);switch(p){case I.useCombobox.stateChangeTypes.InputClick:return{...n,isOpen:!0};case I.useCombobox.stateChangeTypes.InputKeyDownEnter:case I.useCombobox.stateChangeTypes.ItemClick:{const f={...n};if(n.selectedItem!=null){f.inputValue="",f.isOpen=!0;const T=Ne(r,n.selectedItem.value);f.highlightedIndex=T;const j=e.selectedItems.some(y=>y.value===n.selectedItem?.value)?o.filter(y=>y.value!==n.selectedItem?.value):[...o,n.selectedItem];s(j)}return f}case I.useCombobox.stateChangeTypes.ToggleButtonClick:return{...n,inputValue:t?n.inputValue:""};case I.useCombobox.stateChangeTypes.InputChange:return{...n,selectedItem:n.highlightedIndex===-1?null:n.selectedItem};case I.useCombobox.stateChangeTypes.InputBlur:return{...n,inputValue:t?n.inputValue:"",isOpen:m};default:return n}},it=({filteredItems:e,allowCustomValue:o=!1,setSelectedItem:t})=>(i,{changes:r,type:u})=>{const c=e.find(n=>n.text.toLowerCase()===i.inputValue.toLowerCase());switch(u){case I.useCombobox.stateChangeTypes.InputKeyDownEscape:return r.selectedItem||t(null),r;case I.useCombobox.stateChangeTypes.ItemClick:case I.useCombobox.stateChangeTypes.InputKeyDownEnter:return r.selectedItem&&t(r.selectedItem),r;case I.useCombobox.stateChangeTypes.InputClick:return{...r,isOpen:!0};case I.useCombobox.stateChangeTypes.ToggleButtonClick:case I.useCombobox.stateChangeTypes.InputBlur:return o?r:i.inputValue===""?(t(null),{...r,selectedItem:null}):c?(t(c),{...r,selectedItem:c,inputValue:c.text}):i.selectedItem?{...r,inputValue:i.selectedItem.text}:{...r,inputValue:""};default:return r}},Oe=l.createContext(null),U=(e,o)=>o?new Map(Array.from(e).filter(([t,{text:s}])=>s.toLowerCase().includes(o.toLowerCase()))):e,K=":combobox",ke=({children:e,state:o,allowCustomValue:t=!1,filtering:s="auto",disabled:i=!1,multiple:r=!1,readOnly:u=!1,wrap:c=!0,value:n,defaultValue:p,onValueChange:m,open:f,defaultOpen:T,onOpenChange:C,isLoading:j})=>{const y=l.useRef(!1),[P,N]=l.useState(""),[k,w]=l.useState(s==="strict"),R=l.useRef(null),E=l.useRef(null),[$,B]=l.useState(null),[O]=we.useCombinedState(n,p),G=s==="strict"||s==="auto"&&k,[h,Ae]=l.useState(ve(e)),[z,me]=l.useState(G?U(h,P):h),[pe,be]=l.useState(h.get(O)||null),[xe,fe]=l.useState(O?[...h.values()].filter(d=>O.includes(d.value)):[]),Ie=d=>{w(!1),d?.value!==pe?.value&&(be(d),setTimeout(()=>{m?.(d?.value)},0))},H=d=>{fe(d),setTimeout(()=>{m?.(d.map(g=>g.value))},0)};l.useEffect(()=>{if(!y.current){y.current=!0;return}if(r){const d=O.reduce((g,b)=>{const S=h.get(b);return S?[...g,S]:g},[]);fe(O?d:[])}else be(h.get(O)||null)},[r?JSON.stringify(O):O]);const D=J.useFormFieldControl(),Le=`${K}-label-${l.useId()}`,Be=`${K}-field-${l.useId()}`,Ce=D.id||Be,ze=D.labelId||Le,qe=D.state||o,Ke=D.disabled??i,We=D.readOnly??u,[ye,$e]=l.useState(Ee(e,"Combobox.Popover")),[Ge,He]=l.useState(!1),[_e,Ue]=l.useState("mouse");l.useEffect(()=>{me(G?U(h,P):h)},[P,h]);const ge=I.useMultipleSelection({selectedItems:xe,stateReducer:(d,{type:g,changes:b})=>{const S=I.useMultipleSelection.stateChangeTypes;switch(g){case S.SelectedItemKeyDownBackspace:case S.SelectedItemKeyDownDelete:{H(b.selectedItems||[]);let V;return g===S.SelectedItemKeyDownDelete?V=d?.activeIndex===b.selectedItems?.length?-1:d.activeIndex:V=(b?.activeIndex||0)-1>=0?d.activeIndex-1:b?.activeIndex,{...b,activeIndex:V}}case S.SelectedItemClick:return E.current&&E.current.focus(),{...b,activeIndex:-1};case S.FunctionRemoveSelectedItem:return{...b,activeIndex:-1};case S.DropdownKeyDownNavigationPrevious:return _.closeMenu(),b;default:return b}}}),he=Array.from(z.values());l.useEffect(()=>{$?.(P||"")},[P]);const _=I.useCombobox({inputId:Ce,items:he,selectedItem:r?void 0:pe,id:Ce,labelId:ze,inputValue:P,onInputValueChange:({inputValue:d})=>{if(N(d),G){const g=U(h,d||"");me(g)}},initialIsOpen:T,...f!=null&&{isOpen:f},onIsOpenChange:d=>{d.isOpen!=null&&C?.(d.isOpen)},itemToString:d=>d?.text,isItemDisabled:d=>{const g=!!P&&!he.some(b=>d.value===b.value);return d.disabled||g},stateReducer:r?lt({multiselect:ge,selectedItems:xe,allowCustomValue:t,setSelectedItems:H,triggerAreaRef:R,items:h}):it({allowCustomValue:t,setSelectedItem:Ie,filteredItems:[...z.values()]}),scrollIntoView:d=>{d&&d.scrollIntoView({block:"nearest"})}});l.useEffect(()=>{const d=ve(e),g=[...h.values()],b=[...d.values()];(g.length!==b.length||g.some((V,q)=>{const Qe=V.value!==b[q]?.value,Ye=V.text!==b[q]?.text;return Qe||Ye}))&&Ae(d)},[e]);const[Je,Xe]=ye?[M.Popover,{open:!0}]:[l.Fragment,{}];return a.jsx(Oe.Provider,{value:{itemsMap:h,filteredItemsMap:z,highlightedItem:rt(z,_.highlightedIndex),multiple:r,disabled:Ke,readOnly:We,areSelectedItemsInTrigger:Ge,setAreSelectedItemsInTrigger:He,hasPopover:ye,setHasPopover:$e,state:qe,lastInteractionType:_e,setLastInteractionType:Ue,wrap:c,innerInputRef:E,triggerAreaRef:R,..._,...ge,setInputValue:N,selectItem:Ie,setSelectedItems:H,isLoading:j,setOnInputValueChange:B,isTyping:k,setIsTyping:w},children:a.jsx(Je,{...Xe,children:e})})},v=()=>{const e=l.useContext(Oe);if(!e)throw Error("useComboboxContext must be used within a Combobox provider");return e},Re=({children:e,...o})=>a.jsx(ke,{...o,children:e});Re.displayName="Combobox";const X=({className:e,tabIndex:o=-1,onClick:t,ref:s,...i})=>{const r=v(),u=c=>{c.stopPropagation(),r.multiple?r.setSelectedItems([]):r.selectItem(null),r.setInputValue(""),r.innerInputRef.current&&r.innerInputRef.current.focus(),t&&t(c)};return a.jsx("button",{ref:s,className:x.cx(e,"h-sz-44 text-neutral hover:text-neutral-hovered"),tabIndex:o,onClick:u,type:"button",...i,children:a.jsx(A.Icon,{size:"sm",children:a.jsx(Pe.DeleteOutline,{})})})};X.displayName="Combobox.ClearButton";const Q=({className:e,closedLabel:o,openedLabel:t,intent:s="neutral",design:i="ghost",size:r="sm",ref:u,...c})=>{const n=v(),{ref:p,...m}=n.getToggleButtonProps({disabled:n.disabled||n.readOnly,onClick:C=>{C.stopPropagation()}}),f=m["aria-expanded"],T=L.useMergeRefs(u,p);return a.jsx(et.IconButton,{ref:T,className:x.cx(e,"ml-sm mt-[calc((44px-32px)/2)]"),intent:s,design:i,size:r,...m,...c,"aria-label":f?t:o,disabled:n.disabled,children:a.jsx(A.Icon,{className:x.cx("shrink-0","rotate-0 transition duration-100 ease-in",{"rotate-180":f}),size:"sm",children:a.jsx(Ze.ArrowHorizontalDown,{})})})};Q.displayName="Combobox.Disclosure";const Y=({className:e,children:o,ref:t})=>v().filteredItemsMap.size===0?a.jsx("div",{ref:t,className:x.cx("px-lg py-md text-body-1 text-on-surface/dim-1",e),children:o}):null;Y.displayName="Combobox.Empty";const Ve=l.createContext(null),at=({children:e})=>{const o=`${K}-group-label-${l.useId()}`;return a.jsx(Ve.Provider,{value:{groupLabelId:o},children:e})},De=()=>{const e=l.useContext(Ve);if(!e)throw Error("useComboboxGroupContext must be used within a ComboboxGroup provider");return e},Z=({children:e,ref:o,...t})=>a.jsx(at,{children:a.jsx(ct,{ref:o,...t,children:e})}),ct=({children:e,className:o,ref:t})=>{const s=v(),i=De();return l.Children.toArray(e).some(u=>l.isValidElement(u)&&s.filteredItemsMap.get(u.props.value))?a.jsx("div",{ref:t,role:"group","aria-labelledby":i.groupLabelId,className:x.cx(o),children:e}):null};Z.displayName="Combobox.Group";const ee=({"aria-label":e,className:o,placeholder:t,value:s,defaultValue:i,onValueChange:r,ref:u,...c})=>{const n=v(),p=J.useFormFieldControl(),[m]=we.useCombinedState(s,i),{isInvalid:f,description:T}=p;l.useEffect(()=>{m!=null&&n.setInputValue(m)},[m]),l.useEffect(()=>{r&&n.setOnInputValueChange(()=>r),!n.multiple&&n.selectedItem&&n.setInputValue(n.selectedItem.text)},[]);const C=n.hasPopover?M.Popover.Trigger:l.Fragment,j=n.hasPopover?{asChild:!0,type:void 0}:{},y=n.getDropdownProps(),P=L.useMergeRefs(u,n.innerInputRef,y.ref),N=n.getInputProps({disabled:n.disabled||n.readOnly,...y,onKeyDown:E=>{y.onKeyDown?.(E),n.setLastInteractionType("keyboard"),n.setIsTyping(!0)},onChange:E=>{n.setInputValue(E.target.value)},ref:P}),k=n.multiple?!n.areSelectedItemsInTrigger||n.selectedItems.length===0:n.selectedItem===null;function w(E,$){return B=>{E?.(B),$?.(B)}}const R={onBlur:w(c.onBlur,N.onBlur),onChange:w(c.onChange,N.onChange),onClick:w(c.onClick,N.onClick),onKeyDown:w(c.onKeyDown,N.onKeyDown)};return a.jsxs(a.Fragment,{children:[e&&a.jsx(tt.VisuallyHidden,{children:a.jsx("label",{...n.getLabelProps(),children:e})}),a.jsx(C,{...j,children:a.jsx("input",{"data-spark-component":"combobox-input",type:"text",...k&&{placeholder:t},className:x.cx("max-w-full shrink-0 grow basis-[80px]","h-sz-28 bg-surface px-sm text-body-1 text-ellipsis outline-hidden","disabled:text-on-surface/dim-3 disabled:cursor-not-allowed disabled:bg-transparent","read-only:text-on-surface read-only:cursor-default read-only:bg-transparent",o),...c,...N,...R,value:n.inputValue,"aria-label":e,disabled:n.disabled,readOnly:n.readOnly,"aria-invalid":f,"aria-describedby":T})})]})};ee.displayName="Combobox.Input";const Fe=l.createContext(null),ut=({value:e,disabled:o=!1,children:t})=>{const s=v(),[i,r]=l.useState(void 0),u=Ne(s.filteredItemsMap,e),c={disabled:o,value:e,text:je(t)},n=s.multiple?s.selectedItems.some(p=>p.value===e):s.selectedItem?.value===e;return a.jsx(Fe.Provider,{value:{textId:i,setTextId:r,isSelected:n,itemData:c,index:u,disabled:o},children:t})},te=()=>{const e=l.useContext(Fe);if(!e)throw Error("useComboboxItemContext must be used within a ComboboxItem provider");return e},oe=({children:e,ref:o,...t})=>{const{value:s,disabled:i}=t;return a.jsx(ut,{value:s,disabled:i,children:a.jsx(mt,{ref:o,...t,children:e})})},dt=x.cva("px-lg py-md text-body-1",{variants:{selected:{true:"font-bold"},disabled:{true:"opacity-dim-3 cursor-not-allowed",false:"cursor-pointer"},highlighted:{true:""},interactionType:{mouse:"",keyboard:""}},compoundVariants:[{highlighted:!0,interactionType:"mouse",class:"bg-surface-hovered"},{highlighted:!0,interactionType:"keyboard",class:"u-outline"}]}),mt=({className:e,disabled:o=!1,value:t,children:s,ref:i,...r})=>{const u=v(),c=te(),n=!!u.filteredItemsMap.get(t),{ref:p,...m}=u.getItemProps({item:c.itemData,index:c.index}),f=L.useMergeRefs(i,p);return n?a.jsx("li",{ref:f,className:x.cx(dt({selected:c.isSelected,disabled:o,highlighted:u.highlightedItem?.value===t,interactionType:u.lastInteractionType,className:e})),...m,...r,"aria-selected":c.isSelected,"aria-labelledby":c.textId,children:s},t):null};oe.displayName="Combobox.Item";const se=({className:e,children:o,label:t,ref:s})=>{const{disabled:i,isSelected:r}=te(),u=o||a.jsx(A.Icon,{size:"sm",children:a.jsx(ot.Check,{"aria-label":t})});return a.jsx("span",{ref:s,className:x.cx("min-h-sz-16 min-w-sz-16 flex",i&&"opacity-dim-3",e),children:r&&u})};se.displayName="Combobox.ItemIndicator";const ne=({children:e,className:o,ref:t,...s})=>{const i=v(),{ref:r,...u}=i.getMenuProps({onMouseMove:()=>{i.setLastInteractionType("mouse")}}),c=l.useRef(null),n=L.useMergeRefs(t,r,c),p=i.hasPopover?i.isOpen:!0,m=i.hasPopover&&!p;return l.useLayoutEffect(()=>{c.current?.parentElement&&(c.current.parentElement.style.pointerEvents=m?"none":"",c.current.style.pointerEvents=m?"none":"")},[m]),a.jsx("ul",{ref:n,className:x.cx(o,"flex flex-col",p?"block":"pointer-events-none invisible opacity-0",i.hasPopover&&"p-lg",i.isLoading&&"items-center overflow-y-auto"),...s,...u,"aria-busy":i.isLoading,"data-spark-component":"combobox-items",children:i.isLoading?a.jsx(st.Spinner,{size:"sm"}):e})};ne.displayName="Combobox.Items";const re=({children:e,className:o,ref:t})=>{const s=`${K}-item-text-${l.useId()}`,{setTextId:i}=te();return l.useEffect(()=>(i(s),()=>i(void 0))),a.jsx("span",{id:s,className:x.cx("inline",o),ref:t,children:e})};re.displayName="Combobox.ItemText";const le=({children:e,className:o,ref:t})=>{const s=De();return a.jsx("div",{ref:t,id:s.groupLabelId,className:x.cx("px-md py-sm text-body-2 text-neutral italic",o),children:e})};le.displayName="Combobox.Label";const ie=({children:e})=>a.jsx(A.Icon,{size:"sm",className:"h-sz-44 shrink-0",children:e});ie.displayName="Combobox.LeadingIcon";const ae=({children:e,matchTriggerWidth:o=!0,sideOffset:t=4,className:s,ref:i,...r})=>{const u=v();return l.useEffect(()=>(u.setHasPopover(!0),()=>u.setHasPopover(!1)),[]),a.jsx(M.Popover.Content,{ref:i,inset:!0,asChild:!0,matchTriggerWidth:o,className:x.cx("z-dropdown! relative",s),sideOffset:t,onOpenAutoFocus:c=>{c.preventDefault()},...r,"data-spark-component":"combobox-popover",children:e})};ae.displayName="Combobox.Popover";const ce=({children:e,...o})=>a.jsx(M.Popover.Portal,{...o,children:e});ce.displayName="Combobox.Portal";const pt=({item:e,index:o})=>{const t=v(),s=!t.disabled&&!t.readOnly,i=n=>{const p=n.target;t.lastInteractionType==="keyboard"&&p.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},{disabled:r,...u}=t.getSelectedItemProps({disabled:t.disabled||t.readOnly,selectedItem:e,index:o}),c=r?"button":"span";return a.jsxs(c,{role:"presentation","data-spark-component":"combobox-selected-item",className:x.cx("h-sz-28 bg-neutral-container flex items-center rounded-md align-middle","text-body-2 text-on-neutral-container","disabled:opacity-dim-3 disabled:cursor-not-allowed","focus-visible:u-outline-inset outline-hidden",{"px-md":!s,"pl-md":s}),...u,tabIndex:-1,...r&&{disabled:!0},onFocus:i,children:[a.jsx("span",{className:x.cx("line-clamp-1 overflow-x-hidden leading-normal break-all text-ellipsis",{"w-max":!t.wrap}),children:e.text}),t.disabled,s&&a.jsx("button",{type:"button",tabIndex:-1,"aria-hidden":!0,className:"px-md h-full cursor-pointer",onClick:n=>{n.stopPropagation();const p=t.selectedItems.filter(m=>m.value!==e.value);t.setSelectedItems(p),t.innerInputRef.current&&t.innerInputRef.current.focus({preventScroll:!0})},children:a.jsx(A.Icon,{size:"sm",children:a.jsx(Pe.DeleteOutline,{})})})]},`selected-item-${o}`)},ue=()=>{const e=v();return e.multiple&&e.selectedItems.length?a.jsx(a.Fragment,{children:e.selectedItems.map((o,t)=>a.jsx(pt,{item:o,index:t},o.value))}):null};ue.displayName="Combobox.SelectedItems";const bt=x.cva(["flex items-start gap-md min-h-sz-44 text-body-1","h-fit rounded-lg px-lg","ring-1 outline-hidden ring-inset focus-within:ring-2 focus-within:ring-focus"],{variants:{allowWrap:{true:"",false:"h-sz-44"},state:{undefined:"ring-outline",error:"ring-error",alert:"ring-alert",success:"ring-success"},disabled:{true:"cursor-not-allowed border-outline bg-on-surface/dim-5 text-on-surface/dim-3"},readOnly:{true:"cursor-default bg-on-surface/dim-5 text-on-surface"}},compoundVariants:[{disabled:!1,state:void 0,class:"default:hover:ring-outline-high"},{disabled:!1,readOnly:!1,class:"bg-surface text-on-surface cursor-text"}],defaultVariants:{state:void 0,disabled:!1,readOnly:!1}}),xt=(e,o)=>{const t=l.useRef(null);l.useEffect(()=>{const s=()=>{const r=e.current?.scrollWidth||null;t.current&&r&&r>t.current&&o(),t.current=r,requestAnimationFrame(s)},i=requestAnimationFrame(s);return()=>cancelAnimationFrame(i)},[e])},de=({className:e,children:o,ref:t})=>{const s=v(),i=J.useFormFieldControl(),r=F(o,"Combobox.LeadingIcon"),u=F(o,"Combobox.SelectedItems"),c=F(o,"Combobox.Input"),n=F(o,"Combobox.ClearButton"),p=F(o,"Combobox.Disclosure"),[m,f]=s.hasPopover?[M.Popover.Anchor,{asChild:!0,type:void 0}]:[l.Fragment,{}],T=L.useMergeRefs(t,s.triggerAreaRef),C=l.useRef(null),j=i.disabled||s.disabled,y=i.readOnly||s.readOnly,P=!!n&&!j&&!y,N=()=>{if(C.current&&!s.wrap){const{scrollWidth:w,clientWidth:R}=C.current;C.current.scrollLeft=w-R}};xt(C,N);const k=!!u;return l.useEffect(()=>{s.setAreSelectedItemsInTrigger(k)},[k]),l.useEffect(()=>{const w=new ResizeObserver(N);return C.current&&w.observe(C.current),()=>{w.disconnect()}},[]),a.jsx(a.Fragment,{children:a.jsx(m,{...f,children:a.jsxs("div",{ref:T,className:bt({className:e,state:s.state,disabled:j,readOnly:y,allowWrap:s.wrap}),onClick:()=>{!s.isOpen&&!j&&!y&&(s.openMenu(),s.innerInputRef.current&&s.innerInputRef.current.focus())},children:[r,a.jsxs("div",{ref:C,className:x.cx("min-w-none gap-sm py-md inline-flex grow items-start",s.wrap?"flex-wrap":"u-no-scrollbar overflow-x-auto p-[2px]"),children:[u,c]}),P&&n,p]})})})};de.displayName="Combobox.Trigger";const Me=Object.assign(Re,{Group:Z,Item:oe,Items:ne,ItemText:re,ItemIndicator:se,Label:le,Popover:ae,Trigger:de,LeadingIcon:ie,Empty:Y,Input:ee,Disclosure:Q,SelectedItems:ue,ClearButton:X,Portal:ce});Me.displayName="Combobox";Z.displayName="Combobox.Group";ne.displayName="Combobox.Items";oe.displayName="Combobox.Item";re.displayName="Combobox.ItemText";se.displayName="Combobox.ItemIndicator";le.displayName="Combobox.Label";ae.displayName="Combobox.Popover";de.displayName="Combobox.Trigger";ie.displayName="Combobox.LeadingIcon";Y.displayName="Combobox.Empty";ee.displayName="Combobox.Input";Q.displayName="Combobox.Disclosure";ue.displayName="Combobox.SelectedItems";X.displayName="Combobox.ClearButton";ce.displayName="Combobox.Portal";exports.Combobox=Me;exports.ComboboxProvider=ke;exports.useComboboxContext=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),J=require("@spark-ui/components/form-field"),we=require("@spark-ui/hooks/use-combined-state"),I=require("downshift"),l=require("react"),M=require("../popover/index.js"),Pe=require("@spark-ui/icons/DeleteOutline"),x=require("class-variance-authority"),A=require("../Icon-CF0W0LKr.js"),L=require("@spark-ui/hooks/use-merge-refs"),Ze=require("@spark-ui/icons/ArrowHorizontalDown"),et=require("../IconButton-D3g86WpZ.js"),tt=require("../VisuallyHidden-CB6Nx76j.js"),ot=require("@spark-ui/icons/Check"),st=require("../Spinner-_Kffli3B.js");function Ne(e,o){let t=0;for(const[s]of e.entries()){if(s===o)return t;t++}return-1}const nt=(e,o)=>{let t=0;for(const s of e.keys()){if(t===o)return s;t++}},rt=(e,o)=>{const t=nt(e,o);return t!==void 0?e.get(t):void 0},$=e=>e?e.type.displayName:"",Se=(e,o=[])=>(l.Children.forEach(e,t=>{if(l.isValidElement(t)){if($(t)==="Combobox.Item"){const s=t.props;o.push({value:s.value,disabled:!!s.disabled,text:je(s.children)})}t.props.children&&Se(t.props.children,o)}}),o),Te=e=>{if(!e)return"";for(const o of l.Children.toArray(e))if(l.isValidElement(o)){const t=o;if($(t)==="Combobox.ItemText")return t.props.children;const s=Te(t.props.children);if(s)return s}return""},je=e=>typeof e=="string"?e:Te(e),ve=e=>{const o=new Map;return Se(e).forEach(t=>{o.set(t.value,t)}),o},Ee=(e,o)=>l.Children.toArray(e).some(t=>l.isValidElement(t)?$(t)===o?!0:t.props.children?Ee(t.props.children,o):!1:!1),F=(e,o)=>l.Children.toArray(e).filter(l.isValidElement).find(t=>o===$(t)||""),lt=({multiselect:e,selectedItems:o,allowCustomValue:t=!1,setSelectedItems:s,triggerAreaRef:a,items:r})=>(c,{changes:n,type:p})=>{const m=a.current?.contains?.(document.activeElement);switch(p){case I.useCombobox.stateChangeTypes.InputClick:return{...n,isOpen:!0};case I.useCombobox.stateChangeTypes.InputKeyDownEnter:case I.useCombobox.stateChangeTypes.ItemClick:{const f={...n};if(n.selectedItem!=null){f.inputValue="",f.isOpen=!0;const T=Ne(r,n.selectedItem.value);f.highlightedIndex=T;const j=e.selectedItems.some(y=>y.value===n.selectedItem?.value)?o.filter(y=>y.value!==n.selectedItem?.value):[...o,n.selectedItem];s(j)}return f}case I.useCombobox.stateChangeTypes.ToggleButtonClick:return{...n,inputValue:t?n.inputValue:""};case I.useCombobox.stateChangeTypes.InputChange:return{...n,selectedItem:n.highlightedIndex===-1?null:n.selectedItem};case I.useCombobox.stateChangeTypes.InputBlur:return{...n,inputValue:t?n.inputValue:"",isOpen:m};default:return n}},at=({filteredItems:e,allowCustomValue:o=!1,setSelectedItem:t})=>(a,{changes:r,type:u})=>{const c=e.find(n=>n.text.toLowerCase()===a.inputValue.toLowerCase());switch(u){case I.useCombobox.stateChangeTypes.InputKeyDownEscape:return r.selectedItem||t(null),r;case I.useCombobox.stateChangeTypes.ItemClick:case I.useCombobox.stateChangeTypes.InputKeyDownEnter:return r.selectedItem&&t(r.selectedItem),r;case I.useCombobox.stateChangeTypes.InputClick:return{...r,isOpen:!0};case I.useCombobox.stateChangeTypes.ToggleButtonClick:case I.useCombobox.stateChangeTypes.InputBlur:return o?r:a.inputValue===""?(t(null),{...r,selectedItem:null}):c?(t(c),{...r,selectedItem:c,inputValue:c.text}):a.selectedItem?{...r,inputValue:a.selectedItem.text}:{...r,inputValue:""};default:return r}},Oe=l.createContext(null),U=(e,o)=>o?new Map(Array.from(e).filter(([t,{text:s}])=>s.toLowerCase().includes(o.toLowerCase()))):e,K=":combobox",ke=({children:e,state:o,allowCustomValue:t=!1,filtering:s="auto",disabled:a=!1,multiple:r=!1,readOnly:u=!1,wrap:c=!0,value:n,defaultValue:p,onValueChange:m,open:f,defaultOpen:T,onOpenChange:C,isLoading:j})=>{const y=l.useRef(!1),[P,N]=l.useState(""),[k,w]=l.useState(s==="strict"),R=l.useRef(null),E=l.useRef(null),[W,B]=l.useState(null),[O]=we.useCombinedState(n,p),G=s==="strict"||s==="auto"&&k,[h,Ae]=l.useState(ve(e)),[z,me]=l.useState(G?U(h,P):h),[pe,be]=l.useState(h.get(O)||null),[xe,fe]=l.useState(O?[...h.values()].filter(d=>O.includes(d.value)):[]),Ie=d=>{w(!1),d?.value!==pe?.value&&(be(d),setTimeout(()=>{m?.(d?.value)},0))},H=d=>{fe(d),setTimeout(()=>{m?.(d.map(g=>g.value))},0)};l.useEffect(()=>{if(!y.current){y.current=!0;return}if(r){const d=O.reduce((g,b)=>{const S=h.get(b);return S?[...g,S]:g},[]);fe(O?d:[])}else be(h.get(O)||null)},[r?JSON.stringify(O):O]);const D=J.useFormFieldControl(),Le=`${K}-label-${l.useId()}`,Be=`${K}-field-${l.useId()}`,Ce=D.id||Be,ze=D.labelId||Le,qe=D.state||o,Ke=D.disabled??a,$e=D.readOnly??u,[ye,We]=l.useState(Ee(e,"Combobox.Popover")),[Ge,He]=l.useState(!1),[_e,Ue]=l.useState("mouse");l.useEffect(()=>{me(G?U(h,P):h)},[P,h]);const ge=I.useMultipleSelection({selectedItems:xe,stateReducer:(d,{type:g,changes:b})=>{const S=I.useMultipleSelection.stateChangeTypes;switch(g){case S.SelectedItemKeyDownBackspace:case S.SelectedItemKeyDownDelete:{H(b.selectedItems||[]);let V;return g===S.SelectedItemKeyDownDelete?V=d?.activeIndex===b.selectedItems?.length?-1:d.activeIndex:V=(b?.activeIndex||0)-1>=0?d.activeIndex-1:b?.activeIndex,{...b,activeIndex:V}}case S.SelectedItemClick:return E.current&&E.current.focus(),{...b,activeIndex:-1};case S.FunctionRemoveSelectedItem:return{...b,activeIndex:-1};case S.DropdownKeyDownNavigationPrevious:return _.closeMenu(),b;default:return b}}}),he=Array.from(z.values());l.useEffect(()=>{W?.(P||"")},[P]);const _=I.useCombobox({inputId:Ce,items:he,selectedItem:r?void 0:pe,id:Ce,labelId:ze,inputValue:P,onInputValueChange:({inputValue:d})=>{if(N(d),G){const g=U(h,d||"");me(g)}},initialIsOpen:T,...f!=null&&{isOpen:f},onIsOpenChange:d=>{d.isOpen!=null&&C?.(d.isOpen)},itemToString:d=>d?.text,isItemDisabled:d=>{const g=!!P&&!he.some(b=>d.value===b.value);return d.disabled||g},stateReducer:r?lt({multiselect:ge,selectedItems:xe,allowCustomValue:t,setSelectedItems:H,triggerAreaRef:R,items:h}):at({allowCustomValue:t,setSelectedItem:Ie,filteredItems:[...z.values()]}),scrollIntoView:d=>{d&&d.scrollIntoView({block:"nearest"})}});l.useEffect(()=>{const d=ve(e),g=[...h.values()],b=[...d.values()];(g.length!==b.length||g.some((V,q)=>{const Qe=V.value!==b[q]?.value,Ye=V.text!==b[q]?.text;return Qe||Ye}))&&Ae(d)},[e]);const[Je,Xe]=ye?[M.Popover,{open:!0}]:[l.Fragment,{}];return i.jsx(Oe.Provider,{value:{itemsMap:h,filteredItemsMap:z,highlightedItem:rt(z,_.highlightedIndex),multiple:r,disabled:Ke,readOnly:$e,areSelectedItemsInTrigger:Ge,setAreSelectedItemsInTrigger:He,hasPopover:ye,setHasPopover:We,state:qe,lastInteractionType:_e,setLastInteractionType:Ue,wrap:c,innerInputRef:E,triggerAreaRef:R,..._,...ge,setInputValue:N,selectItem:Ie,setSelectedItems:H,isLoading:j,setOnInputValueChange:B,isTyping:k,setIsTyping:w},children:i.jsx(Je,{...Xe,children:e})})},v=()=>{const e=l.useContext(Oe);if(!e)throw Error("useComboboxContext must be used within a Combobox provider");return e},Re=({children:e,...o})=>i.jsx(ke,{...o,children:e});Re.displayName="Combobox";const X=({className:e,tabIndex:o=-1,onClick:t,ref:s,...a})=>{const r=v(),u=c=>{c.stopPropagation(),r.multiple?r.setSelectedItems([]):r.selectItem(null),r.setInputValue(""),r.innerInputRef.current&&r.innerInputRef.current.focus(),t&&t(c)};return i.jsx("button",{ref:s,className:x.cx(e,"h-sz-44 text-neutral hover:text-neutral-hovered"),tabIndex:o,onClick:u,type:"button",...a,children:i.jsx(A.Icon,{size:"sm",children:i.jsx(Pe.DeleteOutline,{})})})};X.displayName="Combobox.ClearButton";const Q=({className:e,closedLabel:o,openedLabel:t,intent:s="neutral",design:a="ghost",size:r="sm",ref:u,...c})=>{const n=v(),{ref:p,...m}=n.getToggleButtonProps({disabled:n.disabled||n.readOnly,onClick:C=>{C.stopPropagation()}}),f=m["aria-expanded"],T=L.useMergeRefs(u,p);return i.jsx(et.IconButton,{ref:T,className:x.cx(e,"ml-sm mt-[calc((44px-32px)/2)]"),intent:s,design:a,size:r,...m,...c,"aria-label":f?t:o,disabled:n.disabled,children:i.jsx(A.Icon,{className:x.cx("shrink-0","rotate-0 transition duration-100 ease-in",{"rotate-180":f}),size:"sm",children:i.jsx(Ze.ArrowHorizontalDown,{})})})};Q.displayName="Combobox.Disclosure";const Y=({className:e,children:o,ref:t})=>v().filteredItemsMap.size===0?i.jsx("div",{ref:t,className:x.cx("px-lg py-md text-body-1 text-on-surface/dim-1",e),children:o}):null;Y.displayName="Combobox.Empty";const Ve=l.createContext(null),it=({children:e})=>{const o=`${K}-group-label-${l.useId()}`;return i.jsx(Ve.Provider,{value:{groupLabelId:o},children:e})},De=()=>{const e=l.useContext(Ve);if(!e)throw Error("useComboboxGroupContext must be used within a ComboboxGroup provider");return e},Z=({children:e,ref:o,...t})=>i.jsx(it,{children:i.jsx(ct,{ref:o,...t,children:e})}),ct=({children:e,className:o,ref:t})=>{const s=v(),a=De();return l.Children.toArray(e).some(u=>l.isValidElement(u)&&s.filteredItemsMap.get(u.props.value))?i.jsx("div",{ref:t,role:"group","aria-labelledby":a.groupLabelId,className:x.cx(o),children:e}):null};Z.displayName="Combobox.Group";const ee=({"aria-label":e,className:o,placeholder:t,value:s,defaultValue:a,onValueChange:r,ref:u,...c})=>{const n=v(),p=J.useFormFieldControl(),[m]=we.useCombinedState(s,a),{isInvalid:f,description:T}=p;l.useEffect(()=>{m!=null&&n.setInputValue(m)},[m]),l.useEffect(()=>{r&&n.setOnInputValueChange(()=>r),!n.multiple&&n.selectedItem&&n.setInputValue(n.selectedItem.text)},[]);const C=n.hasPopover?M.Popover.Trigger:l.Fragment,j=n.hasPopover?{asChild:!0,type:void 0}:{},y=n.getDropdownProps(),P=L.useMergeRefs(u,n.innerInputRef,y.ref),N=n.getInputProps({disabled:n.disabled||n.readOnly,...y,onKeyDown:E=>{y.onKeyDown?.(E),n.setLastInteractionType("keyboard"),n.setIsTyping(!0)},onChange:E=>{n.setInputValue(E.target.value)},ref:P}),k=n.multiple?!n.areSelectedItemsInTrigger||n.selectedItems.length===0:n.selectedItem===null;function w(E,W){return B=>{E?.(B),W?.(B)}}const R={onBlur:w(c.onBlur,N.onBlur),onChange:w(c.onChange,N.onChange),onClick:w(c.onClick,N.onClick),onKeyDown:w(c.onKeyDown,N.onKeyDown)};return i.jsxs(i.Fragment,{children:[e&&i.jsx(tt.VisuallyHidden,{children:i.jsx("label",{...n.getLabelProps(),children:e})}),i.jsx(C,{...j,children:i.jsx("input",{"data-spark-component":"combobox-input",type:"text",...k&&{placeholder:t},className:x.cx("max-w-full shrink-0 grow basis-[80px]","h-sz-28 bg-surface px-sm text-body-1 text-ellipsis outline-hidden","disabled:text-on-surface/dim-3 disabled:cursor-not-allowed disabled:bg-transparent","read-only:text-on-surface read-only:cursor-default read-only:bg-transparent",o),...c,...N,...R,value:n.inputValue,"aria-label":e,disabled:n.disabled,readOnly:n.readOnly,"aria-invalid":f,"aria-describedby":T})})]})};ee.displayName="Combobox.Input";const Fe=l.createContext(null),ut=({value:e,disabled:o=!1,children:t})=>{const s=v(),[a,r]=l.useState(void 0),u=Ne(s.filteredItemsMap,e),c={disabled:o,value:e,text:je(t)},n=s.multiple?s.selectedItems.some(p=>p.value===e):s.selectedItem?.value===e;return i.jsx(Fe.Provider,{value:{textId:a,setTextId:r,isSelected:n,itemData:c,index:u,disabled:o},children:t})},te=()=>{const e=l.useContext(Fe);if(!e)throw Error("useComboboxItemContext must be used within a ComboboxItem provider");return e},oe=({children:e,ref:o,...t})=>{const{value:s,disabled:a}=t;return i.jsx(ut,{value:s,disabled:a,children:i.jsx(mt,{ref:o,...t,children:e})})},dt=x.cva("px-lg py-md text-body-1",{variants:{selected:{true:"font-bold"},disabled:{true:"opacity-dim-3 cursor-not-allowed",false:"cursor-pointer"},highlighted:{true:""},interactionType:{mouse:"",keyboard:""}},compoundVariants:[{highlighted:!0,interactionType:"mouse",class:"bg-surface-hovered"},{highlighted:!0,interactionType:"keyboard",class:"u-outline"}]}),mt=({className:e,disabled:o=!1,value:t,children:s,ref:a,...r})=>{const u=v(),c=te(),n=!!u.filteredItemsMap.get(t),{ref:p,...m}=u.getItemProps({item:c.itemData,index:c.index}),f=L.useMergeRefs(a,p);return n?i.jsx("li",{ref:f,className:x.cx(dt({selected:c.isSelected,disabled:o,highlighted:u.highlightedItem?.value===t,interactionType:u.lastInteractionType,className:e})),...m,...r,"aria-selected":c.isSelected,"aria-labelledby":c.textId,children:s},t):null};oe.displayName="Combobox.Item";const se=({className:e,children:o,label:t,ref:s})=>{const{disabled:a,isSelected:r}=te(),u=o||i.jsx(A.Icon,{size:"sm",children:i.jsx(ot.Check,{"aria-label":t})});return i.jsx("span",{ref:s,className:x.cx("min-h-sz-16 min-w-sz-16 flex",a&&"opacity-dim-3",e),children:r&&u})};se.displayName="Combobox.ItemIndicator";const ne=({children:e,className:o,ref:t,...s})=>{const a=v(),{ref:r,...u}=a.getMenuProps({onMouseMove:()=>{a.setLastInteractionType("mouse")}}),c=l.useRef(null),n=L.useMergeRefs(t,r,c),p=a.hasPopover?a.isOpen:!0,m=a.hasPopover&&!p;return l.useLayoutEffect(()=>{c.current?.parentElement&&(c.current.parentElement.style.pointerEvents=m?"none":"",c.current.style.pointerEvents=m?"none":"")},[m]),i.jsx("ul",{ref:n,className:x.cx(o,"flex flex-col",p?"block":"pointer-events-none invisible opacity-0",a.hasPopover&&"p-lg",a.isLoading&&"items-center overflow-y-auto"),...s,...u,"aria-busy":a.isLoading,"data-spark-component":"combobox-items",children:a.isLoading?i.jsx(st.Spinner,{size:"sm"}):e})};ne.displayName="Combobox.Items";const re=({children:e,className:o,ref:t})=>{const s=`${K}-item-text-${l.useId()}`,{setTextId:a}=te();return l.useEffect(()=>(a(s),()=>a(void 0))),i.jsx("span",{id:s,className:x.cx("inline",o),ref:t,children:e})};re.displayName="Combobox.ItemText";const le=({children:e,className:o,ref:t})=>{const s=De();return i.jsx("div",{ref:t,id:s.groupLabelId,className:x.cx("px-md py-sm text-body-2 text-neutral italic",o),children:e})};le.displayName="Combobox.Label";const ae=({children:e})=>i.jsx(A.Icon,{size:"sm",className:"h-sz-44 shrink-0",children:e});ae.displayName="Combobox.LeadingIcon";const ie=({children:e,matchTriggerWidth:o=!0,sideOffset:t=4,className:s,ref:a,...r})=>{const u=v();return l.useEffect(()=>(u.setHasPopover(!0),()=>u.setHasPopover(!1)),[]),i.jsx(M.Popover.Content,{ref:a,inset:!0,asChild:!0,matchTriggerWidth:o,className:x.cx("z-dropdown! relative",s),sideOffset:t,onOpenAutoFocus:c=>{c.preventDefault()},...r,"data-spark-component":"combobox-popover",children:e})};ie.displayName="Combobox.Popover";const ce=({children:e,...o})=>i.jsx(M.Popover.Portal,{...o,children:e});ce.displayName="Combobox.Portal";const pt=({item:e,index:o})=>{const t=v(),s=!t.disabled&&!t.readOnly,a=n=>{const p=n.target;t.lastInteractionType==="keyboard"&&p.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},{disabled:r,...u}=t.getSelectedItemProps({disabled:t.disabled||t.readOnly,selectedItem:e,index:o}),c=r?"button":"span";return i.jsxs(c,{role:"presentation","data-spark-component":"combobox-selected-item",className:x.cx("h-sz-28 bg-neutral-container flex items-center rounded-md align-middle","text-body-2 text-on-neutral-container","disabled:opacity-dim-3 disabled:cursor-not-allowed","focus-visible:u-outline-inset outline-hidden",{"px-md":!s,"pl-md":s}),...u,tabIndex:-1,...r&&{disabled:!0},onFocus:a,children:[i.jsx("span",{className:x.cx("line-clamp-1 overflow-x-hidden leading-normal break-all text-ellipsis",{"w-max":!t.wrap}),children:e.text}),t.disabled,s&&i.jsx("button",{type:"button",tabIndex:-1,"aria-hidden":!0,className:"px-md h-full cursor-pointer",onClick:n=>{n.stopPropagation();const p=t.selectedItems.filter(m=>m.value!==e.value);t.setSelectedItems(p),t.innerInputRef.current&&t.innerInputRef.current.focus({preventScroll:!0})},children:i.jsx(A.Icon,{size:"sm",children:i.jsx(Pe.DeleteOutline,{})})})]},`selected-item-${o}`)},ue=()=>{const e=v();return e.multiple&&e.selectedItems.length?i.jsx(i.Fragment,{children:e.selectedItems.map((o,t)=>i.jsx(pt,{item:o,index:t},o.value))}):null};ue.displayName="Combobox.SelectedItems";const bt=x.cva(["flex items-start gap-md min-h-sz-44 text-body-1","h-fit rounded-lg px-lg","ring-1 outline-hidden ring-inset focus-within:ring-2 focus-within:ring-focus"],{variants:{allowWrap:{true:"",false:"h-sz-44"},state:{undefined:"ring-outline",error:"ring-error",alert:"ring-alert",success:"ring-success"},disabled:{true:"cursor-not-allowed border-outline bg-on-surface/dim-5 text-on-surface/dim-3"},readOnly:{true:"cursor-default bg-on-surface/dim-5 text-on-surface"}},compoundVariants:[{disabled:!1,state:void 0,class:"default:hover:ring-outline-high"},{disabled:!1,readOnly:!1,class:"bg-surface text-on-surface cursor-text"}],defaultVariants:{state:void 0,disabled:!1,readOnly:!1}}),xt=(e,o)=>{const t=l.useRef(null);l.useEffect(()=>{const s=()=>{const r=e.current?.scrollWidth||null;t.current&&r&&r>t.current&&o(),t.current=r,requestAnimationFrame(s)},a=requestAnimationFrame(s);return()=>cancelAnimationFrame(a)},[e])},de=({className:e,children:o,ref:t})=>{const s=v(),a=J.useFormFieldControl(),r=F(o,"Combobox.LeadingIcon"),u=F(o,"Combobox.SelectedItems"),c=F(o,"Combobox.Input"),n=F(o,"Combobox.ClearButton"),p=F(o,"Combobox.Disclosure"),[m,f]=s.hasPopover?[M.Popover.Anchor,{asChild:!0,type:void 0}]:[l.Fragment,{}],T=L.useMergeRefs(t,s.triggerAreaRef),C=l.useRef(null),j=a.disabled||s.disabled,y=a.readOnly||s.readOnly,P=!!n&&!j&&!y,N=()=>{if(C.current&&!s.wrap){const{scrollWidth:w,clientWidth:R}=C.current;C.current.scrollLeft=w-R}};xt(C,N);const k=!!u;return l.useEffect(()=>{s.setAreSelectedItemsInTrigger(k)},[k]),l.useEffect(()=>{const w=new ResizeObserver(N);return C.current&&w.observe(C.current),()=>{w.disconnect()}},[]),i.jsx(i.Fragment,{children:i.jsx(m,{...f,children:i.jsxs("div",{ref:T,className:bt({className:e,state:s.state,disabled:j,readOnly:y,allowWrap:s.wrap}),onClick:()=>{!s.isOpen&&!j&&!y&&(s.openMenu(),s.innerInputRef.current&&s.innerInputRef.current.focus())},children:[r,i.jsxs("div",{ref:C,className:x.cx("min-w-none gap-sm py-md inline-flex grow items-start",s.wrap?"flex-wrap":"u-no-scrollbar overflow-x-auto p-[2px]"),children:[u,c]}),P&&n,p]})})})};de.displayName="Combobox.Trigger";const Me=Object.assign(Re,{Group:Z,Item:oe,Items:ne,ItemText:re,ItemIndicator:se,Label:le,Popover:ie,Trigger:de,LeadingIcon:ae,Empty:Y,Input:ee,Disclosure:Q,SelectedItems:ue,ClearButton:X,Portal:ce});Me.displayName="Combobox";Z.displayName="Combobox.Group";ne.displayName="Combobox.Items";oe.displayName="Combobox.Item";re.displayName="Combobox.ItemText";se.displayName="Combobox.ItemIndicator";le.displayName="Combobox.Label";ie.displayName="Combobox.Popover";de.displayName="Combobox.Trigger";ae.displayName="Combobox.LeadingIcon";Y.displayName="Combobox.Empty";ee.displayName="Combobox.Input";Q.displayName="Combobox.Disclosure";ue.displayName="Combobox.SelectedItems";X.displayName="Combobox.ClearButton";ce.displayName="Combobox.Portal";exports.Combobox=Me;exports.ComboboxProvider=ke;exports.useComboboxContext=v;
2
2
  //# sourceMappingURL=index.js.map