@choice-ui/react 1.4.3 → 1.4.6

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 (459) hide show
  1. package/dist/components/alert-dialog/dist/index.d.ts +20 -41
  2. package/dist/components/alert-dialog/dist/index.js +497 -0
  3. package/dist/components/alert-dialog/src/alert-dialog.js +1 -1
  4. package/dist/components/alert-dialog/src/hooks/use-alert-dialog.d.ts +1 -1
  5. package/dist/components/alert-dialog/src/index.d.ts +4 -5
  6. package/dist/components/alert-dialog/src/types.d.ts +11 -11
  7. package/dist/components/avatar/dist/index.js +4 -4
  8. package/dist/components/avatar/src/avatar.js +4 -4
  9. package/dist/components/badge/src/badge.js +2 -2
  10. package/dist/components/badge/src/index.d.ts +2 -1
  11. package/dist/components/button/dist/index.js +4 -4
  12. package/dist/components/button/src/button.js +4 -4
  13. package/dist/components/calendar/dist/index.d.ts +296 -296
  14. package/dist/components/calendar/dist/index.js +57 -56
  15. package/dist/components/calendar/src/date-range-input/date-range-input.d.ts +5 -5
  16. package/dist/components/calendar/src/time-calendar/time-calendar.d.ts +3 -3
  17. package/dist/components/calendar/src/time-calendar/time-calendar.js +2 -2
  18. package/dist/components/calendar/src/time-input/time-input.d.ts +9 -9
  19. package/dist/components/calendar/src/time-input/time-input.js +4 -4
  20. package/dist/components/calendar/src/types.d.ts +165 -165
  21. package/dist/components/calendar/src/utils/constants.js +32 -31
  22. package/dist/components/calendar/src/utils/date-comparisons.d.ts +34 -34
  23. package/dist/components/calendar/src/utils/locale.d.ts +12 -12
  24. package/dist/components/calendar/src/utils/month.d.ts +3 -3
  25. package/dist/components/calendar/src/utils/month.js +1 -1
  26. package/dist/components/calendar/src/utils/parsers/month-names.js +3 -3
  27. package/dist/components/calendar/src/utils/parsers/numeric-utils.d.ts +20 -20
  28. package/dist/components/calendar/src/utils/parsers/numeric-utils.js +8 -8
  29. package/dist/components/calendar/src/utils/parsers/parsers.d.ts +17 -17
  30. package/dist/components/calendar/src/utils/parsers/parsers.js +2 -2
  31. package/dist/components/calendar/src/utils/parsers/prediction.d.ts +7 -7
  32. package/dist/components/calendar/src/utils/parsers/relative-dates.js +6 -6
  33. package/dist/components/calendar/src/utils/quarter.d.ts +13 -13
  34. package/dist/components/calendar/src/utils/quarter.js +6 -6
  35. package/dist/components/calendar/src/utils/time.d.ts +8 -8
  36. package/dist/components/calendar/src/utils/year.d.ts +3 -3
  37. package/dist/components/calendar/src/utils/year.js +3 -3
  38. package/dist/components/checkbox/dist/index.d.ts +1 -12
  39. package/dist/components/checkbox/dist/index.js +9 -9
  40. package/dist/components/checkbox/src/checkbox-label.js +2 -2
  41. package/dist/components/checkbox/src/checkbox.js +6 -5
  42. package/dist/components/checkbox/src/context.js +1 -1
  43. package/dist/components/checkbox/src/index.d.ts +0 -3
  44. package/dist/components/chip/dist/index.js +6 -6
  45. package/dist/components/chip/src/chip.js +6 -6
  46. package/dist/components/chip/src/index.d.ts +2 -1
  47. package/dist/components/chips-input/dist/index.js +270 -0
  48. package/dist/components/chips-input/src/index.d.ts +2 -1
  49. package/dist/components/code-block/dist/index.d.ts +14 -32
  50. package/dist/components/code-block/dist/index.js +211 -147
  51. package/dist/components/code-block/src/code-block.d.ts +8 -1
  52. package/dist/components/code-block/src/code-block.js +14 -3
  53. package/dist/components/code-block/src/components/code-block-code.js +31 -5
  54. package/dist/components/code-block/src/components/code-block-header.js +45 -10
  55. package/dist/components/code-block/src/index.d.ts +3 -9
  56. package/dist/components/combobox/dist/index.d.ts +21 -2
  57. package/dist/components/combobox/dist/index.js +16 -13
  58. package/dist/components/combobox/src/combobox-trigger.d.ts +1 -1
  59. package/dist/components/combobox/src/combobox-trigger.js +7 -4
  60. package/dist/components/combobox/src/combobox.d.ts +20 -1
  61. package/dist/components/combobox/src/combobox.js +10 -10
  62. package/dist/components/command/dist/index.d.ts +65 -4
  63. package/dist/components/command/src/command.js +6 -5
  64. package/dist/components/command/src/components/command-divider.d.ts +4 -1
  65. package/dist/components/command/src/components/command-group.d.ts +16 -1
  66. package/dist/components/command/src/components/command-group.js +56 -54
  67. package/dist/components/command/src/components/command-input.js +3 -3
  68. package/dist/components/command/src/components/command-item.d.ts +1 -1
  69. package/dist/components/command/src/components/command-item.js +117 -115
  70. package/dist/components/command/src/components/command-loading.d.ts +8 -0
  71. package/dist/components/command/src/components/command-loading.js +1 -1
  72. package/dist/components/command/src/context/create-command-context.js +1 -1
  73. package/dist/components/command/src/hooks/use-schedule-layout-effect.d.ts +1 -1
  74. package/dist/components/command/src/hooks/use-value.js +2 -2
  75. package/dist/components/command/src/index.d.ts +16 -8
  76. package/dist/components/command/src/tv.d.ts +30 -0
  77. package/dist/components/command/src/tv.js +10 -0
  78. package/dist/components/command/src/types.d.ts +8 -0
  79. package/dist/components/command/src/utils/constants.d.ts +1 -1
  80. package/dist/components/command/src/utils/constants.js +1 -1
  81. package/dist/components/command/src/utils/helpers.d.ts +0 -1
  82. package/dist/components/command/src/utils/helpers.js +1 -3
  83. package/dist/components/command/src/utils/index.d.ts +1 -0
  84. package/dist/components/comments/src/comment-input/components/comment-input-mention-popover.js +4 -2
  85. package/dist/components/comments/src/comments.js +1 -1
  86. package/dist/components/context-input/dist/index.d.ts +47 -251
  87. package/dist/components/context-input/src/components/mention-menu.d.ts +5 -4
  88. package/dist/components/context-input/src/components/mention-menu.js +19 -4
  89. package/dist/components/context-input/src/components/mention.d.ts +2 -2
  90. package/dist/components/context-input/src/components/slate-editor.js +4 -2
  91. package/dist/components/context-input/src/context-input.js +31 -16
  92. package/dist/components/context-input/src/extensions/with-mentions.d.ts +1 -1
  93. package/dist/components/context-input/src/extensions/with-mentions.js +10 -9
  94. package/dist/components/context-input/src/hooks/use-context-input.js +87 -46
  95. package/dist/components/context-input/src/hooks/use-mentions.d.ts +11 -10
  96. package/dist/components/context-input/src/hooks/use-mentions.js +147 -128
  97. package/dist/components/context-input/src/index.d.ts +4 -5
  98. package/dist/components/context-input/src/types.d.ts +12 -12
  99. package/dist/components/context-input/src/utils/mention-spacing.d.ts +16 -16
  100. package/dist/components/context-input/src/utils/slate-converters.d.ts +6 -6
  101. package/dist/components/context-input/src/utils/slate-converters.js +2 -2
  102. package/dist/components/context-input/src/utils/text-extraction.js +7 -1
  103. package/dist/components/context-menu/src/context-menu.js +10 -4
  104. package/dist/components/dialog/dist/index.js +1 -2
  105. package/dist/components/dialog/src/dialog.js +0 -1
  106. package/dist/components/dialog/src/hooks/use-floating-dialog.js +1 -1
  107. package/dist/components/dialog/src/index.d.ts +3 -2
  108. package/dist/components/dropdown/dist/index.d.ts +1 -2
  109. package/dist/components/dropdown/dist/index.js +23 -8
  110. package/dist/components/dropdown/src/dropdown.d.ts +1 -2
  111. package/dist/components/dropdown/src/dropdown.js +23 -8
  112. package/dist/components/emoji-picker/dist/index.d.ts +33 -1
  113. package/dist/components/emoji-picker/dist/index.js +3 -1
  114. package/dist/components/emoji-picker/src/emoji-picker.d.ts +1 -1
  115. package/dist/components/emoji-picker/src/emoji-picker.js +3 -1
  116. package/dist/components/emoji-picker/src/index.d.ts +3 -1
  117. package/dist/components/form/dist/index.d.ts +93 -98
  118. package/dist/components/form/src/adapters/base-adapter.d.ts +3 -3
  119. package/dist/components/form/src/adapters/checkbox-adapter.d.ts +1 -1
  120. package/dist/components/form/src/adapters/chips-input-adapter.d.ts +9 -0
  121. package/dist/components/form/src/adapters/chips-input-adapter.js +38 -0
  122. package/dist/components/form/src/adapters/index.d.ts +8 -7
  123. package/dist/components/form/src/adapters/input-adapter.d.ts +1 -1
  124. package/dist/components/form/src/adapters/multi-select-adapter.d.ts +1 -1
  125. package/dist/components/form/src/adapters/numeric-input-adapter.d.ts +1 -1
  126. package/dist/components/form/src/adapters/raido-group-adapter.d.ts +1 -7
  127. package/dist/components/form/src/adapters/range-adapter.d.ts +1 -7
  128. package/dist/components/form/src/adapters/segmented-adapter.d.ts +1 -7
  129. package/dist/components/form/src/adapters/select-adapter.d.ts +1 -1
  130. package/dist/components/form/src/adapters/switch-adapter.d.ts +1 -1
  131. package/dist/components/form/src/adapters/textarea-adapter.d.ts +1 -1
  132. package/dist/components/form/src/index.d.ts +18 -16
  133. package/dist/components/form/src/index.js +16 -13
  134. package/dist/components/form/src/types.d.ts +58 -51
  135. package/dist/components/hint/dist/index.d.ts +10 -54
  136. package/dist/components/hint/src/components/info-content.d.ts +3 -5
  137. package/dist/components/hint/src/components/info-content.js +14 -6
  138. package/dist/components/hint/src/components/info-trigger.d.ts +2 -3
  139. package/dist/components/hint/src/components/info-trigger.js +4 -2
  140. package/dist/components/hint/src/context/hint-context.d.ts +2 -0
  141. package/dist/components/hint/src/context/hint-context.js +1 -1
  142. package/dist/components/hint/src/hint.d.ts +7 -7
  143. package/dist/components/hint/src/hint.js +24 -29
  144. package/dist/components/hint/src/hooks/use-hint.d.ts +4 -2
  145. package/dist/components/hint/src/hooks/use-hint.js +12 -4
  146. package/dist/components/hint/src/index.d.ts +3 -3
  147. package/dist/components/hint/src/tv.d.ts +33 -0
  148. package/dist/components/hint/src/tv.js +11 -0
  149. package/dist/components/icon-button/dist/index.js +2 -2
  150. package/dist/components/icon-button/src/icon-button.js +2 -2
  151. package/dist/components/index.d.ts +3 -0
  152. package/dist/components/input/dist/index.js +4 -4
  153. package/dist/components/input/src/input.js +3 -3
  154. package/dist/components/input/src/tv.js +1 -1
  155. package/dist/components/kbd/dist/index.js +4 -4
  156. package/dist/components/kbd/src/kbd.js +4 -4
  157. package/dist/components/label/dist/index.js +3 -3
  158. package/dist/components/label/src/tv.js +3 -3
  159. package/dist/components/link-button/dist/index.js +3 -3
  160. package/dist/components/link-button/src/link-button.js +3 -3
  161. package/dist/components/list/src/components/list-content.js +2 -2
  162. package/dist/components/list/src/components/list-divider.js +3 -3
  163. package/dist/components/list/src/components/list-item.js +5 -5
  164. package/dist/components/list/src/components/list-label.js +2 -2
  165. package/dist/components/list/src/components/list-sub-trigger.js +4 -4
  166. package/dist/components/list/src/list.js +2 -2
  167. package/dist/components/md-input/dist/index.d.ts +8 -104
  168. package/dist/components/md-input/src/components/extensions/md-input-mention.d.ts +6 -4
  169. package/dist/components/md-input/src/components/extensions/md-input-mention.js +23 -6
  170. package/dist/components/md-input/src/components/md-input-container.js +1 -0
  171. package/dist/components/md-input/src/components/md-input-editor.js +4 -1
  172. package/dist/components/md-input/src/components/md-input-footer.js +5 -1
  173. package/dist/components/md-input/src/components/toolbar/default-actions.d.ts +2 -2
  174. package/dist/components/md-input/src/components/toolbar/toolbar-button.d.ts +1 -0
  175. package/dist/components/md-input/src/components/toolbar/toolbar-button.js +1 -7
  176. package/dist/components/md-input/src/components/toolbar/toolbar.d.ts +2 -2
  177. package/dist/components/md-input/src/hooks/use-markdown-mentions.d.ts +5 -4
  178. package/dist/components/md-input/src/hooks/use-markdown-mentions.js +31 -4
  179. package/dist/components/md-input/src/index.d.ts +1 -4
  180. package/dist/components/md-input/src/md-input.js +18 -14
  181. package/dist/components/md-input/src/tv.d.ts +3 -0
  182. package/dist/components/md-input/src/tv.js +2 -1
  183. package/dist/components/md-input/src/types.d.ts +18 -16
  184. package/dist/components/md-render/dist/index.d.ts +1 -4
  185. package/dist/components/md-render/dist/index.js +8 -9
  186. package/dist/components/md-render/src/components/markdown-components.js +3 -3
  187. package/dist/components/md-render/src/index.d.ts +0 -1
  188. package/dist/components/md-render/src/md-render.js +5 -4
  189. package/dist/components/md-render/src/tv.js +1 -1
  190. package/dist/components/menubar/dist/index.d.ts +50 -0
  191. package/dist/components/menubar/src/components/index.d.ts +3 -0
  192. package/dist/components/menubar/src/components/menubar-divider.d.ts +8 -0
  193. package/dist/components/menubar/src/components/menubar-divider.js +24 -0
  194. package/dist/components/menubar/src/components/menubar-item.d.ts +8 -0
  195. package/dist/components/menubar/src/components/menubar-item.js +195 -0
  196. package/dist/components/menubar/src/components/menubar-trigger.d.ts +8 -0
  197. package/dist/components/menubar/src/components/menubar-trigger.js +45 -0
  198. package/dist/components/menubar/src/context/index.d.ts +1 -0
  199. package/dist/components/menubar/src/context/menubar-context.d.ts +34 -0
  200. package/dist/components/menubar/src/context/menubar-context.js +13 -0
  201. package/dist/components/menubar/src/index.d.ts +3 -0
  202. package/dist/components/menubar/src/menubar.d.ts +22 -0
  203. package/dist/components/menubar/src/menubar.js +177 -0
  204. package/dist/components/menubar/src/tv.d.ts +108 -0
  205. package/dist/components/menubar/src/tv.js +72 -0
  206. package/dist/components/menubar/tsup.config.d.ts +2 -0
  207. package/dist/components/menus/dist/index.d.ts +144 -143
  208. package/dist/components/menus/dist/index.js +50 -49
  209. package/dist/components/menus/src/components/menu-button.js +2 -2
  210. package/dist/components/menus/src/components/menu-checkbox.d.ts +1 -2
  211. package/dist/components/menus/src/components/menu-checkbox.js +2 -2
  212. package/dist/components/menus/src/components/menu-divider.js +3 -3
  213. package/dist/components/menus/src/components/menu-item.js +5 -5
  214. package/dist/components/menus/src/components/menu-label.js +2 -2
  215. package/dist/components/menus/src/components/menu-scroll-arrow.d.ts +2 -2
  216. package/dist/components/menus/src/components/menu-scroll-arrow.js +13 -3
  217. package/dist/components/menus/src/components/menu-search.js +3 -3
  218. package/dist/components/menus/src/components/menu-trigger.js +4 -4
  219. package/dist/components/menus/src/context/menu-context-item.d.ts +6 -6
  220. package/dist/components/menus/src/context/menu-context-item.js +2 -2
  221. package/dist/components/menus/src/context/menu-context-sub-trigger.js +4 -19
  222. package/dist/components/menus/src/context/menu-context.d.ts +2 -2
  223. package/dist/components/menus/src/hooks/use-menu-base-refs.d.ts +12 -12
  224. package/dist/components/menus/src/hooks/use-menu-children.d.ts +16 -16
  225. package/dist/components/menus/src/hooks/use-menu-floating.d.ts +22 -22
  226. package/dist/components/menus/src/hooks/use-menu-refs.d.ts +8 -8
  227. package/dist/components/menus/src/hooks/use-menu-refs.js +2 -2
  228. package/dist/components/menus/src/hooks/use-menu-scroll-height.d.ts +11 -11
  229. package/dist/components/menus/src/hooks/use-menu-scroll.d.ts +18 -18
  230. package/dist/components/menus/src/hooks/use-menu-selection.d.ts +21 -21
  231. package/dist/components/menus/src/hooks/use-menu-state.d.ts +11 -11
  232. package/dist/components/menus/src/hooks/use-menu-state.js +4 -4
  233. package/dist/components/menus/src/hooks/use-menu-touch.d.ts +11 -11
  234. package/dist/components/menus/src/hooks/use-menu-tree.d.ts +15 -15
  235. package/dist/components/menus/src/index.d.ts +5 -0
  236. package/dist/components/menus/src/menus.js +2 -2
  237. package/dist/components/menus/src/tv.d.ts +15 -0
  238. package/dist/components/menus/src/tv.js +8 -2
  239. package/dist/components/modal/dist/index.d.ts +3 -1
  240. package/dist/components/modal/dist/index.js +18 -11
  241. package/dist/components/modal/src/components/modal-content.js +2 -2
  242. package/dist/components/modal/src/components/modal-footer.js +2 -2
  243. package/dist/components/modal/src/components/modal-header.d.ts +3 -1
  244. package/dist/components/modal/src/components/modal-header.js +12 -5
  245. package/dist/components/modal/src/modal.js +2 -2
  246. package/dist/components/multi-select/dist/index.js +13 -11
  247. package/dist/components/multi-select/src/components/multi-select-trigger.js +8 -8
  248. package/dist/components/multi-select/src/multi-select.js +5 -3
  249. package/dist/components/numeric-input/dist/index.d.ts +10 -117
  250. package/dist/components/numeric-input/dist/index.js +18 -24
  251. package/dist/components/numeric-input/src/components/numeric-input-element.js +2 -2
  252. package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.d.ts +1 -1
  253. package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.js +2 -2
  254. package/dist/components/numeric-input/src/components/numeric-input-variable.d.ts +1 -2
  255. package/dist/components/numeric-input/src/components/numeric-input-variable.js +3 -3
  256. package/dist/components/numeric-input/src/hooks/use-input-interactions.d.ts +3 -3
  257. package/dist/components/numeric-input/src/hooks/use-numeric-input.d.ts +3 -3
  258. package/dist/components/numeric-input/src/hooks/use-numeric-value-processing.d.ts +3 -3
  259. package/dist/components/numeric-input/src/hooks/use-step-calculation.d.ts +6 -6
  260. package/dist/components/numeric-input/src/index.d.ts +5 -4
  261. package/dist/components/numeric-input/src/numeric-input.js +9 -9
  262. package/dist/components/numeric-input/src/utils/error-handler.d.ts +8 -8
  263. package/dist/components/numeric-input/src/utils/expression-evaluator.d.ts +11 -11
  264. package/dist/components/numeric-input/src/utils/input-parser.d.ts +8 -8
  265. package/dist/components/numeric-input/src/utils/numeric-value-processor.d.ts +6 -6
  266. package/dist/components/numeric-input/src/utils/pattern-parser.d.ts +7 -7
  267. package/dist/components/numeric-input/src/utils/value-comparator.d.ts +16 -16
  268. package/dist/components/numeric-input/src/utils/value-processor.d.ts +14 -14
  269. package/dist/components/pagination/src/components/pagination-items-per-page.js +1 -1
  270. package/dist/components/pagination/src/components/pagination-navigation.js +5 -5
  271. package/dist/components/pagination/src/components/pagination-root.js +3 -3
  272. package/dist/components/pagination/src/components/pagination-spinner.js +20 -19
  273. package/dist/components/pagination/src/context/index.d.ts +1 -0
  274. package/dist/components/popover/dist/index.d.ts +2 -4
  275. package/dist/components/popover/dist/index.js +25 -33
  276. package/dist/components/popover/src/components/popover-header.js +1 -1
  277. package/dist/components/popover/src/hooks/use-drag.d.ts +3 -3
  278. package/dist/components/popover/src/hooks/use-floating-popover.d.ts +0 -2
  279. package/dist/components/popover/src/hooks/use-floating-popover.js +16 -13
  280. package/dist/components/popover/src/index.d.ts +2 -1
  281. package/dist/components/popover/src/popover.d.ts +1 -2
  282. package/dist/components/popover/src/popover.js +11 -21
  283. package/dist/components/progress/src/index.d.ts +4 -2
  284. package/dist/components/radio/dist/index.d.ts +1 -17
  285. package/dist/components/radio/dist/index.js +7 -10
  286. package/dist/components/radio/src/context.js +1 -1
  287. package/dist/components/radio/src/index.d.ts +0 -4
  288. package/dist/components/radio/src/radio-label.js +2 -2
  289. package/dist/components/radio/src/radio.js +4 -4
  290. package/dist/components/range/dist/index.js +16 -16
  291. package/dist/components/range/src/index.d.ts +4 -2
  292. package/dist/components/range/src/range-tuple.js +10 -10
  293. package/dist/components/range/src/range.js +6 -6
  294. package/dist/components/rich-input/dist/index.d.ts +12 -366
  295. package/dist/components/rich-input/src/components/rich-input-editable-component.d.ts +2 -2
  296. package/dist/components/rich-input/src/components/rich-input-viewport.d.ts +2 -2
  297. package/dist/components/rich-input/src/hooks/use-editor-config.d.ts +1 -1
  298. package/dist/components/rich-input/src/hooks/use-editor-effects.js +3 -0
  299. package/dist/components/rich-input/src/hooks/use-floating-ui.js +1 -1
  300. package/dist/components/rich-input/src/hooks/use-keyboard-shortcuts.d.ts +9 -9
  301. package/dist/components/rich-input/src/hooks/use-rich-input.d.ts +2 -2
  302. package/dist/components/rich-input/src/hooks/use-rich-input.js +40 -17
  303. package/dist/components/rich-input/src/hooks/use-selection-events.js +1 -2
  304. package/dist/components/rich-input/src/index.d.ts +3 -5
  305. package/dist/components/rich-input/src/rich-input-base.js +1 -1
  306. package/dist/components/rich-input/src/utils/custom-options.js +1 -1
  307. package/dist/components/rich-input/src/utils/editor-utils.js +1 -1
  308. package/dist/components/rich-input/src/utils/markdown-to-slate.d.ts +2 -2
  309. package/dist/components/rich-input/src/utils/slate-to-markdown.d.ts +1 -1
  310. package/dist/components/rich-input/src/utils/slate-to-markdown.js +9 -0
  311. package/dist/components/scroll-area/dist/index.d.ts +19 -19
  312. package/dist/components/scroll-area/dist/index.js +24 -24
  313. package/dist/components/scroll-area/src/components/scroll-area-corner.js +2 -2
  314. package/dist/components/scroll-area/src/components/scroll-area-root.js +3 -3
  315. package/dist/components/scroll-area/src/components/scroll-area-scrollbar.js +2 -2
  316. package/dist/components/scroll-area/src/components/scroll-area-thumb.js +2 -2
  317. package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.d.ts +6 -6
  318. package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.js +3 -3
  319. package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.d.ts +1 -1
  320. package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.js +3 -3
  321. package/dist/components/scroll-area/src/hooks/use-scrollbar.d.ts +2 -2
  322. package/dist/components/scroll-area/src/hooks/use-thumb.d.ts +2 -2
  323. package/dist/components/scroll-area/src/tv.d.ts +18 -18
  324. package/dist/components/scroll-area/src/tv.js +12 -12
  325. package/dist/components/scroll-area/src/types.d.ts +8 -8
  326. package/dist/components/scroll-area/src/utils/index.d.ts +3 -3
  327. package/dist/components/search-input/dist/index.js +3 -3
  328. package/dist/components/search-input/src/index.d.ts +2 -1
  329. package/dist/components/search-input/src/search-input.js +3 -3
  330. package/dist/components/segmented/dist/index.js +5 -5
  331. package/dist/components/segmented/src/segmented-item.js +3 -3
  332. package/dist/components/segmented/src/segmented.js +2 -2
  333. package/dist/components/select/dist/index.js +4 -4
  334. package/dist/components/select/src/select.js +4 -4
  335. package/dist/components/separator/dist/index.d.ts +26 -0
  336. package/dist/components/separator/src/index.d.ts +2 -0
  337. package/dist/components/separator/src/separator.d.ts +22 -0
  338. package/dist/components/separator/src/separator.js +33 -0
  339. package/dist/components/separator/src/tv.d.ts +76 -0
  340. package/dist/components/separator/src/tv.js +25 -0
  341. package/dist/components/separator/tsup.config.d.ts +2 -0
  342. package/dist/components/skeleton/dist/index.d.ts +1 -28
  343. package/dist/components/skeleton/src/context/skeleton-context.js +1 -1
  344. package/dist/components/skeleton/src/hooks/use-skeleton.d.ts +1 -2
  345. package/dist/components/skeleton/src/hooks/use-skeleton.js +1 -1
  346. package/dist/components/skeleton/src/index.d.ts +1 -3
  347. package/dist/components/skeleton/src/skeleton.d.ts +0 -13
  348. package/dist/components/skeleton/src/skeleton.js +4 -6
  349. package/dist/components/skeleton/src/tv.d.ts +18 -12
  350. package/dist/components/skeleton/src/tv.js +10 -6
  351. package/dist/components/slot/dist/index.d.ts +10 -10
  352. package/dist/components/slot/dist/index.js +4 -2
  353. package/dist/components/slot/src/slot.d.ts +12 -12
  354. package/dist/components/slot/src/slot.js +6 -3
  355. package/dist/components/stackflow/src/context.js +1 -1
  356. package/dist/components/stackflow/src/index.d.ts +2 -1
  357. package/dist/components/switch/dist/index.d.ts +2 -2
  358. package/dist/components/switch/dist/index.js +6 -7
  359. package/dist/components/switch/src/index.d.ts +2 -1
  360. package/dist/components/switch/src/switch.js +6 -6
  361. package/dist/components/table/dist/index.d.ts +679 -0
  362. package/dist/components/table/index.d.ts +1 -0
  363. package/dist/components/table/src/components/column-resizer.d.ts +8 -0
  364. package/dist/components/table/src/components/column-resizer.js +58 -0
  365. package/dist/components/table/src/components/drag-guide.d.ts +6 -0
  366. package/dist/components/table/src/components/drag-guide.js +64 -0
  367. package/dist/components/table/src/components/index.d.ts +12 -0
  368. package/dist/components/table/src/components/resize-guide.d.ts +5 -0
  369. package/dist/components/table/src/components/resize-guide.js +25 -0
  370. package/dist/components/table/src/components/table-body.d.ts +6 -0
  371. package/dist/components/table/src/components/table-body.js +335 -0
  372. package/dist/components/table/src/components/table-cell.d.ts +6 -0
  373. package/dist/components/table/src/components/table-cell.js +89 -0
  374. package/dist/components/table/src/components/table-column.d.ts +5 -0
  375. package/dist/components/table/src/components/table-column.js +269 -0
  376. package/dist/components/table/src/components/table-empty.d.ts +8 -0
  377. package/dist/components/table/src/components/table-empty.js +10 -0
  378. package/dist/components/table/src/components/table-footer.d.ts +7 -0
  379. package/dist/components/table/src/components/table-footer.js +15 -0
  380. package/dist/components/table/src/components/table-header.d.ts +3 -0
  381. package/dist/components/table/src/components/table-header.js +88 -0
  382. package/dist/components/table/src/components/table-root.d.ts +3 -0
  383. package/dist/components/table/src/components/table-root.js +317 -0
  384. package/dist/components/table/src/components/table-row.d.ts +23 -0
  385. package/dist/components/table/src/components/table-row.js +166 -0
  386. package/dist/components/table/src/components/table-value.d.ts +6 -0
  387. package/dist/components/table/src/components/table-value.js +8 -0
  388. package/dist/components/table/src/context.d.ts +121 -0
  389. package/dist/components/table/src/context.js +63 -0
  390. package/dist/components/table/src/hooks/index.d.ts +4 -0
  391. package/dist/components/table/src/hooks/use-column-order.d.ts +26 -0
  392. package/dist/components/table/src/hooks/use-column-order.js +95 -0
  393. package/dist/components/table/src/hooks/use-column-resize.d.ts +17 -0
  394. package/dist/components/table/src/hooks/use-column-resize.js +75 -0
  395. package/dist/components/table/src/hooks/use-consecutive-selection-style.d.ts +12 -0
  396. package/dist/components/table/src/hooks/use-consecutive-selection-style.js +28 -0
  397. package/dist/components/table/src/hooks/use-table.d.ts +35 -0
  398. package/dist/components/table/src/hooks/use-table.js +245 -0
  399. package/dist/components/table/src/index.d.ts +4 -0
  400. package/dist/components/table/src/table.d.ts +88 -0
  401. package/dist/components/table/src/table.js +24 -0
  402. package/dist/components/table/src/tv.d.ts +176 -0
  403. package/dist/components/table/src/tv.js +97 -0
  404. package/dist/components/table/src/types.d.ts +292 -0
  405. package/dist/components/table/tsup.config.d.ts +2 -0
  406. package/dist/components/tabs/dist/index.js +4 -3
  407. package/dist/components/tabs/src/tabs.d.ts +2 -2
  408. package/dist/components/tabs/src/tabs.js +5 -4
  409. package/dist/components/text-field/dist/index.d.ts +1 -1
  410. package/dist/components/text-field/dist/index.js +10 -10
  411. package/dist/components/text-field/src/components/field-addon.d.ts +1 -2
  412. package/dist/components/text-field/src/index.d.ts +3 -1
  413. package/dist/components/text-field/src/text-field.js +10 -10
  414. package/dist/components/textarea/dist/index.d.ts +33 -5
  415. package/dist/components/textarea/dist/index.js +32 -7
  416. package/dist/components/textarea/src/components/autosize/index.d.ts +6 -1
  417. package/dist/components/textarea/src/components/autosize/index.js +31 -6
  418. package/dist/components/textarea/src/textarea.js +1 -1
  419. package/dist/components/textarea/src/types.d.ts +33 -5
  420. package/dist/components/toggle-button/dist/index.d.ts +26 -2
  421. package/dist/components/toggle-button/src/context.d.ts +11 -0
  422. package/dist/components/toggle-button/src/context.js +13 -0
  423. package/dist/components/toggle-button/src/index.d.ts +2 -0
  424. package/dist/components/toggle-button/src/toggle-button.js +4 -4
  425. package/dist/components/toggle-button/src/toggle-group.d.ts +26 -0
  426. package/dist/components/toggle-button/src/toggle-group.js +156 -0
  427. package/dist/components/toggle-button/src/tv.d.ts +67 -3
  428. package/dist/components/toggle-button/src/tv.js +45 -14
  429. package/dist/components/tooltip/dist/index.d.ts +10 -43
  430. package/dist/components/tooltip/dist/index.js +35 -33
  431. package/dist/components/tooltip/src/components/tooltip-arrow.js +1 -1
  432. package/dist/components/tooltip/src/components/tooltip-content.js +5 -4
  433. package/dist/components/tooltip/src/context/index.d.ts +1 -0
  434. package/dist/components/tooltip/src/hooks/use-tooltip.js +3 -3
  435. package/dist/components/tooltip/src/index.d.ts +2 -4
  436. package/dist/components/tooltip/src/tooltip.d.ts +7 -1
  437. package/dist/components/tooltip/src/tooltip.js +6 -1
  438. package/dist/components/tooltip/src/tv.js +1 -1
  439. package/dist/components/virtualized-grid/dist/index.d.ts +2 -2
  440. package/dist/components/virtualized-grid/src/use-item-pool.js +14 -26
  441. package/dist/components/virtualized-grid/src/use-virtualized-grid.d.ts +1 -1
  442. package/dist/components/virtualized-grid/src/use-virtualized-grid.js +14 -8
  443. package/dist/components/virtualized-grid/src/utility.d.ts +1 -1
  444. package/dist/components/virtualized-grid/src/utility.js +37 -31
  445. package/dist/components/virtualized-grid/src/virtualized-grid.js +27 -17
  446. package/dist/context/choice-ui-provider.d.ts +35 -0
  447. package/dist/context/choice-ui-provider.js +14 -0
  448. package/dist/context/index.d.ts +2 -0
  449. package/dist/index.d.ts +1 -0
  450. package/dist/index.js +53 -177
  451. package/package.json +1 -1
  452. package/dist/components/code-block/src/index.js +0 -15
  453. package/dist/components/rich-input/src/hooks/use-mouse-events.js +0 -113
  454. package/dist/components/rich-input/src/hooks/use-validation.js +0 -80
  455. package/dist/components/rich-input/src/utils/markdown-to-slate.js +0 -219
  456. /package/dist/components/command/src/{command-score.d.ts → utils/command-score.d.ts} +0 -0
  457. /package/dist/components/command/src/{command-score.js → utils/command-score.js} +0 -0
  458. /package/dist/components/pagination/src/{components → context}/pagination-context.d.ts +0 -0
  459. /package/dist/components/pagination/src/{components → context}/pagination-context.js +0 -0
