@refraktor/core 0.0.3 → 0.0.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 (505) hide show
  1. package/build/components/button/button.styles.js +5 -5
  2. package/build/components/chip/chip-group/chip-group.d.ts +4 -0
  3. package/build/components/chip/chip-group/chip-group.d.ts.map +1 -0
  4. package/build/components/chip/chip-group/chip-group.js +43 -0
  5. package/build/components/chip/chip-group/index.d.ts +2 -0
  6. package/build/components/chip/chip-group/index.d.ts.map +1 -0
  7. package/build/components/chip/chip-group/index.js +1 -0
  8. package/build/components/chip/chip.context.d.ts +15 -0
  9. package/build/components/chip/chip.context.d.ts.map +1 -0
  10. package/build/components/chip/chip.context.js +2 -0
  11. package/build/components/chip/chip.d.ts +4 -0
  12. package/build/components/chip/chip.d.ts.map +1 -0
  13. package/build/components/chip/chip.js +85 -0
  14. package/build/components/chip/chip.styles.d.ts +5 -0
  15. package/build/components/chip/chip.styles.d.ts.map +1 -0
  16. package/build/components/chip/chip.styles.js +19 -0
  17. package/build/components/chip/chip.test.d.ts +2 -0
  18. package/build/components/chip/chip.test.d.ts.map +1 -0
  19. package/build/components/chip/chip.test.js +107 -0
  20. package/build/components/chip/chip.types.d.ts +95 -0
  21. package/build/components/chip/chip.types.d.ts.map +1 -0
  22. package/build/components/chip/chip.types.js +1 -0
  23. package/build/components/chip/index.d.ts +4 -0
  24. package/build/components/chip/index.d.ts.map +1 -0
  25. package/build/components/chip/index.js +2 -0
  26. package/build/components/combobox/combobox-dropdown/combobox-dropdown.d.ts +4 -0
  27. package/build/components/combobox/combobox-dropdown/combobox-dropdown.d.ts.map +1 -0
  28. package/build/components/combobox/combobox-dropdown/combobox-dropdown.js +21 -0
  29. package/build/components/combobox/combobox-dropdown/index.d.ts +2 -0
  30. package/build/components/combobox/combobox-dropdown/index.d.ts.map +1 -0
  31. package/build/components/combobox/combobox-dropdown/index.js +1 -0
  32. package/build/components/combobox/combobox-group/combobox-group.d.ts +4 -0
  33. package/build/components/combobox/combobox-group/combobox-group.d.ts.map +1 -0
  34. package/build/components/combobox/combobox-group/combobox-group.js +15 -0
  35. package/build/components/combobox/combobox-group/index.d.ts +2 -0
  36. package/build/components/combobox/combobox-group/index.d.ts.map +1 -0
  37. package/build/components/combobox/combobox-group/index.js +1 -0
  38. package/build/components/combobox/combobox-input/combobox-input.d.ts +4 -0
  39. package/build/components/combobox/combobox-input/combobox-input.d.ts.map +1 -0
  40. package/build/components/combobox/combobox-input/combobox-input.js +101 -0
  41. package/build/components/combobox/combobox-input/index.d.ts +2 -0
  42. package/build/components/combobox/combobox-input/index.d.ts.map +1 -0
  43. package/build/components/combobox/combobox-input/index.js +1 -0
  44. package/build/components/combobox/combobox-option/combobox-option.d.ts +4 -0
  45. package/build/components/combobox/combobox-option/combobox-option.d.ts.map +1 -0
  46. package/build/components/combobox/combobox-option/combobox-option.js +86 -0
  47. package/build/components/combobox/combobox-option/index.d.ts +2 -0
  48. package/build/components/combobox/combobox-option/index.d.ts.map +1 -0
  49. package/build/components/combobox/combobox-option/index.js +1 -0
  50. package/build/components/combobox/combobox-root/combobox-root.d.ts +4 -0
  51. package/build/components/combobox/combobox-root/combobox-root.d.ts.map +1 -0
  52. package/build/components/combobox/combobox-root/combobox-root.js +282 -0
  53. package/build/components/combobox/combobox-root/index.d.ts +2 -0
  54. package/build/components/combobox/combobox-root/index.d.ts.map +1 -0
  55. package/build/components/combobox/combobox-root/index.js +1 -0
  56. package/build/components/combobox/combobox.context.d.ts +73 -0
  57. package/build/components/combobox/combobox.context.d.ts.map +1 -0
  58. package/build/components/combobox/combobox.context.js +50 -0
  59. package/build/components/combobox/combobox.d.ts +4 -0
  60. package/build/components/combobox/combobox.d.ts.map +1 -0
  61. package/build/components/combobox/combobox.js +31 -0
  62. package/build/components/combobox/combobox.test.d.ts +2 -0
  63. package/build/components/combobox/combobox.test.d.ts.map +1 -0
  64. package/build/components/combobox/combobox.test.js +104 -0
  65. package/{src/components/select/select.types.ts → build/components/combobox/combobox.types.d.ts} +81 -148
  66. package/build/components/combobox/combobox.types.d.ts.map +1 -0
  67. package/build/components/combobox/combobox.types.js +1 -0
  68. package/build/components/combobox/index.d.ts +8 -0
  69. package/build/components/combobox/index.d.ts.map +1 -0
  70. package/build/components/combobox/index.js +6 -0
  71. package/build/components/combobox/use-combobox.d.ts +32 -0
  72. package/build/components/combobox/use-combobox.d.ts.map +1 -0
  73. package/build/components/combobox/use-combobox.js +80 -0
  74. package/build/components/drawer/drawer-body/drawer-body.d.ts +4 -0
  75. package/build/components/drawer/drawer-body/drawer-body.d.ts.map +1 -0
  76. package/build/components/drawer/drawer-body/drawer-body.js +11 -0
  77. package/build/components/drawer/drawer-body/index.d.ts +2 -0
  78. package/build/components/drawer/drawer-body/index.d.ts.map +1 -0
  79. package/build/components/drawer/drawer-body/index.js +1 -0
  80. package/build/components/drawer/drawer-content/drawer-content.d.ts.map +1 -1
  81. package/build/components/drawer/drawer-content/drawer-content.js +9 -6
  82. package/build/components/drawer/drawer-overlay/drawer-overlay.d.ts.map +1 -1
  83. package/build/components/drawer/drawer-overlay/drawer-overlay.js +4 -4
  84. package/build/components/drawer/drawer-root/drawer-root.d.ts.map +1 -1
  85. package/build/components/drawer/drawer-root/drawer-root.js +8 -9
  86. package/build/components/drawer/drawer.context.d.ts +2 -1
  87. package/build/components/drawer/drawer.context.d.ts.map +1 -1
  88. package/build/components/drawer/drawer.d.ts.map +1 -1
  89. package/build/components/drawer/drawer.js +5 -3
  90. package/build/components/drawer/drawer.test.js +55 -16
  91. package/build/components/drawer/drawer.types.d.ts +29 -3
  92. package/build/components/drawer/drawer.types.d.ts.map +1 -1
  93. package/build/components/drawer/index.d.ts +2 -1
  94. package/build/components/drawer/index.d.ts.map +1 -1
  95. package/build/components/drawer/index.js +1 -0
  96. package/build/components/drawer/use-drawer.d.ts +8 -1
  97. package/build/components/drawer/use-drawer.d.ts.map +1 -1
  98. package/build/components/drawer/use-drawer.js +25 -38
  99. package/build/components/file-input/file-input.d.ts +4 -0
  100. package/build/components/file-input/file-input.d.ts.map +1 -0
  101. package/build/components/file-input/file-input.js +88 -0
  102. package/build/components/file-input/file-input.test.d.ts +2 -0
  103. package/build/components/file-input/file-input.test.d.ts.map +1 -0
  104. package/build/components/file-input/file-input.test.js +74 -0
  105. package/build/components/file-input/file-input.types.d.ts +46 -0
  106. package/build/components/file-input/file-input.types.d.ts.map +1 -0
  107. package/build/components/file-input/file-input.types.js +1 -0
  108. package/build/components/file-input/file-input.utils.d.ts +11 -0
  109. package/build/components/file-input/file-input.utils.d.ts.map +1 -0
  110. package/build/components/file-input/file-input.utils.js +67 -0
  111. package/build/components/file-input/file-input.utils.test.d.ts +2 -0
  112. package/build/components/file-input/file-input.utils.test.d.ts.map +1 -0
  113. package/build/components/file-input/file-input.utils.test.js +27 -0
  114. package/build/components/file-input/index.d.ts +3 -0
  115. package/build/components/file-input/index.d.ts.map +1 -0
  116. package/build/components/file-input/index.js +2 -0
  117. package/build/components/for/for.d.ts +8 -0
  118. package/build/components/for/for.d.ts.map +1 -0
  119. package/build/components/for/for.js +32 -0
  120. package/build/components/for/for.test.d.ts +2 -0
  121. package/build/components/for/for.test.d.ts.map +1 -0
  122. package/build/components/for/for.test.js +31 -0
  123. package/build/components/for/for.types.d.ts +33 -0
  124. package/build/components/for/for.types.d.ts.map +1 -0
  125. package/build/components/for/for.types.js +1 -0
  126. package/build/components/for/index.d.ts +3 -0
  127. package/build/components/for/index.d.ts.map +1 -0
  128. package/build/components/for/index.js +1 -0
  129. package/build/components/index.d.ts +6 -0
  130. package/build/components/index.d.ts.map +1 -1
  131. package/build/components/index.js +6 -0
  132. package/build/components/modal/index.d.ts +2 -1
  133. package/build/components/modal/index.d.ts.map +1 -1
  134. package/build/components/modal/index.js +1 -0
  135. package/build/components/modal/modal-body/index.d.ts +2 -0
  136. package/build/components/modal/modal-body/index.d.ts.map +1 -0
  137. package/build/components/modal/modal-body/index.js +1 -0
  138. package/build/components/modal/modal-body/modal-body.d.ts +4 -0
  139. package/build/components/modal/modal-body/modal-body.d.ts.map +1 -0
  140. package/build/components/modal/modal-body/modal-body.js +11 -0
  141. package/build/components/modal/modal-content/modal-content.d.ts.map +1 -1
  142. package/build/components/modal/modal-content/modal-content.js +13 -5
  143. package/build/components/modal/modal-header/modal-header.js +2 -2
  144. package/build/components/modal/modal-overlay/modal-overlay.d.ts.map +1 -1
  145. package/build/components/modal/modal-overlay/modal-overlay.js +4 -4
  146. package/build/components/modal/modal-root/modal-root.d.ts.map +1 -1
  147. package/build/components/modal/modal-root/modal-root.js +12 -9
  148. package/build/components/modal/modal.context.d.ts +5 -2
  149. package/build/components/modal/modal.context.d.ts.map +1 -1
  150. package/build/components/modal/modal.d.ts.map +1 -1
  151. package/build/components/modal/modal.js +5 -3
  152. package/build/components/modal/modal.test.js +78 -13
  153. package/build/components/modal/modal.types.d.ts +34 -5
  154. package/build/components/modal/modal.types.d.ts.map +1 -1
  155. package/build/components/modal/use-modal.d.ts +8 -1
  156. package/build/components/modal/use-modal.d.ts.map +1 -1
  157. package/build/components/modal/use-modal.js +25 -38
  158. package/build/components/password-input/index.d.ts +3 -0
  159. package/build/components/password-input/index.d.ts.map +1 -0
  160. package/build/components/password-input/index.js +2 -0
  161. package/build/components/password-input/password-input.d.ts +4 -0
  162. package/build/components/password-input/password-input.d.ts.map +1 -0
  163. package/build/components/password-input/password-input.js +32 -0
  164. package/build/components/password-input/password-input.test.d.ts +2 -0
  165. package/build/components/password-input/password-input.test.d.ts.map +1 -0
  166. package/build/components/password-input/password-input.test.js +47 -0
  167. package/build/components/password-input/password-input.types.d.ts +24 -0
  168. package/build/components/password-input/password-input.types.d.ts.map +1 -0
  169. package/build/components/password-input/password-input.types.js +1 -0
  170. package/build/components/pin-input/index.d.ts +3 -0
  171. package/build/components/pin-input/index.d.ts.map +1 -0
  172. package/build/components/pin-input/index.js +2 -0
  173. package/build/components/pin-input/pin-input.d.ts +4 -0
  174. package/build/components/pin-input/pin-input.d.ts.map +1 -0
  175. package/build/components/pin-input/pin-input.js +245 -0
  176. package/build/components/pin-input/pin-input.test.d.ts +2 -0
  177. package/build/components/pin-input/pin-input.test.d.ts.map +1 -0
  178. package/build/components/pin-input/pin-input.test.js +87 -0
  179. package/build/components/pin-input/pin-input.types.d.ts +44 -0
  180. package/build/components/pin-input/pin-input.types.d.ts.map +1 -0
  181. package/build/components/pin-input/pin-input.types.js +1 -0
  182. package/build/components/progress-circle/progress-circle.d.ts.map +1 -1
  183. package/build/components/progress-circle/progress-circle.js +6 -6
  184. package/build/components/progress-circle/progress-circle.styles.d.ts +2 -7
  185. package/build/components/progress-circle/progress-circle.styles.d.ts.map +1 -1
  186. package/build/components/progress-circle/progress-circle.styles.js +2 -23
  187. package/build/components/progress-circle/progress-circle.types.d.ts +4 -3
  188. package/build/components/progress-circle/progress-circle.types.d.ts.map +1 -1
  189. package/build/components/scroll-area/index.d.ts +3 -0
  190. package/build/components/scroll-area/index.d.ts.map +1 -0
  191. package/build/components/scroll-area/index.js +1 -0
  192. package/build/components/scroll-area/scroll-area.d.ts +4 -0
  193. package/build/components/scroll-area/scroll-area.d.ts.map +1 -0
  194. package/build/components/scroll-area/scroll-area.js +30 -0
  195. package/build/components/scroll-area/scroll-area.test.d.ts +2 -0
  196. package/build/components/scroll-area/scroll-area.test.d.ts.map +1 -0
  197. package/build/components/scroll-area/scroll-area.test.js +39 -0
  198. package/build/components/scroll-area/scroll-area.types.d.ts +25 -0
  199. package/build/components/scroll-area/scroll-area.types.d.ts.map +1 -0
  200. package/build/components/scroll-area/scroll-area.types.js +1 -0
  201. package/build/components/segmented-control/segmented-control.d.ts.map +1 -1
  202. package/build/components/segmented-control/segmented-control.js +3 -3
  203. package/build/components/segmented-control/segmented-control.styles.js +13 -13
  204. package/build/components/segmented-control/segmented-control.test.js +11 -0
  205. package/build/components/segmented-control/segmented-control.types.d.ts +2 -0
  206. package/build/components/segmented-control/segmented-control.types.d.ts.map +1 -1
  207. package/build/components/slider/slider.d.ts.map +1 -1
  208. package/build/components/slider/slider.js +69 -20
  209. package/build/components/tooltip/tooltip.js +1 -1
  210. package/build/icons/eye-off.d.ts +4 -0
  211. package/build/icons/eye-off.d.ts.map +1 -0
  212. package/build/icons/eye-off.js +5 -0
  213. package/build/icons/eye.d.ts +4 -0
  214. package/build/icons/eye.d.ts.map +1 -0
  215. package/build/icons/eye.js +5 -0
  216. package/build/icons/index.d.ts +2 -0
  217. package/build/icons/index.d.ts.map +1 -1
  218. package/build/icons/index.js +2 -0
  219. package/build/style.css +2 -2
  220. package/package.json +30 -3
  221. package/.turbo/turbo-build.log +0 -4
  222. package/refraktor-core-0.0.1-alpha.0.tgz +0 -0
  223. package/src/components/accordion/accordion-control/accordion-control.tsx +0 -156
  224. package/src/components/accordion/accordion-control/index.ts +0 -1
  225. package/src/components/accordion/accordion-item/accordion-item.tsx +0 -40
  226. package/src/components/accordion/accordion-item/index.ts +0 -1
  227. package/src/components/accordion/accordion-panel/accordion-panel.tsx +0 -58
  228. package/src/components/accordion/accordion-panel/index.ts +0 -1
  229. package/src/components/accordion/accordion.context.ts +0 -93
  230. package/src/components/accordion/accordion.styles.ts +0 -60
  231. package/src/components/accordion/accordion.test.tsx +0 -174
  232. package/src/components/accordion/accordion.tsx +0 -203
  233. package/src/components/accordion/accordion.types.ts +0 -126
  234. package/src/components/accordion/index.ts +0 -17
  235. package/src/components/avatar/avatar-group/avatar-group.tsx +0 -73
  236. package/src/components/avatar/avatar-group/index.ts +0 -1
  237. package/src/components/avatar/avatar.styles.ts +0 -11
  238. package/src/components/avatar/avatar.tsx +0 -142
  239. package/src/components/avatar/avatar.types.ts +0 -86
  240. package/src/components/avatar/index.ts +0 -8
  241. package/src/components/badge/badge.styles.ts +0 -21
  242. package/src/components/badge/badge.tsx +0 -62
  243. package/src/components/badge/badge.types.ts +0 -40
  244. package/src/components/badge/index.ts +0 -2
  245. package/src/components/breadcrumbs/breadcrumbs.styles.ts +0 -55
  246. package/src/components/breadcrumbs/breadcrumbs.test.tsx +0 -136
  247. package/src/components/breadcrumbs/breadcrumbs.tsx +0 -199
  248. package/src/components/breadcrumbs/breadcrumbs.types.ts +0 -78
  249. package/src/components/breadcrumbs/breadcrumbs.utils.ts +0 -70
  250. package/src/components/breadcrumbs/index.ts +0 -6
  251. package/src/components/button/button.styles.ts +0 -28
  252. package/src/components/button/button.test.tsx +0 -57
  253. package/src/components/button/button.tsx +0 -110
  254. package/src/components/button/button.types.ts +0 -69
  255. package/src/components/button/index.ts +0 -2
  256. package/src/components/checkbox/checkbox-group/checkbox-group.tsx +0 -93
  257. package/src/components/checkbox/checkbox-group/index.ts +0 -1
  258. package/src/components/checkbox/checkbox.context.ts +0 -14
  259. package/src/components/checkbox/checkbox.styles.ts +0 -49
  260. package/src/components/checkbox/checkbox.test.tsx +0 -80
  261. package/src/components/checkbox/checkbox.tsx +0 -192
  262. package/src/components/checkbox/checkbox.types.ts +0 -125
  263. package/src/components/checkbox/index.ts +0 -10
  264. package/src/components/color-swatch/color-swatch.styles.ts +0 -11
  265. package/src/components/color-swatch/color-swatch.test.tsx +0 -80
  266. package/src/components/color-swatch/color-swatch.tsx +0 -84
  267. package/src/components/color-swatch/color-swatch.types.ts +0 -46
  268. package/src/components/color-swatch/index.ts +0 -2
  269. package/src/components/drawer/drawer-close/drawer-close.tsx +0 -43
  270. package/src/components/drawer/drawer-close/index.ts +0 -1
  271. package/src/components/drawer/drawer-content/drawer-content.tsx +0 -98
  272. package/src/components/drawer/drawer-content/index.ts +0 -1
  273. package/src/components/drawer/drawer-header/drawer-header.tsx +0 -40
  274. package/src/components/drawer/drawer-header/index.ts +0 -1
  275. package/src/components/drawer/drawer-overlay/drawer-overlay.tsx +0 -86
  276. package/src/components/drawer/drawer-overlay/index.ts +0 -1
  277. package/src/components/drawer/drawer-root/drawer-root.tsx +0 -94
  278. package/src/components/drawer/drawer-root/index.ts +0 -1
  279. package/src/components/drawer/drawer.context.ts +0 -25
  280. package/src/components/drawer/drawer.styles.ts +0 -32
  281. package/src/components/drawer/drawer.test.tsx +0 -166
  282. package/src/components/drawer/drawer.tsx +0 -30
  283. package/src/components/drawer/drawer.types.ts +0 -158
  284. package/src/components/drawer/index.ts +0 -16
  285. package/src/components/drawer/use-drawer.ts +0 -101
  286. package/src/components/index.ts +0 -29
  287. package/src/components/input/index.ts +0 -2
  288. package/src/components/input/input-description/index.ts +0 -2
  289. package/src/components/input/input-description/input-description.tsx +0 -36
  290. package/src/components/input/input-error/index.ts +0 -2
  291. package/src/components/input/input-error/input-error.tsx +0 -36
  292. package/src/components/input/input-field/index.ts +0 -1
  293. package/src/components/input/input-field/input-field.styles.ts +0 -23
  294. package/src/components/input/input-field/input-field.tsx +0 -94
  295. package/src/components/input/input-label/index.ts +0 -2
  296. package/src/components/input/input-label/input-label.tsx +0 -47
  297. package/src/components/input/input-wrapper/index.ts +0 -2
  298. package/src/components/input/input-wrapper/input-wrapper.tsx +0 -43
  299. package/src/components/input/input.tsx +0 -71
  300. package/src/components/input/input.types.ts +0 -111
  301. package/src/components/loader/index.ts +0 -2
  302. package/src/components/loader/loader.tsx +0 -89
  303. package/src/components/loader/loader.types.ts +0 -33
  304. package/src/components/menu/index.ts +0 -24
  305. package/src/components/menu/menu-dropdown/index.ts +0 -1
  306. package/src/components/menu/menu-dropdown/menu-dropdown.tsx +0 -220
  307. package/src/components/menu/menu-item/index.ts +0 -1
  308. package/src/components/menu/menu-item/menu-item.tsx +0 -126
  309. package/src/components/menu/menu-label/index.ts +0 -1
  310. package/src/components/menu/menu-label/menu-label.tsx +0 -30
  311. package/src/components/menu/menu-separator/index.ts +0 -1
  312. package/src/components/menu/menu-separator/menu-separator.tsx +0 -28
  313. package/src/components/menu/menu-sub/index.ts +0 -1
  314. package/src/components/menu/menu-sub/menu-sub.tsx +0 -117
  315. package/src/components/menu/menu-sub-dropdown/index.ts +0 -1
  316. package/src/components/menu/menu-sub-dropdown/menu-sub-dropdown.tsx +0 -221
  317. package/src/components/menu/menu-sub-trigger/index.ts +0 -1
  318. package/src/components/menu/menu-sub-trigger/menu-sub-trigger.tsx +0 -164
  319. package/src/components/menu/menu-trigger/index.ts +0 -1
  320. package/src/components/menu/menu-trigger/menu-trigger.tsx +0 -98
  321. package/src/components/menu/menu.context.ts +0 -162
  322. package/src/components/menu/menu.test.tsx +0 -136
  323. package/src/components/menu/menu.tsx +0 -133
  324. package/src/components/menu/menu.types.ts +0 -291
  325. package/src/components/menu/use-menu.ts +0 -204
  326. package/src/components/modal/index.ts +0 -15
  327. package/src/components/modal/modal-close/index.ts +0 -1
  328. package/src/components/modal/modal-close/modal-close.tsx +0 -43
  329. package/src/components/modal/modal-content/index.ts +0 -1
  330. package/src/components/modal/modal-content/modal-content.tsx +0 -72
  331. package/src/components/modal/modal-header/index.ts +0 -1
  332. package/src/components/modal/modal-header/modal-header.tsx +0 -40
  333. package/src/components/modal/modal-overlay/index.ts +0 -1
  334. package/src/components/modal/modal-overlay/modal-overlay.tsx +0 -86
  335. package/src/components/modal/modal-root/index.ts +0 -1
  336. package/src/components/modal/modal-root/modal-root.tsx +0 -88
  337. package/src/components/modal/modal.context.ts +0 -23
  338. package/src/components/modal/modal.test.tsx +0 -146
  339. package/src/components/modal/modal.tsx +0 -26
  340. package/src/components/modal/modal.types.ts +0 -148
  341. package/src/components/modal/use-modal.ts +0 -101
  342. package/src/components/number-input/index.ts +0 -2
  343. package/src/components/number-input/number-input.styles.ts +0 -37
  344. package/src/components/number-input/number-input.test.tsx +0 -22
  345. package/src/components/number-input/number-input.tsx +0 -381
  346. package/src/components/number-input/number-input.types.ts +0 -58
  347. package/src/components/pagination/index.ts +0 -7
  348. package/src/components/pagination/pagination.styles.ts +0 -84
  349. package/src/components/pagination/pagination.test.tsx +0 -117
  350. package/src/components/pagination/pagination.tsx +0 -371
  351. package/src/components/pagination/pagination.types.ts +0 -95
  352. package/src/components/pagination/pagination.utils.ts +0 -88
  353. package/src/components/popover/index.ts +0 -12
  354. package/src/components/popover/popover-dropdown/index.ts +0 -1
  355. package/src/components/popover/popover-dropdown/popover-dropdown.tsx +0 -94
  356. package/src/components/popover/popover-trigger/index.ts +0 -1
  357. package/src/components/popover/popover-trigger/popover-trigger.tsx +0 -49
  358. package/src/components/popover/popover.context.ts +0 -20
  359. package/src/components/popover/popover.tsx +0 -113
  360. package/src/components/popover/popover.types.ts +0 -137
  361. package/src/components/popover/use-popover.ts +0 -219
  362. package/src/components/portal/index.ts +0 -2
  363. package/src/components/portal/portal.test.tsx +0 -39
  364. package/src/components/portal/portal.tsx +0 -104
  365. package/src/components/portal/portal.types.ts +0 -31
  366. package/src/components/progress/index.ts +0 -2
  367. package/src/components/progress/progress.styles.ts +0 -25
  368. package/src/components/progress/progress.test.tsx +0 -107
  369. package/src/components/progress/progress.tsx +0 -93
  370. package/src/components/progress/progress.types.ts +0 -52
  371. package/src/components/progress-circle/index.ts +0 -5
  372. package/src/components/progress-circle/progress-circle.styles.ts +0 -31
  373. package/src/components/progress-circle/progress-circle.test.tsx +0 -140
  374. package/src/components/progress-circle/progress-circle.tsx +0 -124
  375. package/src/components/progress-circle/progress-circle.types.ts +0 -52
  376. package/src/components/radio/index.ts +0 -10
  377. package/src/components/radio/radio-group/index.ts +0 -1
  378. package/src/components/radio/radio-group/radio-group.tsx +0 -89
  379. package/src/components/radio/radio.context.ts +0 -14
  380. package/src/components/radio/radio.styles.ts +0 -49
  381. package/src/components/radio/radio.test.tsx +0 -75
  382. package/src/components/radio/radio.tsx +0 -173
  383. package/src/components/radio/radio.types.ts +0 -126
  384. package/src/components/segmented-control/index.ts +0 -6
  385. package/src/components/segmented-control/segmented-control.styles.ts +0 -37
  386. package/src/components/segmented-control/segmented-control.test.tsx +0 -152
  387. package/src/components/segmented-control/segmented-control.tsx +0 -245
  388. package/src/components/segmented-control/segmented-control.types.ts +0 -75
  389. package/src/components/select/index.ts +0 -20
  390. package/src/components/select/select-dropdown/index.ts +0 -1
  391. package/src/components/select/select-dropdown/select-dropdown.tsx +0 -299
  392. package/src/components/select/select-group/index.ts +0 -1
  393. package/src/components/select/select-group/select-group.tsx +0 -47
  394. package/src/components/select/select-item/index.ts +0 -1
  395. package/src/components/select/select-item/select-item.tsx +0 -157
  396. package/src/components/select/select-root/index.ts +0 -1
  397. package/src/components/select/select-root/select-root.tsx +0 -333
  398. package/src/components/select/select-trigger/index.ts +0 -1
  399. package/src/components/select/select-trigger/select-trigger.tsx +0 -123
  400. package/src/components/select/select.context.ts +0 -140
  401. package/src/components/select/select.test.tsx +0 -190
  402. package/src/components/select/select.tsx +0 -82
  403. package/src/components/select/use-select.ts +0 -170
  404. package/src/components/slider/index.ts +0 -7
  405. package/src/components/slider/slider.styles.ts +0 -37
  406. package/src/components/slider/slider.tsx +0 -275
  407. package/src/components/slider/slider.types.ts +0 -82
  408. package/src/components/switch/index.ts +0 -2
  409. package/src/components/switch/switch.styles.ts +0 -31
  410. package/src/components/switch/switch.tsx +0 -132
  411. package/src/components/switch/switch.types.ts +0 -62
  412. package/src/components/table/index.ts +0 -24
  413. package/src/components/table/table-body/index.ts +0 -1
  414. package/src/components/table/table-body/table-body.tsx +0 -37
  415. package/src/components/table/table-caption/index.ts +0 -1
  416. package/src/components/table/table-caption/table-caption.tsx +0 -32
  417. package/src/components/table/table-cell/index.ts +0 -1
  418. package/src/components/table/table-cell/table-cell.tsx +0 -33
  419. package/src/components/table/table-head/index.ts +0 -1
  420. package/src/components/table/table-head/table-head.tsx +0 -29
  421. package/src/components/table/table-header-cell/index.ts +0 -1
  422. package/src/components/table/table-header-cell/table-header-cell.tsx +0 -33
  423. package/src/components/table/table-row/index.ts +0 -1
  424. package/src/components/table/table-row/table-row.tsx +0 -30
  425. package/src/components/table/table.context.ts +0 -18
  426. package/src/components/table/table.styles.ts +0 -62
  427. package/src/components/table/table.test.tsx +0 -145
  428. package/src/components/table/table.tsx +0 -91
  429. package/src/components/table/table.types.ts +0 -145
  430. package/src/components/tabs/index.ts +0 -18
  431. package/src/components/tabs/tabs-list/index.ts +0 -1
  432. package/src/components/tabs/tabs-list/tabs-list.tsx +0 -42
  433. package/src/components/tabs/tabs-panel/index.ts +0 -1
  434. package/src/components/tabs/tabs-panel/tabs-panel.tsx +0 -58
  435. package/src/components/tabs/tabs-tab/index.ts +0 -1
  436. package/src/components/tabs/tabs-tab/tabs-tab.tsx +0 -210
  437. package/src/components/tabs/tabs.context.ts +0 -88
  438. package/src/components/tabs/tabs.styles.ts +0 -92
  439. package/src/components/tabs/tabs.test.tsx +0 -167
  440. package/src/components/tabs/tabs.tsx +0 -137
  441. package/src/components/tabs/tabs.types.ts +0 -128
  442. package/src/components/textarea/index.ts +0 -2
  443. package/src/components/textarea/textarea-field/index.ts +0 -1
  444. package/src/components/textarea/textarea-field/textarea-field.styles.ts +0 -34
  445. package/src/components/textarea/textarea-field/textarea-field.tsx +0 -96
  446. package/src/components/textarea/textarea.tsx +0 -64
  447. package/src/components/textarea/textarea.types.ts +0 -80
  448. package/src/components/timeline/index.ts +0 -11
  449. package/src/components/timeline/timeline-item/index.ts +0 -1
  450. package/src/components/timeline/timeline-item/timeline-item.tsx +0 -158
  451. package/src/components/timeline/timeline.context.ts +0 -21
  452. package/src/components/timeline/timeline.styles.ts +0 -135
  453. package/src/components/timeline/timeline.test.tsx +0 -150
  454. package/src/components/timeline/timeline.tsx +0 -124
  455. package/src/components/timeline/timeline.types.ts +0 -91
  456. package/src/components/tooltip/index.ts +0 -8
  457. package/src/components/tooltip/tooltip.tsx +0 -164
  458. package/src/components/tooltip/tooltip.types.ts +0 -104
  459. package/src/components/tooltip/use-tooltip.ts +0 -200
  460. package/src/components/transition/index.ts +0 -11
  461. package/src/components/transition/transition.test.tsx +0 -126
  462. package/src/components/transition/transition.tsx +0 -441
  463. package/src/components/transition/transition.types.ts +0 -97
  464. package/src/components/transition/transitions.ts +0 -140
  465. package/src/icons/check.tsx +0 -25
  466. package/src/icons/chevron.tsx +0 -46
  467. package/src/icons/index.ts +0 -5
  468. package/src/icons/minus.tsx +0 -24
  469. package/src/icons/types.ts +0 -9
  470. package/src/icons/user.tsx +0 -18
  471. package/src/icons/x.tsx +0 -35
  472. package/src/index.ts +0 -5
  473. package/src/style.css +0 -328
  474. package/src/theme/ThemeProvider/ThemeProvider.tsx +0 -111
  475. package/src/theme/ThemeProvider/context.ts +0 -7
  476. package/src/theme/ThemeProvider/generateVariables.test.ts +0 -49
  477. package/src/theme/ThemeProvider/generateVariables.ts +0 -124
  478. package/src/theme/ThemeProvider/index.ts +0 -3
  479. package/src/theme/ThemeProvider/types.ts +0 -37
  480. package/src/theme/createTheme/createTheme.ts +0 -41
  481. package/src/theme/createTheme/index.ts +0 -7
  482. package/src/theme/createTheme/types.ts +0 -62
  483. package/src/theme/defaults/colors.ts +0 -203
  484. package/src/theme/defaults/settings.ts +0 -8
  485. package/src/theme/index.ts +0 -4
  486. package/src/theme/types.ts +0 -31
  487. package/src/theme/utils/get-radius.ts +0 -23
  488. package/src/theme/utils/get-shade.ts +0 -16
  489. package/src/theme/utils/index.ts +0 -3
  490. package/src/theme/utils/use-theme.ts +0 -27
  491. package/src/utils/configs/create-config.ts +0 -15
  492. package/src/utils/configs/index.ts +0 -3
  493. package/src/utils/configs/use-class-names.ts +0 -41
  494. package/src/utils/configs/use-props.ts +0 -55
  495. package/src/utils/cx/index.ts +0 -6
  496. package/src/utils/factory/factory.ts +0 -23
  497. package/src/utils/factory/index.ts +0 -14
  498. package/src/utils/factory/types.ts +0 -92
  499. package/src/utils/index.ts +0 -3
  500. package/src/vitest/index.ts +0 -1
  501. package/src/vitest/setup.tsx +0 -20
  502. package/src/vitest/utils.tsx +0 -59
  503. package/tsconfig.json +0 -13
  504. package/tsconfig.tsbuildinfo +0 -1
  505. package/vitest.config.js +0 -19
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createClassNamesConfig, createComponentConfig, factory } from "../../utils";
3
+ import { ComboboxDropdown } from "./combobox-dropdown";
4
+ import { ComboboxGroup } from "./combobox-group";
5
+ import { ComboboxInput } from "./combobox-input";
6
+ import { ComboboxOption } from "./combobox-option";
7
+ import { ComboboxRoot } from "./combobox-root";
8
+ function isGroupData(item) {
9
+ return "items" in item;
10
+ }
11
+ const Combobox = factory((_props, ref) => {
12
+ const { data, children, ...props } = _props;
13
+ if (children !== undefined && children !== null) {
14
+ return (_jsx(ComboboxRoot, { ref: ref, ...props, children: children }));
15
+ }
16
+ return (_jsxs(ComboboxRoot, { ref: ref, ...props, children: [_jsx(ComboboxInput, {}), _jsx(ComboboxDropdown, { children: (data ?? []).map((entry, index) => {
17
+ if (isGroupData(entry)) {
18
+ return (_jsx(ComboboxGroup, { label: entry.label, children: entry.items.map((item) => (_jsx(ComboboxOption, { value: item.value, disabled: item.disabled, textValue: item.textValue, children: item.label }, item.value))) }, `group-${index}`));
19
+ }
20
+ return (_jsx(ComboboxOption, { value: entry.value, disabled: entry.disabled, textValue: entry.textValue, children: entry.label }, entry.value));
21
+ }) })] }));
22
+ });
23
+ Combobox.displayName = "@refraktor/core/Combobox";
24
+ Combobox.configure = createComponentConfig();
25
+ Combobox.classNames = createClassNamesConfig();
26
+ Combobox.Root = ComboboxRoot;
27
+ Combobox.Input = ComboboxInput;
28
+ Combobox.Dropdown = ComboboxDropdown;
29
+ Combobox.Group = ComboboxGroup;
30
+ Combobox.Option = ComboboxOption;
31
+ export default Combobox;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=combobox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.test.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/combobox.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { describe, expect, it, vi } from "vitest";
4
+ import { render, screen, userEvent, waitFor } from "../../vitest";
5
+ import Combobox from "./combobox";
6
+ describe("@refraktor/core/Combobox", () => {
7
+ const transitionProps = {
8
+ duration: 0,
9
+ immediate: true
10
+ };
11
+ it("supports built-in data mode", async () => {
12
+ const user = userEvent.setup();
13
+ await render(_jsx(Combobox, { placeholder: "Pick framework", transitionProps: transitionProps, data: [
14
+ { value: "react", label: "React" },
15
+ { value: "vue", label: "Vue" }
16
+ ] }));
17
+ const input = screen.getByRole("combobox");
18
+ expect(input).toHaveAttribute("placeholder", "Pick framework");
19
+ await user.click(input);
20
+ await user.click(screen.getByRole("option", { name: "React" }));
21
+ expect(input).toHaveValue("React");
22
+ await waitFor(() => {
23
+ expect(screen.queryByRole("listbox")).not.toBeInTheDocument();
24
+ });
25
+ });
26
+ it("renders defaultValue label in input before opening", async () => {
27
+ await render(_jsx(Combobox, { defaultValue: "apple", data: [
28
+ { value: "apple", label: "Apple" },
29
+ { value: "orange", label: "Orange" }
30
+ ] }));
31
+ expect(screen.getByRole("combobox")).toHaveValue("Apple");
32
+ });
33
+ it("filters options based on typed query", async () => {
34
+ const user = userEvent.setup();
35
+ await render(_jsx(Combobox, { transitionProps: transitionProps, data: [
36
+ { value: "react", label: "React" },
37
+ { value: "vue", label: "Vue" },
38
+ { value: "solid", label: "Solid" }
39
+ ] }));
40
+ const input = screen.getByRole("combobox");
41
+ await user.click(input);
42
+ await user.type(input, "vu");
43
+ expect(screen.getByRole("option", { name: "Vue" })).toBeInTheDocument();
44
+ expect(screen.queryByRole("option", { name: "React" })).not.toBeInTheDocument();
45
+ await user.clear(input);
46
+ await user.type(input, "unknown");
47
+ expect(screen.getByText("No options")).toBeInTheDocument();
48
+ });
49
+ it("supports keyboard navigation and selection", async () => {
50
+ const user = userEvent.setup();
51
+ await render(_jsx(Combobox, { transitionProps: transitionProps, data: [
52
+ { value: "react", label: "React" },
53
+ { value: "vue", label: "Vue" }
54
+ ] }));
55
+ const input = screen.getByRole("combobox");
56
+ input.focus();
57
+ await user.keyboard("{ArrowDown}");
58
+ await user.keyboard("{ArrowDown}");
59
+ await user.keyboard("{Enter}");
60
+ expect(input).toHaveValue("Vue");
61
+ });
62
+ it("supports compound mode with groups", async () => {
63
+ const user = userEvent.setup();
64
+ await render(_jsxs(Combobox.Root, { transitionProps: transitionProps, children: [_jsx(Combobox.Input, {}), _jsxs(Combobox.Dropdown, { children: [_jsx(Combobox.Group, { label: "Frontend", children: _jsx(Combobox.Option, { value: "react", children: "React" }) }), _jsx(Combobox.Group, { label: "Backend", children: _jsx(Combobox.Option, { value: "node", children: "Node.js" }) })] })] }));
65
+ const input = screen.getByRole("combobox");
66
+ await user.click(input);
67
+ expect(screen.getByText("Frontend")).toBeInTheDocument();
68
+ expect(screen.getByText("Backend")).toBeInTheDocument();
69
+ await user.click(screen.getByRole("option", { name: "Node.js" }));
70
+ expect(input).toHaveValue("Node.js");
71
+ });
72
+ it("supports controlled mode", async () => {
73
+ const user = userEvent.setup();
74
+ const onChange = vi.fn();
75
+ function Demo() {
76
+ const [value, setValue] = useState("react");
77
+ return (_jsx(Combobox, { value: value, onChange: (nextValue) => {
78
+ onChange(nextValue);
79
+ setValue(nextValue);
80
+ }, transitionProps: transitionProps, data: [
81
+ { value: "react", label: "React" },
82
+ { value: "vue", label: "Vue" }
83
+ ] }));
84
+ }
85
+ await render(_jsx(Demo, {}));
86
+ await user.click(screen.getByRole("combobox"));
87
+ await user.click(screen.getByRole("option", { name: "Vue" }));
88
+ expect(onChange).toHaveBeenCalledWith("vue");
89
+ expect(screen.getByRole("combobox")).toHaveValue("Vue");
90
+ });
91
+ it("supports custom filter and limit", async () => {
92
+ const user = userEvent.setup();
93
+ await render(_jsx(Combobox, { transitionProps: transitionProps, filter: (item, query) => item.textValue.toLowerCase().startsWith(query.toLowerCase()), limit: 1, data: [
94
+ { value: "react", label: "React" },
95
+ { value: "ruby", label: "Ruby" },
96
+ { value: "vue", label: "Vue" }
97
+ ] }));
98
+ const input = screen.getByRole("combobox");
99
+ await user.click(input);
100
+ await user.type(input, "r");
101
+ expect(screen.getByRole("option", { name: "React" })).toBeInTheDocument();
102
+ expect(screen.queryByRole("option", { name: "Ruby" })).not.toBeInTheDocument();
103
+ });
104
+ });
@@ -1,272 +1,205 @@
1
1
  import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import type {
3
- FlipOptions,
4
- InlineOptions,
5
- Placement,
6
- ShiftOptions
7
- } from "@floating-ui/react";
2
+ import type { FlipOptions, InlineOptions, Placement, ShiftOptions } from "@floating-ui/react";
8
3
  import type { RefraktorRadius, RefraktorSize } from "../../theme";
