@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
@@ -106,8 +106,10 @@ const CommentInputMentionPopover = ({
106
106
  padding: 4,
107
107
  apply({ elements, availableHeight, rects }) {
108
108
  var _a;
109
- const contentHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || elements.floating.scrollHeight;
110
- const calculatedHeight = Math.min(contentHeight, availableHeight - 8);
109
+ const floatingScrollHeight = elements.floating.scrollHeight;
110
+ const scrollRefHeight = ((_a = scrollRef.current) == null ? void 0 : _a.scrollHeight) || 0;
111
+ const contentHeight = Math.max(floatingScrollHeight, scrollRefHeight);
112
+ const calculatedHeight = contentHeight > 0 ? Math.min(contentHeight, availableHeight - 8) : availableHeight - 8;
111
113
  Object.assign(elements.floating.style, {
112
114
  maxHeight: `${calculatedHeight}px`,
113
115
  overflow: "hidden"
@@ -84,7 +84,7 @@ const CommentsComponent = forwardRef((props, ref) => {
84
84
  ScrollArea,
85
85
  {
86
86
  className: tcx("flex h-full flex-col", className),
87
- scrollbarMode: "large-b",
87
+ scrollbarMode: "padding-b",
88
88
  ref,
89
89
  children: /* @__PURE__ */ jsx(
90
90
  ScrollArea.Viewport,
@@ -1,11 +1,10 @@
1
1
  import { default as React__default, ComponentType } from 'react';
2
2
  import { IconButtonProps } from '../../icon-button/src';
3
3
  import { RenderElementProps, ReactEditor } from 'slate-react';
4
- import { Descendant, Editor, Range } from 'slate';
4
+ import { Editor, Range, Descendant } from 'slate';
5
5
  import { HistoryEditor } from 'slate-history';
6
6
  import * as React$1 from 'react';
7
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
- import * as tailwind_variants from 'tailwind-variants';
9
8
 
10
9
  interface ContextInputHeaderProps {
11
10
  children?: React.ReactNode;
@@ -34,12 +33,12 @@ interface InsertMentionsButtonProps extends IconButtonProps {
34
33
  }
35
34
  declare const InsertMentionsButton: React$1.NamedExoticComponent<InsertMentionsButtonProps>;
36
35
 
37
- interface MentionProps extends RenderElementProps {
36
+ interface ContextMentionProps extends RenderElementProps {
38
37
  mentionPrefix?: string;
39
38
  renderMention?: (mention: MentionMatch) => React.ReactNode;
40
39
  variant?: "default" | "light" | "dark" | "reset";
41
40
  }
42
- interface MentionItem {
41
+ interface ContextMentionItemProps {
43
42
  description?: string;
44
43
  id: string;
45
44
  label: string;
@@ -53,7 +52,7 @@ interface MentionMatch {
53
52
  mentionText: string;
54
53
  };
55
54
  endIndex: number;
56
- item: MentionItem;
55
+ item: ContextMentionItemProps;
57
56
  startIndex: number;
58
57
  text: string;
59
58
  }
@@ -61,12 +60,12 @@ interface ContextInputValue {
61
60
  mentions: MentionMatch[];
62
61
  text: string;
63
62
  }
64
- interface MentionTrigger {
63
+ interface ContextMentionTrigger {
65
64
  allowSpaceInQuery?: boolean;
66
65
  char: string;
67
66
  mentionRegex?: RegExp;
68
- onSearch: (query: string, char: string) => Promise<MentionItem[]> | MentionItem[];
69
- renderItem?: (item: MentionItem, isSelected: boolean) => React.ReactNode;
67
+ onSearch: (query: string, char: string) => Promise<ContextMentionItemProps[]> | ContextMentionItemProps[];
68
+ renderItem?: (item: ContextMentionItemProps, isSelected: boolean) => React.ReactNode;
70
69
  }
71
70
  interface ContextInputProps {
72
71
  afterElement?: React.ReactNode;
@@ -74,7 +73,7 @@ interface ContextInputProps {
74
73
  beforeElement?: React.ReactNode;
75
74
  children?: React.ReactNode;
76
75
  className?: string;
77
- customMentionComponent?: ComponentType<MentionProps>;
76
+ customMentionComponent?: ComponentType<ContextMentionProps>;
78
77
  disabled?: boolean;
79
78
  maxLength?: number;
80
79
  maxSuggestions?: number;
@@ -87,15 +86,15 @@ interface ContextInputProps {
87
86
  onCompositionStart?: (event: React.CompositionEvent) => void;
88
87
  onFocus?: () => void;
89
88
  onKeyDown?: (event: React.KeyboardEvent) => void;
90
- onMentionSelect?: (mention: MentionItem, trigger: string) => void;
89
+ onMentionSelect?: (mention: ContextMentionItemProps, trigger: string) => void;
91
90
  placeholder?: string;
92
91
  readOnly?: boolean;
93
92
  renderMention?: (mention: MentionMatch) => React.ReactNode;
94
- renderSuggestion?: (item: MentionItem, isSelected: boolean) => React.ReactNode;
93
+ renderSuggestion?: (item: ContextMentionItemProps, isSelected: boolean) => React.ReactNode;
95
94
  root?: HTMLElement | null;
96
95
  size?: "default" | "large";
97
96
  suggestionListClassName?: string;
98
- triggers?: MentionTrigger[];
97
+ triggers?: ContextMentionTrigger[];
99
98
  value?: ContextInputValue;
100
99
  variant?: "default" | "light" | "dark" | "reset";
101
100
  }
@@ -103,61 +102,18 @@ interface ContextMentionElement {
103
102
  children: [{
104
103
  text: "";
105
104
  }];
106
- mentionData?: MentionItem["metadata"];
105
+ mentionData?: ContextMentionItemProps["metadata"];
107
106
  mentionId: string;
108
107
  mentionLabel: string;
109
108
  mentionPrefix?: string;
110
- mentionType: MentionItem["type"];
109
+ mentionType: ContextMentionItemProps["type"];
111
110
  type: "mention";
112
111
  }
113
- interface ContextParagraphElement {
114
- children: Array<ContextInputText | ContextMentionElement>;
115
- type: "paragraph";
116
- }
117
- type ContextInputElement = ContextMentionElement | ContextParagraphElement;
118
- interface ContextInputText {
119
- text: string;
120
- }
121
112
  interface ContextInputRef {
122
113
  focus: () => void;
123
114
  }
124
115
 
125
- interface MentionMenuPosition {
126
- x: number;
127
- y: number;
128
- }
129
- interface MentionMenuRef {
130
- handleKeyDown: (event: React__default.KeyboardEvent) => boolean;
131
- }
132
- interface MentionMenuProps {
133
- isOpen: boolean;
134
- loading: boolean;
135
- onClose: () => void;
136
- onSelect: (mention: MentionItem, index: number) => void;
137
- position: MentionMenuPosition | null;
138
- renderSuggestion?: (item: MentionItem, isSelected: boolean) => React__default.ReactNode;
139
- root?: HTMLElement | null;
140
- suggestions: MentionItem[];
141
- }
142
- declare const MentionMenu: React__default.MemoExoticComponent<React__default.ForwardRefExoticComponent<MentionMenuProps & React__default.RefAttributes<MentionMenuRef>>>;
143
-
144
- interface SlateEditorProps extends Pick<ContextInputProps, "placeholder" | "disabled" | "readOnly" | "autoFocus" | "variant" | "renderMention" | "mentionPrefix" | "customMentionComponent" | "onFocus" | "onBlur" | "className" | "maxLength"> {
145
- children?: React__default.ReactNode;
146
- editor: ReactEditor;
147
- footer?: React__default.ReactNode;
148
- hasFooter: boolean;
149
- hasHeader: boolean;
150
- minHeight: number;
151
- onChange: (value: Descendant[]) => void;
152
- onCompositionEnd?: (event: React__default.CompositionEvent) => void;
153
- onCompositionStart?: (event: React__default.CompositionEvent) => void;
154
- onKeyDown: (event: React__default.KeyboardEvent) => void;
155
- size: "default" | "large";
156
- slateValue: Descendant[];
157
- }
158
- declare const SlateEditor: React__default.MemoExoticComponent<React__default.ForwardRefExoticComponent<SlateEditorProps & React__default.RefAttributes<HTMLDivElement>>>;
159
-
160
- declare const Mention: React__default.MemoExoticComponent<(props: MentionProps) => react_jsx_runtime.JSX.Element>;
116
+ declare const Mention: React__default.MemoExoticComponent<(props: ContextMentionProps) => react_jsx_runtime.JSX.Element>;
161
117
 
162
118
  interface ContextInputComponent extends React__default.ForwardRefExoticComponent<ContextInputProps & React__default.RefAttributes<ContextInputRef>> {
163
119
  CopyButton: typeof CopyButton;
@@ -174,8 +130,12 @@ interface MentionSearchState {
174
130
  index: number;
175
131
  isSearching: boolean;
176
132
  loading: boolean;
133
+ position: {
134
+ x: number;
135
+ y: number;
136
+ } | null;
177
137
  query: string;
178
- suggestions: MentionItem[];
138
+ suggestions: ContextMentionItemProps[];
179
139
  target: Range | null;
180
140
  trigger: string;
181
141
  }
@@ -183,26 +143,21 @@ interface UseMentionsProps {
183
143
  editor: ContextEditor;
184
144
  maxSuggestions?: number;
185
145
  mentionPrefix?: string;
186
- onMentionSelect?: (mention: MentionItem, trigger: string) => void;
146
+ onMentionSelect?: (mention: ContextMentionItemProps, trigger: string) => void;
187
147
  onSearchClose?: () => void;
188
- triggers: MentionTrigger[];
148
+ triggers: ContextMentionTrigger[];
189
149
  }
190
150
  declare function useMentions({ editor, triggers, maxSuggestions, mentionPrefix, onMentionSelect, onSearchClose, }: UseMentionsProps): {
191
151
  searchState: MentionSearchState;
192
- insertMention: (mention: MentionItem) => void;
193
- handleKeyDown: (event: React.KeyboardEvent) => boolean;
194
- getSuggestionPosition: () => {
195
- x: number;
196
- y: number;
197
- } | null;
152
+ checkMentionSearch: () => void;
153
+ insertMention: (mention: ContextMentionItemProps) => void;
154
+ handleKeyDown: (event: React$1.KeyboardEvent<Element>) => boolean;
198
155
  closeMentionSearch: () => void;
199
156
  selectMention: (index: number) => void;
200
157
  selectNextMention: () => void;
201
158
  selectPreviousMention: () => void;
202
159
  };
203
160
 
204
- declare const useSlateEditor: (maxLength?: number) => ContextEditor;
205
-
206
161
  interface UseContextInputProps {
207
162
  autoFocus?: boolean;
208
163
  editor?: ContextEditor;
@@ -214,21 +169,20 @@ declare const useContextInput: ({ value, onChange, editor, autoFocus }: UseConte
214
169
  handleChange: (newValue: Descendant[]) => void;
215
170
  };
216
171
 
217
- declare const ContextInputEditorContext: React$1.Context<ContextEditor | null>;
218
172
  declare const useContextInputEditor: () => ContextEditor;
219
173
 
220
174
  /**
221
- * SlateJS节点数组转换为字符串
222
- * mention节点转换为 {{#context#}}{{#id.text#}} 格式
175
+ * Convert SlateJS node array to string
176
+ * Mention nodes are converted to {{#context#}}{{#id.text#}} format
223
177
  */
224
178
  declare function convertSlateToText(nodes: Descendant[]): string;
225
179
  /**
226
- * 将字符串转换为SlateJS节点数组
227
- * 支持解析 {{#context#}}{{#id.text#}} 格式为mention节点
180
+ * Convert string to SlateJS node array
181
+ * Supports parsing {{#context#}}{{#id.text#}} format to mention nodes
228
182
  */
229
183
  declare function convertTextToSlate(text: string): Descendant[];
230
184
  /**
231
- * 创建mention查找函数的接口
185
+ * Interface for mention resolver function
232
186
  */
233
187
  interface MentionResolver {
234
188
  (mentionId: string): Promise<{
@@ -238,7 +192,7 @@ interface MentionResolver {
238
192
  }>;
239
193
  }
240
194
  /**
241
- * 高级版本:支持异步解析mention信息
195
+ * Advanced version: supports async mention info resolution
242
196
  */
243
197
  declare function convertTextToSlateWithResolver(text: string, mentionResolver?: MentionResolver): Promise<Descendant[]>;
244
198
 
@@ -258,193 +212,35 @@ declare const extractMentionContext: (text: string, startIndex: number, endIndex
258
212
  };
259
213
 
260
214
  /**
261
- * 检查是否需要在当前位置前面添加空格
262
- * @param editor - SlateJS 编辑器实例
263
- * @returns 是否需要添加前导空格
215
+ * Check if a space should be inserted before the current position
216
+ * @param editor - SlateJS editor instance
217
+ * @returns Whether a leading space should be added
264
218
  */
265
219
  declare function shouldInsertSpaceBefore(editor: Editor): boolean;
266
220
  /**
267
- * 检查是否需要在当前位置后面添加空格
268
- * @param editor - SlateJS 编辑器实例
269
- * @returns 是否需要添加后导空格
221
+ * Check if a space should be inserted after the current position
222
+ * @param editor - SlateJS editor instance
223
+ * @returns Whether a trailing space should be added
270
224
  */
271
225
  declare function shouldInsertSpaceAfter(editor: Editor): boolean;
272
226
  /**
273
- * 在当前位置智能插入空格(前导空格)
274
- * @param editor - SlateJS 编辑器实例
275
- * @returns 是否插入了空格
227
+ * Smartly insert space at current position (leading space)
228
+ * @param editor - SlateJS editor instance
229
+ * @returns Whether a space was inserted
276
230
  */
277
231
  declare function insertSpaceBeforeIfNeeded(editor: Editor): boolean;
278
232
  /**
279
- * 在当前位置智能插入空格(后导空格)
280
- * @param editor - SlateJS 编辑器实例
281
- * @returns 是否插入了空格
233
+ * Smartly insert space at current position (trailing space)
234
+ * @param editor - SlateJS editor instance
235
+ * @returns Whether a space was inserted
282
236
  */
283
237
  declare function insertSpaceAfterIfNeeded(editor: Editor): boolean;
284
238
  /**
285
- * mention 插入智能间距
286
- * 这个函数会在插入 mention 前后根据上下文智能添加空格
287
- * @param editor - SlateJS 编辑器实例
288
- * @param beforeInsertion - 在插入内容前执行的回调
239
+ * Insert smart spacing for mention
240
+ * This function intelligently adds spaces before/after mention insertion based on context
241
+ * @param editor - SlateJS editor instance
242
+ * @param beforeInsertion - Callback to execute before content insertion
289
243
  */
290
244
  declare function insertWithSmartSpacing(editor: Editor, beforeInsertion: () => void): void;
291
245
 
292
- declare const contextInputTv: tailwind_variants.TVReturnType<{
293
- size: {
294
- default: {
295
- container: string;
296
- placeholder: string;
297
- };
298
- large: {
299
- container: string;
300
- placeholder: string;
301
- };
302
- };
303
- hasHeader: {
304
- true: {};
305
- false: {};
306
- };
307
- hasFooter: {
308
- true: {};
309
- false: {};
310
- };
311
- variant: {
312
- default: {
313
- container: string[];
314
- };
315
- light: {
316
- container: string[];
317
- };
318
- dark: {
319
- container: string[];
320
- };
321
- reset: {
322
- container: string;
323
- };
324
- };
325
- selected: {
326
- true: {};
327
- };
328
- disabled: {
329
- true: {
330
- placeholder: string;
331
- };
332
- false: {
333
- placeholder: string;
334
- };
335
- };
336
- }, {
337
- container: string[];
338
- scrollArea: string[];
339
- viewport: string[];
340
- scrollContainer: string[];
341
- editor: string[];
342
- placeholder: string[];
343
- loading: string;
344
- }, undefined, {
345
- size: {
346
- default: {
347
- container: string;
348
- placeholder: string;
349
- };
350
- large: {
351
- container: string;
352
- placeholder: string;
353
- };
354
- };
355
- hasHeader: {
356
- true: {};
357
- false: {};
358
- };
359
- hasFooter: {
360
- true: {};
361
- false: {};
362
- };
363
- variant: {
364
- default: {
365
- container: string[];
366
- };
367
- light: {
368
- container: string[];
369
- };
370
- dark: {
371
- container: string[];
372
- };
373
- reset: {
374
- container: string;
375
- };
376
- };
377
- selected: {
378
- true: {};
379
- };
380
- disabled: {
381
- true: {
382
- placeholder: string;
383
- };
384
- false: {
385
- placeholder: string;
386
- };
387
- };
388
- }, {
389
- container: string[];
390
- scrollArea: string[];
391
- viewport: string[];
392
- scrollContainer: string[];
393
- editor: string[];
394
- placeholder: string[];
395
- loading: string;
396
- }, tailwind_variants.TVReturnType<{
397
- size: {
398
- default: {
399
- container: string;
400
- placeholder: string;
401
- };
402
- large: {
403
- container: string;
404
- placeholder: string;
405
- };
406
- };
407
- hasHeader: {
408
- true: {};
409
- false: {};
410
- };
411
- hasFooter: {
412
- true: {};
413
- false: {};
414
- };
415
- variant: {
416
- default: {
417
- container: string[];
418
- };
419
- light: {
420
- container: string[];
421
- };
422
- dark: {
423
- container: string[];
424
- };
425
- reset: {
426
- container: string;
427
- };
428
- };
429
- selected: {
430
- true: {};
431
- };
432
- disabled: {
433
- true: {
434
- placeholder: string;
435
- };
436
- false: {
437
- placeholder: string;
438
- };
439
- };
440
- }, {
441
- container: string[];
442
- scrollArea: string[];
443
- viewport: string[];
444
- scrollContainer: string[];
445
- editor: string[];
446
- placeholder: string[];
447
- loading: string;
448
- }, undefined, unknown, unknown, undefined>>;
449
-
450
- export { ContextInput, ContextInputEditorContext, type ContextInputElement, ContextInputFooter, ContextInputHeader, type ContextInputProps, type ContextInputRef, type ContextInputText, type ContextInputValue, type ContextMentionElement, type ContextParagraphElement, CopyButton, InsertMentionsButton, Mention, type MentionItem, type MentionMatch, MentionMenu, type MentionMenuRef, type MentionProps, type MentionResolver, type MentionTrigger, SlateEditor, contextInputTv, convertSlateToText, convertTextToSlate, convertTextToSlateWithResolver, extractMentionContext, extractTextWithMentions, insertSpaceAfterIfNeeded, insertSpaceBeforeIfNeeded, insertWithSmartSpacing, parseTextWithMentions, shouldInsertSpaceAfter, shouldInsertSpaceBefore, useContextInput, useContextInputEditor, useMentions, useSlateEditor };
246
+ export { ContextInput, type ContextInputProps, type ContextInputRef, type ContextInputValue, type ContextMentionElement, type ContextMentionItemProps, type ContextMentionProps, type ContextMentionTrigger, CopyButton, InsertMentionsButton, convertSlateToText, convertTextToSlate, convertTextToSlateWithResolver, extractMentionContext, extractTextWithMentions, insertSpaceAfterIfNeeded, insertSpaceBeforeIfNeeded, insertWithSmartSpacing, parseTextWithMentions, shouldInsertSpaceAfter, shouldInsertSpaceBefore, useContextInput, useContextInputEditor, useMentions };
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { MentionItem } from '../types';
2
+ import { ContextMentionItemProps } from '../types';
3
3
  export interface MentionMenuPosition {
4
4
  x: number;
5
5
  y: number;
@@ -11,11 +11,12 @@ interface MentionMenuProps {
11
11
  isOpen: boolean;
12
12
  loading: boolean;
13
13
  onClose: () => void;
14
- onSelect: (mention: MentionItem, index: number) => void;
14
+ onSelect: (mention: ContextMentionItemProps, index: number) => void;
15
15
  position: MentionMenuPosition | null;
16
- renderSuggestion?: (item: MentionItem, isSelected: boolean) => React.ReactNode;
16
+ renderSuggestion?: (item: ContextMentionItemProps, isSelected: boolean) => React.ReactNode;
17
17
  root?: HTMLElement | null;
18
- suggestions: MentionItem[];
18
+ suggestions: ContextMentionItemProps[];
19
+ disabled?: boolean;
19
20
  }
20
21
  export declare const MentionMenu: React.MemoExoticComponent<React.ForwardRefExoticComponent<MentionMenuProps & React.RefAttributes<MentionMenuRef>>>;
21
22
  export {};
@@ -1,11 +1,25 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Combobox as Combobox2 } from "../../../combobox/dist/index.js";
3
3
  import { memo, forwardRef, useImperativeHandle } from "react";
4
- import { contextInputTv } from "../tv.js";
4
+ const FOCUS_MANAGER_PROPS = {
5
+ initialFocus: -1,
6
+ returnFocus: false,
7
+ modal: false,
8
+ guards: false
9
+ };
5
10
  const MentionMenu = memo(
6
11
  forwardRef(function MentionMenu2(props, ref) {
7
- const { isOpen, loading, position, onSelect, renderSuggestion, suggestions, onClose, root } = props;
8
- contextInputTv();
12
+ const {
13
+ isOpen,
14
+ loading,
15
+ position,
16
+ onSelect,
17
+ renderSuggestion,
18
+ suggestions,
19
+ onClose,
20
+ root,
21
+ disabled = false
22
+ } = props;
9
23
  useImperativeHandle(
10
24
  ref,
11
25
  () => ({
@@ -37,7 +51,7 @@ const MentionMenu = memo(
37
51
  }),
38
52
  [isOpen, suggestions.length]
39
53
  );
40
- return loading ? null : /* @__PURE__ */ jsx(
54
+ return loading || disabled ? null : /* @__PURE__ */ jsx(
41
55
  Combobox2,
42
56
  {
43
57
  trigger: "coordinate",
@@ -50,6 +64,7 @@ const MentionMenu = memo(
50
64
  onChange: () => {
51
65
  },
52
66
  root,
67
+ focusManagerProps: FOCUS_MANAGER_PROPS,
53
68
  children: suggestions.length > 0 && /* @__PURE__ */ jsx(Combobox2.Content, { children: suggestions.map((item, index) => /* @__PURE__ */ jsx(
54
69
  Combobox2.Item,
55
70
  {
@@ -1,3 +1,3 @@
1
1
  import { default as React } from 'react';
2
- import { MentionProps } from '../types';
3
- export declare const Mention: React.MemoExoticComponent<(props: MentionProps) => import("react/jsx-runtime").JSX.Element>;
2
+ import { ContextMentionProps } from '../types';
3
+ export declare const Mention: React.MemoExoticComponent<(props: ContextMentionProps) => import("react/jsx-runtime").JSX.Element>;
@@ -70,7 +70,7 @@ const SlateEditorComponent = React.forwardRef(
70
70
  return /* @__PURE__ */ jsx(
71
71
  ScrollArea,
72
72
  {
73
- scrollbarMode: size === "large" ? "large-y" : "default",
73
+ scrollbarMode: size === "large" ? "padding-y" : "default",
74
74
  className: tv.scrollArea(),
75
75
  ...props,
76
76
  children: /* @__PURE__ */ jsx(ScrollArea.Viewport, { className: tv.viewport(), children: /* @__PURE__ */ jsxs(ScrollArea.Content, { className: tv.scrollContainer(), children: [
@@ -86,6 +86,7 @@ const SlateEditorComponent = React.forwardRef(
86
86
  {
87
87
  ref,
88
88
  spellCheck: false,
89
+ suppressHydrationWarning: true,
89
90
  className: tv.editor(),
90
91
  placeholder,
91
92
  renderPlaceholder,
@@ -111,7 +112,8 @@ const SlateEditorComponent = React.forwardRef(
111
112
  }
112
113
  );
113
114
  const SlateEditor = React.memo(SlateEditorComponent, (prevProps, nextProps) => {
114
- return prevProps.editor === nextProps.editor && prevProps.slateValue === nextProps.slateValue && prevProps.placeholder === nextProps.placeholder && prevProps.disabled === nextProps.disabled && prevProps.readOnly === nextProps.readOnly && prevProps.autoFocus === nextProps.autoFocus && prevProps.variant === nextProps.variant && prevProps.renderMention === nextProps.renderMention && prevProps.mentionPrefix === nextProps.mentionPrefix && prevProps.customMentionComponent === nextProps.customMentionComponent && prevProps.className === nextProps.className && prevProps.maxLength === nextProps.maxLength && prevProps.minHeight === nextProps.minHeight && prevProps.onChange === nextProps.onChange && prevProps.onKeyDown === nextProps.onKeyDown && prevProps.onCompositionStart === nextProps.onCompositionStart && prevProps.onCompositionEnd === nextProps.onCompositionEnd && prevProps.onFocus === nextProps.onFocus && prevProps.onBlur === nextProps.onBlur && prevProps.hasHeader === nextProps.hasHeader && prevProps.hasFooter === nextProps.hasFooter && prevProps.size === nextProps.size && prevProps.children === nextProps.children;
115
+ return prevProps.editor === nextProps.editor && // Don't compare slateValue - Slate manages state internally
116
+ prevProps.placeholder === nextProps.placeholder && prevProps.disabled === nextProps.disabled && prevProps.readOnly === nextProps.readOnly && prevProps.autoFocus === nextProps.autoFocus && prevProps.variant === nextProps.variant && prevProps.renderMention === nextProps.renderMention && prevProps.mentionPrefix === nextProps.mentionPrefix && prevProps.customMentionComponent === nextProps.customMentionComponent && prevProps.className === nextProps.className && prevProps.maxLength === nextProps.maxLength && prevProps.minHeight === nextProps.minHeight && prevProps.onChange === nextProps.onChange && prevProps.onKeyDown === nextProps.onKeyDown && prevProps.onCompositionStart === nextProps.onCompositionStart && prevProps.onCompositionEnd === nextProps.onCompositionEnd && prevProps.onFocus === nextProps.onFocus && prevProps.onBlur === nextProps.onBlur && prevProps.hasHeader === nextProps.hasHeader && prevProps.hasFooter === nextProps.hasFooter && prevProps.size === nextProps.size && prevProps.children === nextProps.children;
115
117
  });
116
118
  export {
117
119
  SlateEditor
@@ -6,14 +6,15 @@ import { contextInputTv } from "./tv.js";
6
6
  import { useSlateEditor } from "./hooks/use-slate-editor.js";
7
7
  import { ContextInputHeader } from "./components/context-input-header.js";
8
8
  import { ContextInputFooter } from "./components/context-input-footer.js";
9
- import { useContextInput } from "./hooks/use-context-input.js";
10
9
  import { useMentions } from "./hooks/use-mentions.js";
10
+ import { useContextInput } from "./hooks/use-context-input.js";
11
11
  import { ContextInputEditorContext } from "./hooks/use-context-input-editor.js";
12
12
  import { SlateEditor } from "./components/slate-editor.js";
13
13
  import { MentionMenu } from "./components/mention-menu.js";
14
14
  import { CopyButton } from "./components/copy-button.js";
15
15
  import { InsertMentionsButton } from "./components/insert-mentions-button.js";
16
16
  import { Mention } from "./components/mention.js";
17
+ const EMPTY_TRIGGERS = [];
17
18
  const ContextInputBase = forwardRef(function ContextInputBase2({
18
19
  value,
19
20
  placeholder = "Type someone...",
@@ -23,7 +24,7 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
23
24
  autoFocus = false,
24
25
  className,
25
26
  customMentionComponent,
26
- triggers = [],
27
+ triggers = EMPTY_TRIGGERS,
27
28
  maxSuggestions = 10,
28
29
  variant = "default",
29
30
  mentionPrefix = "@",
@@ -48,11 +49,17 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
48
49
  const mentionMenuRef = useRef(null);
49
50
  useImperativeHandle(ref, () => ({
50
51
  focus: () => {
51
- ReactEditor.focus(editor);
52
+ try {
53
+ ReactEditor.focus(editor);
54
+ } catch {
55
+ }
52
56
  }
53
57
  }));
54
58
  const handleFocusClick = useEventCallback(() => {
55
- ReactEditor.focus(editor);
59
+ try {
60
+ ReactEditor.focus(editor);
61
+ } catch {
62
+ }
56
63
  });
57
64
  const { header, footer, otherChildren } = useMemo(() => {
58
65
  let header2 = null;
@@ -83,12 +90,6 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
83
90
  }, [children, size, handleFocusClick]);
84
91
  const hasHeader = !!header;
85
92
  const hasFooter = !!footer;
86
- const { slateValue, handleChange } = useContextInput({
87
- value,
88
- onChange: readOnly ? void 0 : onChange,
89
- editor,
90
- autoFocus
91
- });
92
93
  const handleSearchClose = useEventCallback(() => {
93
94
  ReactEditor.focus(editor);
94
95
  });
@@ -100,6 +101,18 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
100
101
  onMentionSelect,
101
102
  onSearchClose: handleSearchClose
102
103
  });
104
+ const { slateValue, handleChange: baseHandleChange } = useContextInput({
105
+ value,
106
+ onChange: readOnly ? void 0 : onChange,
107
+ editor,
108
+ autoFocus
109
+ });
110
+ const handleChange = useEventCallback((newValue) => {
111
+ baseHandleChange(newValue);
112
+ requestAnimationFrame(() => {
113
+ mentions.checkMentionSearch();
114
+ });
115
+ });
103
116
  const handleKeyDown = useEventCallback((event) => {
104
117
  var _a;
105
118
  if ((_a = mentionMenuRef.current) == null ? void 0 : _a.handleKeyDown(event)) {
@@ -107,10 +120,11 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
107
120
  }
108
121
  onKeyDown == null ? void 0 : onKeyDown(event);
109
122
  });
110
- const handleSuggestionSelect = useEventCallback((mention, index) => {
111
- mentions.selectMention(index);
112
- });
113
- const suggestionPosition = useMemo(() => mentions.getSuggestionPosition(), [mentions]);
123
+ const handleSuggestionSelect = useEventCallback(
124
+ (mention, index) => {
125
+ mentions.selectMention(index);
126
+ }
127
+ );
114
128
  const tv = useMemo(
115
129
  () => contextInputTv({ hasHeader, hasFooter, size, disabled, variant }),
116
130
  [hasHeader, hasFooter, size, disabled, variant]
@@ -154,11 +168,12 @@ const ContextInputBase = forwardRef(function ContextInputBase2({
154
168
  MentionMenu,
155
169
  {
156
170
  ref: mentionMenuRef,
157
- isOpen: mentions.searchState.isSearching && !!suggestionPosition,
171
+ disabled,
172
+ isOpen: mentions.searchState.isSearching && !!mentions.searchState.position,
158
173
  onClose: mentions.closeMentionSearch,
159
174
  suggestions: mentions.searchState.suggestions,
160
175
  loading: mentions.searchState.loading,
161
- position: suggestionPosition,
176
+ position: mentions.searchState.position,
162
177
  onSelect: handleSuggestionSelect,
163
178
  renderSuggestion
164
179
  }
@@ -1,2 +1,2 @@
1
1
  import { Editor } from 'slate';
2
- export declare const withMentions: (editor: Editor) => import('../../..').CustomEditor;
2
+ export declare const withMentions: <T extends Editor>(editor: T) => T;