@@ -1,32 +1,32 @@
1
1
  import { Editor } from 'slate';
2
2
  /**
3
- * 检查是否需要在当前位置前面添加空格
4
- * @param editor - SlateJS 编辑器实例
5
- * @returns 是否需要添加前导空格
3
+ * Check if a space should be inserted before the current position
4
+ * @param editor - SlateJS editor instance
5
+ * @returns Whether a leading space should be added
6
6
  */
7
7
  export declare function shouldInsertSpaceBefore(editor: Editor): boolean;
8
8
  /**
9
- * 检查是否需要在当前位置后面添加空格
10
- * @param editor - SlateJS 编辑器实例
11
- * @returns 是否需要添加后导空格
9
+ * Check if a space should be inserted after the current position
10
+ * @param editor - SlateJS editor instance
11
+ * @returns Whether a trailing space should be added
12
12
  */
13
13
  export declare function shouldInsertSpaceAfter(editor: Editor): boolean;
14
14
  /**
15
- * 在当前位置智能插入空格(前导空格)
16
- * @param editor - SlateJS 编辑器实例
17
- * @returns 是否插入了空格
15
+ * Smartly insert space at current position (leading space)
16
+ * @param editor - SlateJS editor instance
17
+ * @returns Whether a space was inserted
18
18
  */