9
- import {
10
- createClassNamesConfig,
11
- createComponentConfig,
12
- FactoryPayload
13
- } from "../../utils";
4
+ import { createClassNamesConfig, createComponentConfig, FactoryPayload } from "../../utils";
14
5
  import type { TransitionProps } from "../transition";
15
6
  import type { InputVariant } from "../input";
16
- import type { SelectRoot } from "./select-root";
17
- import type { SelectTrigger } from "./select-trigger";
18
- import type { SelectDropdown } from "./select-dropdown";
19
- import type { SelectGroup } from "./select-group";
20
- import type { SelectItem } from "./select-item";
21
-
22
- export type SelectClassNames = {
7
+ import type { ComboboxRoot } from "./combobox-root";
8
+ import type { ComboboxInput } from "./combobox-input";
9
+ import type { ComboboxDropdown } from "./combobox-dropdown";
10
+ import type { ComboboxGroup } from "./combobox-group";
11
+ import type { ComboboxOption } from "./combobox-option";
12
+ export type ComboboxClassNames = {
23
13
  root?: string;
24
- trigger?: string;
25
- triggerInput?: string;
26
- triggerIcon?: string;
14
+ input?: string;
15
+ inputField?: string;
16
+ inputIcon?: string;
27
17
  dropdown?: string;
28
- search?: string;
29
- searchInput?: string;
30
18
  options?: string;
31
19
  group?: string;
32
20
  groupLabel?: string;
33
- item?: string;
34
- itemLabel?: string;
35
- itemCheck?: string;
21
+ option?: string;
22
+ optionLabel?: string;
23
+ optionCheck?: string;
36
24
  empty?: string;
37
25
  };
38
-
39
- export type SelectPositioning = {
40
- /** The placement of the dropdown relative to the trigger @default `bottom-start` */
26
+ export type ComboboxPositioning = {
27
+ /** The placement of the dropdown relative to the input @default `bottom-start` */
41
28
  placement?: Placement;
42
-
43
- /** Offset distance from the trigger in pixels @default `4` */
29
+ /** Offset distance from the input in pixels @default `4` */
44
30
  offset?: number;
45
31
  };
46
-
47
- export type SelectMiddlewares = {
32
+ export type ComboboxMiddlewares = {
48
33
  shift?: boolean | ShiftOptions;
49
34
  flip?: boolean | FlipOptions;
50
35
  inline?: boolean | InlineOptions;
51
36
  };
52
-
53
- export interface SelectItemData {
37
+ export interface ComboboxItemData {
54
38
  /** Option value */
55
39
  value: string;
56
-
57
40
  /** Option label */
58
41
  label: ReactNode;
59
-
60
42
  /** Optional searchable text for non-string labels */
61
43
  textValue?: string;
62
-
63
44
  /** Whether the option is disabled */
64
45
  disabled?: boolean;
65
46
  }
66
-
67
- export interface SelectGroupData {
47
+ export interface ComboboxGroupData {
68
48
  /** Group label */
69
49
  label?: ReactNode;
70
-
71
50
  /** Group items */
72
- items: SelectItemData[];
51
+ items: ComboboxItemData[];
73
52
  }
74
-
75
- export type SelectData = SelectItemData | SelectGroupData;
76
-
77
- export interface SelectRootProps
78
- extends Omit<
79
- ComponentPropsWithoutRef<"div">,
80
- "value" | "defaultValue" | "onChange"
81
- > {
82
- /** Children containing select subcomponents */
53
+ export type ComboboxData = ComboboxItemData | ComboboxGroupData;
54
+ export interface ComboboxFilterItem {
55
+ value: string;
56
+ label: string;
57
+ textValue: string;
58
+ disabled: boolean;
59
+ groupId?: string;
60
+ }
61
+ export type ComboboxFilter = (item: ComboboxFilterItem, query: string) => boolean;
62
+ export interface ComboboxRootProps extends Omit<ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "onChange"> {
63
+ /** Children containing combobox subcomponents */
83
64
  children: ReactNode;
84
-
85
65
  /** Label text */
86
66
  label?: ReactNode;
87
-
88
67
  /** Description text */
89
68
  description?: ReactNode;
90
-
91
69
  /** Error message */
92
70
  error?: ReactNode;
93
-
94
71
  /** Whether the field is required */
95
72
  required?: boolean;
96
-
97
73
  /** Display an asterisk next to the label */
98
74
  withAsterisk?: boolean;
99
-
100
75
  /** Selected value (controlled) */
101
76
  value?: string | null;
102
-
103
77
  /** Initial selected value (uncontrolled) */
104
78
  defaultValue?: string | null;
105
-
106
79
  /** Callback called when selected value changes */
107
80
  onChange?: (value: string | null) => void;
108
-
81
+ /** Search value (controlled) */
82
+ searchValue?: string;
83
+ /** Initial search value (uncontrolled) */
84
+ defaultSearchValue?: string;
85
+ /** Callback called when search value changes */
86
+ onSearchChange?: (value: string) => void;
109
87
  /** Dropdown open state (controlled) */
110
88
  opened?: boolean;
111
-
112
89
  /** Initial dropdown open state (uncontrolled) */
113
90
  defaultOpened?: boolean;
114
-
115
91
  /** Callback called when dropdown open state changes */
116
92
  onOpenedChange?: (opened: boolean) => void;
117
-
118
93
  /** Positioning settings */
119
- positioning?: SelectPositioning;
120
-
94
+ positioning?: ComboboxPositioning;
121
95
  /** Floating middleware settings */
122
- middlewares?: SelectMiddlewares;
123
-
124
- /** Whether select is disabled @default `false` */
96
+ middlewares?: ComboboxMiddlewares;
97
+ /** Whether combobox is disabled @default `false` */
125
98
  disabled?: boolean;
126
-
127
- /** Whether to render searchable input inside dropdown @default `false` */
128
- searchable?: boolean;
129
-
130
- /** Search query (controlled) */
131
- searchValue?: string;
132
-
133
- /** Initial search query (uncontrolled) */
134
- defaultSearchValue?: string;
135
-
136
- /** Callback called when search query changes */
137
- onSearchChange?: (value: string) => void;
138
-
139
- /** Trigger placeholder text @default `Select option` */
99
+ /** Whether to open dropdown when input receives focus @default `true` */
100
+ openOnFocus?: boolean;
101
+ /** Input placeholder text @default `Type to search` */
140
102
  placeholder?: string;
141
-
142
- /** Search input placeholder @default `Search...` */
143
- searchPlaceholder?: string;
144
-
145
103
  /** Content rendered when no options match @default `No options` */
146
104
  nothingFound?: ReactNode;
147
-
148
- /** Trigger and search input size @default `md` */
105
+ /** Filter function for options */
106
+ filter?: ComboboxFilter;
107
+ /** Optional maximum number of visible options */
108
+ limit?: number;
109
+ /** Input size @default `md` */
149
110
  size?: RefraktorSize;
150
-
151
- /** Trigger and search input radius @default `default` */
111
+ /** Input radius @default `default` */
152
112
  radius?: RefraktorRadius;
153
-
154
- /** Trigger and search input variant @default `default` */
113
+ /** Input variant @default `default` */
155
114
  variant?: InputVariant;
156
-
157
115
  /** Whether to render dropdown in portal @default `true` */
158
116
  withinPortal?: boolean;
159
-
160
117
  /** Whether to close on click outside @default `true` */
161
118
  closeOnClickOutside?: boolean;
162
-
163
119
  /** Whether to close on Escape key @default `true` */
164
120
  closeOnEscape?: boolean;
165
-
166
121
  /** Transition props for dropdown, uses Transition internally */
167
122
  transitionProps?: Omit<TransitionProps, "children" | "mounted">;
168
-
169
123
  /** Used for editing root class name */
170
124
  className?: string;
171
-
172
125
  /** Used for styling different parts of the component */
173
- classNames?: SelectClassNames;
126
+ classNames?: ComboboxClassNames;
174
127
  }
175
-
176
- export interface SelectTriggerProps extends ComponentPropsWithoutRef<"div"> {
177
- /** Trigger placeholder override */
128
+ export interface ComboboxInputProps extends ComponentPropsWithoutRef<"div"> {
129
+ /** Input placeholder override */
178
130
  placeholder?: string;
179
-
131
+ /** Optional custom left section */
132
+ leftSection?: ReactNode;
180
133
  /** Optional custom right section */
181
134
  rightSection?: ReactNode;
182
-
183
135
  /** Used for editing root class name */
184
136
  className?: string;
185
137
  }
186
-
187
- export interface SelectDropdownProps extends ComponentPropsWithoutRef<"div"> {
138
+ export interface ComboboxDropdownProps extends ComponentPropsWithoutRef<"div"> {
188
139
  /** Content displayed inside dropdown */
189
140
  children: ReactNode;
190
-
191
141
  /** Used for editing root class name */
192
142
  className?: string;
193
143
  }
194
-
195
- export interface SelectGroupProps extends ComponentPropsWithoutRef<"div"> {
144
+ export interface ComboboxGroupProps extends ComponentPropsWithoutRef<"div"> {
196
145
  /** Group label */
197
146
  label?: ReactNode;
198
-
199
147
  /** Group content */
200
148
  children: ReactNode;
201
-
202
149
  /** Used for editing root class name */
203
150
  className?: string;
204
151
  }
205
-
206
- export interface SelectItemProps
207
- extends Omit<ComponentPropsWithoutRef<"button">, "value" | "onSelect"> {
152
+ export interface ComboboxOptionProps extends Omit<ComponentPropsWithoutRef<"button">, "value" | "onSelect"> {
208
153
  /** Option value */
209
154
  value: string;
210
-
211
155
  /** Option content */
212
156
  children: ReactNode;
213
-
214
157
  /** Callback called when option is selected */
215
158
  onSelect?: (value: string) => void;
216
-
217
159
  /** Optional searchable text for non-string children */
218
160
  textValue?: string;
219
-
220
161
  /** Whether option is disabled */
221
162
  disabled?: boolean;
222
-
223
163
  /** Used for editing root class name */
224
164
  className?: string;
225
165
  }
226
-
227
- export interface SelectProps extends Omit<SelectRootProps, "children"> {
166
+ export interface ComboboxProps extends Omit<ComboboxRootProps, "children"> {
228
167
  /** Compound children. If provided, data-based rendering is skipped */
229
168
  children?: ReactNode;
230
-
231
169
  /** Data used for built-in rendering mode */
232
- data?: SelectData[];
170
+ data?: ComboboxData[];
233
171
  }
234
-
235
- export interface SelectFactoryPayload extends FactoryPayload {
236
- props: SelectProps;
172
+ export interface ComboboxFactoryPayload extends FactoryPayload {
173
+ props: ComboboxProps;
237
174
  ref: HTMLDivElement;
238
175
  compound: {
239
- configure: ReturnType<typeof createComponentConfig<SelectProps>>;
240
- classNames: ReturnType<typeof createClassNamesConfig<SelectClassNames>>;
241
- Root: typeof SelectRoot;
242
- Trigger: typeof SelectTrigger;
243
- Dropdown: typeof SelectDropdown;
244
- Group: typeof SelectGroup;
245
- Item: typeof SelectItem;
176
+ configure: ReturnType<typeof createComponentConfig<ComboboxProps>>;
177
+ classNames: ReturnType<typeof createClassNamesConfig<ComboboxClassNames>>;
178
+ Root: typeof ComboboxRoot;
179
+ Input: typeof ComboboxInput;
180
+ Dropdown: typeof ComboboxDropdown;
181
+ Group: typeof ComboboxGroup;
182
+ Option: typeof ComboboxOption;
246
183
  };
247
184
  }
248
-
249
- export interface SelectRootFactoryPayload extends FactoryPayload {
250
- props: SelectRootProps;
185
+ export interface ComboboxRootFactoryPayload extends FactoryPayload {
186
+ props: ComboboxRootProps;
251
187
  ref: HTMLDivElement;
252
188
  }
253
-
254
- export interface SelectTriggerFactoryPayload extends FactoryPayload {
255
- props: SelectTriggerProps;
189
+ export interface ComboboxInputFactoryPayload extends FactoryPayload {
190
+ props: ComboboxInputProps;
256
191
  ref: HTMLDivElement;
257
192
  }
258
-
259
- export interface SelectDropdownFactoryPayload extends FactoryPayload {
260
- props: SelectDropdownProps;
193
+ export interface ComboboxDropdownFactoryPayload extends FactoryPayload {
194
+ props: ComboboxDropdownProps;
261
195
  ref: HTMLDivElement;
262
196
  }
263
-
264
- export interface SelectGroupFactoryPayload extends FactoryPayload {
265
- props: SelectGroupProps;
197
+ export interface ComboboxGroupFactoryPayload extends FactoryPayload {
198
+ props: ComboboxGroupProps;
266
199
  ref: HTMLDivElement;
267
200
  }
268
-
269
- export interface SelectItemFactoryPayload extends FactoryPayload {
270
- props: SelectItemProps;
201
+ export interface ComboboxOptionFactoryPayload extends FactoryPayload {
202
+ props: ComboboxOptionProps;
271
203
  ref: HTMLButtonElement;
272
204
  }
205
+ //# sourceMappingURL=combobox.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.types.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/combobox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC7B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd,mBAAmB;IACnB,KAAK,EAAE,SAAS,CAAC;IAEjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,kBAAkB;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,kBAAkB;IAClB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,CACzB,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,KACZ,OAAO,CAAC;AAEb,MAAM,WAAW,iBACb,SAAQ,IAAI,CACR,wBAAwB,CAAC,KAAK,CAAC,EAC/B,OAAO,GAAG,cAAc,GAAG,UAAU,CACxC;IACD,iDAAiD;IACjD,QAAQ,EAAE,SAAS,CAAC;IAEpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,uBAAuB;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE1C,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,gDAAgD;IAChD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uDAAuD;IACvD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,mCAAmC;IACnC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,kCAAkC;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,sCAAsC;IACtC,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,uCAAuC;IACvC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,gEAAgE;IAChE,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;IAEhE,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACvE,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,oCAAoC;IACpC,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAC1E,wCAAwC;IACxC,QAAQ,EAAE,SAAS,CAAC;IAEpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACvE,kBAAkB;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IAEpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBACb,SAAQ,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACtE,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,QAAQ,EAAE,SAAS,CAAC;IAEpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACtE,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE;QACN,SAAS,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,UAAU,EAAE,UAAU,CAClB,OAAO,sBAAsB,CAAC,kBAAkB,CAAC,CACpD,CAAC;QACF,IAAI,EAAE,OAAO,YAAY,CAAC;QAC1B,KAAK,EAAE,OAAO,aAAa,CAAC;QAC5B,QAAQ,EAAE,OAAO,gBAAgB,CAAC;QAClC,KAAK,EAAE,OAAO,aAAa,CAAC;QAC5B,MAAM,EAAE,OAAO,cAAc,CAAC;KACjC,CAAC;CACL;AAED,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAC9D,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,8BAA+B,SAAQ,cAAc;IAClE,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,iBAAiB,CAAC;CAC1B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export { default as Combobox } from "./combobox";
2
+ export { ComboboxRoot } from "./combobox-root";
3
+ export { ComboboxInput } from "./combobox-input";
4
+ export { ComboboxDropdown } from "./combobox-dropdown";
5
+ export { ComboboxGroup } from "./combobox-group";
6
+ export { ComboboxOption } from "./combobox-option";
7
+ export type { ComboboxProps, ComboboxRootProps, ComboboxInputProps, ComboboxDropdownProps, ComboboxGroupProps, ComboboxOptionProps, ComboboxItemData, ComboboxGroupData, ComboboxData, ComboboxClassNames, ComboboxPositioning, ComboboxMiddlewares, ComboboxFilter, ComboboxFilterItem } from "./combobox.types";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACR,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACrB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { default as Combobox } from "./combobox";
2
+ export { ComboboxRoot } from "./combobox-root";
3
+ export { ComboboxInput } from "./combobox-input";
4
+ export { ComboboxDropdown } from "./combobox-dropdown";
5
+ export { ComboboxGroup } from "./combobox-group";
6
+ export { ComboboxOption } from "./combobox-option";
@@ -0,0 +1,32 @@
1
+ import { FloatingContext, Placement } from "@floating-ui/react";
2
+ import type { ComboboxMiddlewares, ComboboxPositioning } from "./combobox.types";
3
+ interface UseComboboxProps {
4
+ opened?: boolean;
5
+ defaultOpened?: boolean;
6
+ onOpenedChange?: (opened: boolean) => void;
7
+ positioning?: ComboboxPositioning;
8
+ middlewares?: ComboboxMiddlewares;
9
+ disabled?: boolean;
10
+ closeOnClickOutside?: boolean;
11
+ closeOnEscape?: boolean;
12
+ }
13
+ export interface UseComboboxReturn {
14
+ opened: boolean;
15
+ open: () => void;
16
+ close: () => void;
17
+ toggle: () => void;
18
+ context: FloatingContext;
19
+ refs: {
20
+ setReference: (node: HTMLElement | null) => void;
21
+ setFloating: (node: HTMLElement | null) => void;
22
+ reference: React.MutableRefObject<HTMLElement | null>;
23
+ floating: React.MutableRefObject<HTMLElement | null>;
24
+ };
25
+ floatingStyles: React.CSSProperties;
26
+ getReferenceProps: (userProps?: React.HTMLAttributes<HTMLElement>) => Record<string, unknown>;
27
+ getFloatingProps: (userProps?: React.HTMLAttributes<HTMLElement>) => Record<string, unknown>;
28
+ placement: Placement;
29
+ }
30
+ export declare function useCombobox(options?: UseComboboxProps): UseComboboxReturn;
31
+ export {};
32
+ //# sourceMappingURL=use-combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/use-combobox.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,eAAe,EAIf,SAAS,EAKZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEjF,UAAU,gBAAgB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE;QACF,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;QACjD,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;QAChD,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACtD,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;KACxD,CAAC;IACF,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAE,CACf,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CACd,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,gBAAqB,GAAG,iBAAiB,CA+G7E"}
@@ -0,0 +1,80 @@
1
+ import { useUncontrolled } from "@refraktor/utils";
2
+ import { autoUpdate, flip, inline, offset, shift, useDismiss, useFloating, useInteractions } from "@floating-ui/react";
3
+ import { useCallback, useMemo } from "react";
4
+ export function useCombobox(options = {}) {
5
+ const { opened, defaultOpened, onOpenedChange, positioning = {
6
+ placement: "bottom-start",
7
+ offset: 4
8
+ }, middlewares = { flip: true, shift: true }, disabled = false, closeOnClickOutside = true, closeOnEscape = true } = options;
9
+ const [isOpen, setIsOpen] = useUncontrolled({
10
+ value: opened,
11
+ defaultValue: defaultOpened,
12
+ finalValue: false,
13
+ onChange: onOpenedChange
14
+ });
15
+ const middleware = useMemo(() => {
16
+ const middlewareList = [];
17
+ middlewareList.push(offset(positioning.offset ?? 4));
18
+ if (middlewares.flip) {
19
+ middlewareList.push(flip(typeof middlewares.flip === "boolean"
20
+ ? undefined
21
+ : middlewares.flip));
22
+ }
23
+ if (middlewares.shift) {
24
+ middlewareList.push(shift(typeof middlewares.shift === "boolean"
25
+ ? undefined
26
+ : middlewares.shift));
27
+ }
28
+ if (middlewares.inline) {
29
+ middlewareList.push(inline(typeof middlewares.inline === "boolean"
30
+ ? undefined
31
+ : middlewares.inline));
32
+ }
33
+ return middlewareList;
34
+ }, [positioning.offset, middlewares]);
35
+ const floating = useFloating({
36
+ placement: positioning.placement,
37
+ open: isOpen,
38
+ onOpenChange: setIsOpen,
39
+ middleware,
40
+ whileElementsMounted: autoUpdate,
41
+ strategy: "fixed"
42
+ });
43
+ const dismiss = useDismiss(floating.context, {
44
+ outsidePress: closeOnClickOutside,
45
+ escapeKey: closeOnEscape
46
+ });
47
+ const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);
48
+ const open = useCallback(() => {
49
+ if (!disabled) {
50
+ setIsOpen(true);
51
+ }
52
+ }, [disabled, setIsOpen]);
53
+ const close = useCallback(() => {
54
+ setIsOpen(false);
55
+ }, [setIsOpen]);
56
+ const toggle = useCallback(() => {
57
+ if (!disabled) {
58
+ setIsOpen(!isOpen);
59
+ }
60
+ }, [disabled, isOpen, setIsOpen]);
61
+ return {
62
+ opened: isOpen,
63
+ open,
64
+ close,
65
+ toggle,
66
+ context: floating.context,
67
+ refs: {
68
+ setReference: floating.refs.setReference,
69
+ setFloating: floating.refs.setFloating,
70
+ reference: floating.refs
71
+ .reference,
72
+ floating: floating.refs
73
+ .floating
74
+ },
75
+ floatingStyles: floating.floatingStyles,
76
+ getReferenceProps,
77
+ getFloatingProps,
78
+ placement: floating.placement
79
+ };
80
+ }
@@ -0,0 +1,4 @@
1
+ import { DrawerBodyFactoryPayload } from "../drawer.types";
2
+ declare const DrawerBody: import("../../..").RefraktorComponent<DrawerBodyFactoryPayload>;
3
+ export default DrawerBody;
4
+ //# sourceMappingURL=drawer-body.d.ts.map