19
19
  export declare function insertSpaceBeforeIfNeeded(editor: Editor): boolean;
20
20
  /**
21
- * 在当前位置智能插入空格(后导空格)
22
- * @param editor - SlateJS 编辑器实例
23
- * @returns 是否插入了空格
21
+ * Smartly insert space at current position (trailing space)
22
+ * @param editor - SlateJS editor instance
23
+ * @returns Whether a space was inserted
24
24
  */
25
25
  export declare function insertSpaceAfterIfNeeded(editor: Editor): boolean;
26
26
  /**
27
- * mention 插入智能间距
28
- * 这个函数会在插入 mention 前后根据上下文智能添加空格
29
- * @param editor - SlateJS 编辑器实例
30
- * @param beforeInsertion - 在插入内容前执行的回调
27
+ * Insert smart spacing for mention
28
+ * This function intelligently adds spaces before/after mention insertion based on context
29
+ * @param editor - SlateJS editor instance
30
+ * @param beforeInsertion - Callback to execute before content insertion
31
31
  */
32
32
  export declare function insertWithSmartSpacing(editor: Editor, beforeInsertion: () => void): void;
@@ -1,16 +1,16 @@
1
1
  import { Descendant } from 'slate';
2
2
  /**
3
- * SlateJS节点数组转换为字符串
4
- * mention节点转换为 {{#context#}}{{#id.text#}} 格式
3
+ * Convert SlateJS node array to string
4
+ * Mention nodes are converted to {{#context#}}{{#id.text#}} format
5
5
  */
6
6
  export declare function convertSlateToText(nodes: Descendant[]): string;
7
7
  /**
8
- * 将字符串转换为SlateJS节点数组
9
- * 支持解析 {{#context#}}{{#id.text#}} 格式为mention节点
8
+ * Convert string to SlateJS node array
9
+ * Supports parsing {{#context#}}{{#id.text#}} format to mention nodes
10
10
  */
11
11
  export declare function convertTextToSlate(text: string): Descendant[];
12
12
  /**
13
- * 创建mention查找函数的接口
13
+ * Interface for mention resolver function
14
14
  */
15
15
  export interface MentionResolver {
16
16
  (mentionId: string): Promise<{
@@ -20,6 +20,6 @@ export interface MentionResolver {
20
20
  }>;
21
21
  }
22
22
  /**
23
- * 高级版本:支持异步解析mention信息
23
+ * Advanced version: supports async mention info resolution
24
24
  */
25
25
  export declare function convertTextToSlateWithResolver(text: string, mentionResolver?: MentionResolver): Promise<Descendant[]>;
@@ -65,10 +65,10 @@ function parseLineToNodes(line) {
65
65
  const mentionNode = {
66
66
  type: "mention",
67
67
  mentionType: "user",
68
- // 默认类型,可能需要根据实际情况调整
68
+ // Default type, may need adjustment based on actual use
69
69
  mentionId,
70
70
  mentionLabel: `User ${mentionId}`,
71
- // 默认标签,实际使用时可能需要查找真实标签
71
+ // Default label, actual use may need to look up real label
72
72
  mentionData: {},
73
73
  children: [{ text: "" }]
74
74
  };
@@ -32,9 +32,15 @@ const extractTextWithMentions = (nodes) => {
32
32
  }
33
33
  return { text, mentionsData };
34
34
  };
35
+ const EMPTY_PARAGRAPH = [
36
+ { type: "paragraph", children: [{ text: "" }] }
37
+ ];
35
38
  const parseTextWithMentions = (text, mentions) => {
39
+ if (!text && text !== "") {
40
+ return EMPTY_PARAGRAPH;
41
+ }
36
42
  if (!mentions || mentions.length === 0) {
37
- return [{ type: "paragraph", children: [{ text }] }];
43
+ return [{ type: "paragraph", children: [{ text: text || "" }] }];
38
44
  }
39
45
  const sortedMentions = [...mentions].sort((a, b) => a.startIndex - b.startIndex);
40
46
  const children = [];
@@ -6,7 +6,10 @@ import { useEventCallback } from "usehooks-ts";
6
6
  const PORTAL_ROOT_ID = "floating-menu-root";
7
7
  const DEFAULT_OFFSET = 4;
8
8
  const ContextMenuContext = React.createContext(null);
9
- const ContextMenuTrigger = ({ children, ...props }) => {
9
+ const ContextMenuTrigger = memo(function ContextMenuTrigger2({
10
+ children,
11
+ ...props
12
+ }) {
10
13
  const contextMenu = useContext(ContextMenuContext);
11
14
  const handleContextMenu = useCallback(
12
15
  (e) => {
@@ -27,7 +30,8 @@ const ContextMenuTrigger = ({ children, ...props }) => {
27
30
  children
28
31
  }
29
32
  );
30
- };
33
+ });
34
+ ContextMenuTrigger.displayName = "ContextMenuTrigger";
31
35
  const ContextMenuComponent = memo(function ContextMenuComponent2(props) {
32
36
  const {
33
37
  children,
@@ -84,8 +88,10 @@ const ContextMenuComponent = memo(function ContextMenuComponent2(props) {
84
88
  apply(args) {
85
89
  var _a;
86
90
  const { elements, availableHeight } = args;
87
- const contentHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || elements.floating.scrollHeight;
88
- const maxHeight = Math.min(contentHeight, availableHeight);
91
+ const floatingScrollHeight = elements.floating.scrollHeight;
92
+ const scrollRefHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || 0;
93
+ const contentHeight = Math.max(floatingScrollHeight, scrollRefHeight);
94
+ const maxHeight = contentHeight > 0 ? Math.min(contentHeight, availableHeight) : availableHeight;
89
95
  Object.assign(elements.floating.style, {
90
96
  maxHeight: `${maxHeight}px`,
91
97
  display: "flex",
@@ -336,7 +336,7 @@ function useFloatingDialog({
336
336
  top: `${dragPosition.y}px`,
337
337
  left: `${dragPosition.x}px`,
338
338
  transform: "none",
339
- // 拖拽时移除过渡动画
339
+ // Remove transition animation when dragging
340
340
  transition: "none"
341
341
  };
342
342
  if (resizeSize) {
@@ -769,7 +769,6 @@ var DialogComponent = memo(function DialogComponent2({
769
769
  isOpen: floating.innerOpen,
770
770
  onClose: floating.handleClose,
771
771
  ...backdropChild.props
772
- // 保留原有的 props
773
772
  });
774
773
  }, [children, floating.innerOpen, floating.handleClose]);
775
774
  const footerContent = useMemo(() => {
@@ -138,7 +138,6 @@ const DialogComponent = memo(function DialogComponent2({
138
138
  isOpen: floating.innerOpen,
139
139
  onClose: floating.handleClose,
140
140
  ...backdropChild.props
141
- // 保留原有的 props
142
141
  });
143
142
  }, [children, floating.innerOpen, floating.handleClose]);
144
143
  const footerContent = useMemo(() => {
@@ -107,7 +107,7 @@ function useFloatingDialog({
107
107
  top: `${dragPosition.y}px`,
108
108
  left: `${dragPosition.x}px`,
109
109
  transform: "none",
110
- // 拖拽时移除过渡动画
110
+ // Remove transition animation when dragging
111
111
  transition: "none"
112
112
  };
113
113
  if (resizeSize) {
@@ -1,2 +1,3 @@
1
- export * from './dialog';
2
- export * from './types';
1
+ export { Dialog } from './dialog';
2
+ export type { DialogProps } from './dialog';
3
+ export type { DialogPosition } from './types';
@@ -3,8 +3,7 @@ import { FloatingFocusManagerProps, Placement } from '@floating-ui/react';
3
3
  import { default as React } from 'react';
4
4
  interface DropdownProps {
5
5
  /**
6
- * CoordinateMode, first item auto select
7
- * 坐标模式下,是否自动选中第一个选项
6
+ * Whether to automatically select the first item in coordinate mode.
8
7
  * @default true
9
8
  */
10
9
  autoSelectFirstItem?: boolean;
@@ -29,7 +29,7 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
29
29
  returnFocus: false,
30
30
  modal: position ? false : true,
31
31
  ...position && { disabled: true }
32
- // 坐标模式下禁用焦点管理
32
+ // Disable focus management in coordinate mode
33
33
  },
34
34
  root,
35
35
  variant = "default"
@@ -86,8 +86,10 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
86
86
  padding: 4,
87
87
  apply({ elements, availableHeight, rects }) {
88
88
  var _a;
89
- const contentHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || elements.floating.scrollHeight;
90
- const maxHeight = Math.min(contentHeight, availableHeight);
89
+ const floatingScrollHeight = elements.floating.scrollHeight;
90
+ const scrollRefHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || 0;
91
+ const contentHeight = Math.max(floatingScrollHeight, scrollRefHeight);
92
+ const maxHeight = contentHeight > 0 ? Math.min(contentHeight, availableHeight) : availableHeight;
91
93
  Object.assign(elements.floating.style, {
92
94
  maxHeight: `${maxHeight}px`,
93
95
  display: "flex",
@@ -156,7 +158,7 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
156
158
  ignoreMouse: isNested,
157
159
  stickIfOpen: false,
158
160
  enabled: !isCoordinateMode
159
- // 坐标模式下禁用点击交互
161
+ // Disable click interaction in coordinate mode
160
162
  });
161
163
  const role = useRole(context, { role: "menu" });
162
164
  const dismiss = useDismiss(context, {
@@ -195,11 +197,11 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
195
197
  setScrollTop,
196
198
  touch,
197
199
  isSelect: false,
198
- // Dropdown 不是 Select
200
+ // Dropdown is not a Select
199
201
  fallback: false,
200
- // Dropdown 没有 fallback 机制
202
+ // Dropdown does not have fallback mechanism
201
203
  setInnerOffset: void 0
202
- // Dropdown 不使用 innerOffset
204
+ // Dropdown does not use innerOffset
203
205
  });
204
206
  const handleTouchStart = useEventCallback(() => {
205
207
  setTouch(true);
@@ -219,6 +221,18 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
219
221
  setIsMouseOverMenu(false);
220
222
  }
221
223
  });
224
+ const handleFloatingKeyDown = useEventCallback((e) => {
225
+ if (activeIndex !== null && (e.key === "Enter" || e.key === "ArrowRight")) {
226
+ const activeElement = elementsRef.current[activeIndex];
227
+ if (activeElement) {
228
+ if (activeElement.getAttribute("aria-haspopup") === "menu") {
229
+ e.preventDefault();
230
+ e.stopPropagation();
231
+ activeElement.click();
232
+ }
233
+ }
234
+ }
235
+ });
222
236
  const handleFocus = useEventCallback(() => {
223
237
  if (isCoordinateMode) {
224
238
  return;
@@ -323,7 +337,8 @@ var DropdownComponent = memo(function DropdownComponent2(props) {
323
337
  ...getFloatingProps({
324
338
  onContextMenu(e) {
325
339
  e.preventDefault();
326
- }
340
+ },
341
+ onKeyDown: handleFloatingKeyDown
327
342
  }),
328
343
  children: [
329
344
  /* @__PURE__ */ jsx(MenuContext.Provider, { value: contextValue, children: contentElement && cloneElement(contentElement, {
@@ -3,8 +3,7 @@ import { FloatingFocusManagerProps, Placement } from '@floating-ui/react';
3
3
  import { default as React } from 'react';
4
4
  export interface DropdownProps {
5
5
  /**
6
- * CoordinateMode, first item auto select
7
- * 坐标模式下,是否自动选中第一个选项
6
+ * Whether to automatically select the first item in coordinate mode.
8
7
  * @default true
9
8
  */
10
9
  autoSelectFirstItem?: boolean;
@@ -29,7 +29,7 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
29
29
  returnFocus: false,
30
30
  modal: position ? false : true,
31
31
  ...position && { disabled: true }
32
- // 坐标模式下禁用焦点管理
32
+ // Disable focus management in coordinate mode
33
33
  },
34
34
  root,
35
35
  variant = "default"
@@ -86,8 +86,10 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
86
86
  padding: 4,
87
87
  apply({ elements, availableHeight, rects }) {
88
88
  var _a;
89
- const contentHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || elements.floating.scrollHeight;
90
- const maxHeight = Math.min(contentHeight, availableHeight);
89
+ const floatingScrollHeight = elements.floating.scrollHeight;
90
+ const scrollRefHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || 0;
91
+ const contentHeight = Math.max(floatingScrollHeight, scrollRefHeight);
92
+ const maxHeight = contentHeight > 0 ? Math.min(contentHeight, availableHeight) : availableHeight;
91
93
  Object.assign(elements.floating.style, {
92
94
  maxHeight: `${maxHeight}px`,
93
95
  display: "flex",
@@ -156,7 +158,7 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
156
158
  ignoreMouse: isNested,
157
159
  stickIfOpen: false,
158
160
  enabled: !isCoordinateMode
159
- // 坐标模式下禁用点击交互
161
+ // Disable click interaction in coordinate mode
160
162
  });
161
163
  const role = useRole(context, { role: "menu" });
162
164
  const dismiss = useDismiss(context, {
@@ -195,11 +197,11 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
195
197
  setScrollTop,
196
198
  touch,
197
199
  isSelect: false,
198
- // Dropdown 不是 Select
200
+ // Dropdown is not a Select
199
201
  fallback: false,
200
- // Dropdown 没有 fallback 机制
202
+ // Dropdown does not have fallback mechanism
201
203
  setInnerOffset: void 0
202
- // Dropdown 不使用 innerOffset
204
+ // Dropdown does not use innerOffset
203
205
  });
204
206
  const handleTouchStart = useEventCallback(() => {
205
207
  setTouch(true);
@@ -219,6 +221,18 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
219
221
  setIsMouseOverMenu(false);
220
222
  }
221
223
  });
224
+ const handleFloatingKeyDown = useEventCallback((e) => {
225
+ if (activeIndex !== null && (e.key === "Enter" || e.key === "ArrowRight")) {
226
+ const activeElement = elementsRef.current[activeIndex];
227
+ if (activeElement) {
228
+ if (activeElement.getAttribute("aria-haspopup") === "menu") {
229
+ e.preventDefault();
230
+ e.stopPropagation();
231
+ activeElement.click();
232
+ }
233
+ }
234
+ }
235
+ });
222
236
  const handleFocus = useEventCallback(() => {
223
237
  if (isCoordinateMode) {
224
238
  return;
@@ -323,7 +337,8 @@ const DropdownComponent = memo(function DropdownComponent2(props) {
323
337
  ...getFloatingProps({
324
338
  onContextMenu(e) {
325
339
  e.preventDefault();
326
- }
340
+ },
341
+ onKeyDown: handleFloatingKeyDown
327
342
  }),
328
343
  children: [
329
344
  /* @__PURE__ */ jsx(MenuContext.Provider, { value: contextValue, children: contentElement && cloneElement(contentElement, {
@@ -6,6 +6,38 @@ interface EmojiData {
6
6
  name: string;
7
7
  nameUrl: string;
8
8
  }
9
+ type EmojiCategory = "frequently_used" | "smileys_people" | "animals_nature" | "food_drink" | "activities" | "travel_places" | "objects" | "symbols" | "flags";
10
+ type VirtualItem = {
11
+ category: EmojiCategory;
12
+ title: string;
13
+ type: "header";
14
+ } | {
15
+ emojis: EmojiData[];
16
+ type: "emojis";
17
+ };
18
+ interface UseEmojiDataProps {
19
+ columns: number;
20
+ searchQuery: string;
21
+ showFrequentlyUsed: boolean;
22
+ }
23
+ declare function useEmojiData({ searchQuery, columns, showFrequentlyUsed }: UseEmojiDataProps): {
24
+ categorizedData: VirtualItem[];
25
+ categoryIndexMap: Map<EmojiCategory, number>;
26
+ searchResults: {
27
+ id: number;
28
+ code: string;
29
+ emoji: string;
30
+ name: string;
31
+ nameUrl: string;
32
+ }[];
33
+ frequentlyUsed: EmojiData[];
34
+ addToFrequentlyUsed: (emojiId: number) => void;
35
+ findEmojiPosition: (emoji: EmojiData) => {
36
+ emojiIndex: number;
37
+ itemIndex: number;
38
+ } | null;
39
+ findEmojiByChar: (emojiChar: string) => EmojiData | null;
40
+ };
9
41
 
10
42
  interface EmojiPickerProps {
11
43
  children?: React.ReactNode;
@@ -30,4 +62,4 @@ declare const emojis: {
30
62
  nameUrl: string;
31
63
  }[];
32
64
 
33
- export { type EmojiData, EmojiPicker, emojis };
65
+ export { type EmojiData, EmojiPicker, type EmojiPickerProps, emojis, useEmojiData };
@@ -12116,6 +12116,7 @@ var EmojiPicker = memo(function EmojiPicker2({
12116
12116
  {
12117
12117
  variant,
12118
12118
  className: tv.scroll(),
12119
+ hoverBoundary: "none",
12119
12120
  children: /* @__PURE__ */ jsx(
12120
12121
  ScrollArea.Viewport,
12121
12122
  {
@@ -12195,5 +12196,6 @@ var EmojiPicker = memo(function EmojiPicker2({
12195
12196
  });
12196
12197
  export {
12197
12198
  EmojiPicker,
12198
- emojis
12199
+ emojis,
12200
+ useEmojiData
12199
12201
  };
@@ -1,6 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { EmojiData } from './hooks';
3
- interface EmojiPickerProps {
3
+ export interface EmojiPickerProps {
4
4
  children?: React.ReactNode;
5
5
  className?: string;
6
6
  columns?: number;
@@ -43,7 +43,8 @@ const EmojiPicker = memo(function EmojiPicker2({
43
43
  categorizedData,
44
44
  categoryIndexMap,
45
45
  addToFrequentlyUsed,
46
- findEmojiPosition
46
+ findEmojiPosition,
47
+ findEmojiByChar
47
48
  } = useEmojiData({
48
49
  searchQuery,
49
50
  columns,
@@ -132,6 +133,7 @@ const EmojiPicker = memo(function EmojiPicker2({
132
133
  {
133
134
  variant,
134
135
  className: tv.scroll(),
136
+ hoverBoundary: "none",
135
137
  children: /* @__PURE__ */ jsx(
136
138
  ScrollArea.Viewport,
137
139
  {
@@ -1,3 +1,5 @@
1
1
  export { EmojiPicker } from './emoji-picker';
2
- export { emojis } from './utils';
2
+ export type { EmojiPickerProps } from './emoji-picker';
3
+ export { useEmojiData } from './hooks';
3
4
  export type { EmojiData } from './hooks';
5
+ export { emojis } from './utils';