@choice-ui/react 1.4.3 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) 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 +15 -340
  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 +2 -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/mention-spacing.js +1 -27
  101. package/dist/components/context-input/src/utils/slate-converters.d.ts +6 -6
  102. package/dist/components/context-input/src/utils/slate-converters.js +3 -69
  103. package/dist/components/context-input/src/utils/text-extraction.js +7 -1
  104. package/dist/components/context-menu/src/context-menu.js +10 -4
  105. package/dist/components/dialog/dist/index.js +1 -2
  106. package/dist/components/dialog/src/dialog.js +0 -1
  107. package/dist/components/dialog/src/hooks/use-floating-dialog.js +1 -1
  108. package/dist/components/dialog/src/index.d.ts +3 -2
  109. package/dist/components/dropdown/dist/index.d.ts +1 -2
  110. package/dist/components/dropdown/dist/index.js +23 -8
  111. package/dist/components/dropdown/src/dropdown.d.ts +1 -2
  112. package/dist/components/dropdown/src/dropdown.js +23 -8
  113. package/dist/components/emoji-picker/dist/index.d.ts +33 -1
  114. package/dist/components/emoji-picker/dist/index.js +3 -1
  115. package/dist/components/emoji-picker/src/emoji-picker.d.ts +1 -1
  116. package/dist/components/emoji-picker/src/emoji-picker.js +3 -1
  117. package/dist/components/emoji-picker/src/index.d.ts +3 -1
  118. package/dist/components/form/dist/index.d.ts +93 -98
  119. package/dist/components/form/src/adapters/base-adapter.d.ts +3 -3
  120. package/dist/components/form/src/adapters/checkbox-adapter.d.ts +1 -1
  121. package/dist/components/form/src/adapters/chips-input-adapter.d.ts +9 -0
  122. package/dist/components/form/src/adapters/chips-input-adapter.js +38 -0
  123. package/dist/components/form/src/adapters/index.d.ts +8 -7
  124. package/dist/components/form/src/adapters/input-adapter.d.ts +1 -1
  125. package/dist/components/form/src/adapters/multi-select-adapter.d.ts +1 -1
  126. package/dist/components/form/src/adapters/numeric-input-adapter.d.ts +1 -1
  127. package/dist/components/form/src/adapters/raido-group-adapter.d.ts +1 -7
  128. package/dist/components/form/src/adapters/range-adapter.d.ts +1 -7
  129. package/dist/components/form/src/adapters/segmented-adapter.d.ts +1 -7
  130. package/dist/components/form/src/adapters/select-adapter.d.ts +1 -1
  131. package/dist/components/form/src/adapters/switch-adapter.d.ts +1 -1
  132. package/dist/components/form/src/adapters/textarea-adapter.d.ts +1 -1
  133. package/dist/components/form/src/index.d.ts +18 -16
  134. package/dist/components/form/src/index.js +16 -13
  135. package/dist/components/form/src/types.d.ts +58 -51
  136. package/dist/components/hint/dist/index.d.ts +10 -54
  137. package/dist/components/hint/src/components/info-content.d.ts +3 -5
  138. package/dist/components/hint/src/components/info-content.js +14 -6
  139. package/dist/components/hint/src/components/info-trigger.d.ts +2 -3
  140. package/dist/components/hint/src/components/info-trigger.js +4 -2
  141. package/dist/components/hint/src/context/hint-context.d.ts +2 -0
  142. package/dist/components/hint/src/context/hint-context.js +1 -1
  143. package/dist/components/hint/src/hint.d.ts +7 -7
  144. package/dist/components/hint/src/hint.js +24 -29
  145. package/dist/components/hint/src/hooks/use-hint.d.ts +4 -2
  146. package/dist/components/hint/src/hooks/use-hint.js +12 -4
  147. package/dist/components/hint/src/index.d.ts +3 -3
  148. package/dist/components/hint/src/tv.d.ts +33 -0
  149. package/dist/components/hint/src/tv.js +11 -0
  150. package/dist/components/icon-button/dist/index.js +2 -2
  151. package/dist/components/icon-button/src/icon-button.js +2 -2
  152. package/dist/components/index.d.ts +3 -0
  153. package/dist/components/input/dist/index.js +4 -4
  154. package/dist/components/input/src/input.js +3 -3
  155. package/dist/components/input/src/tv.js +1 -1
  156. package/dist/components/kbd/dist/index.js +4 -4
  157. package/dist/components/kbd/src/kbd.js +4 -4
  158. package/dist/components/label/dist/index.js +3 -3
  159. package/dist/components/label/src/tv.js +3 -3
  160. package/dist/components/link-button/dist/index.js +3 -3
  161. package/dist/components/link-button/src/link-button.js +3 -3
  162. package/dist/components/list/src/components/list-content.js +2 -2
  163. package/dist/components/list/src/components/list-divider.js +3 -3
  164. package/dist/components/list/src/components/list-item.js +5 -5
  165. package/dist/components/list/src/components/list-label.js +2 -2
  166. package/dist/components/list/src/components/list-sub-trigger.js +4 -4
  167. package/dist/components/list/src/list.js +2 -2
  168. package/dist/components/md-input/dist/index.d.ts +8 -104
  169. package/dist/components/md-input/src/components/extensions/md-input-mention.d.ts +6 -4
  170. package/dist/components/md-input/src/components/extensions/md-input-mention.js +23 -6
  171. package/dist/components/md-input/src/components/md-input-container.js +1 -0
  172. package/dist/components/md-input/src/components/md-input-editor.js +4 -1
  173. package/dist/components/md-input/src/components/md-input-footer.js +5 -1
  174. package/dist/components/md-input/src/components/toolbar/default-actions.d.ts +2 -2
  175. package/dist/components/md-input/src/components/toolbar/toolbar-button.d.ts +1 -0
  176. package/dist/components/md-input/src/components/toolbar/toolbar-button.js +1 -7
  177. package/dist/components/md-input/src/components/toolbar/toolbar.d.ts +2 -2
  178. package/dist/components/md-input/src/hooks/use-markdown-mentions.d.ts +5 -4
  179. package/dist/components/md-input/src/hooks/use-markdown-mentions.js +31 -4
  180. package/dist/components/md-input/src/index.d.ts +1 -4
  181. package/dist/components/md-input/src/md-input.js +18 -14
  182. package/dist/components/md-input/src/tv.d.ts +3 -0
  183. package/dist/components/md-input/src/tv.js +2 -1
  184. package/dist/components/md-input/src/types.d.ts +18 -16
  185. package/dist/components/md-render/dist/index.d.ts +1 -4
  186. package/dist/components/md-render/dist/index.js +8 -9
  187. package/dist/components/md-render/src/components/markdown-components.js +3 -3
  188. package/dist/components/md-render/src/index.d.ts +0 -1
  189. package/dist/components/md-render/src/md-render.js +5 -4
  190. package/dist/components/md-render/src/tv.js +1 -1
  191. package/dist/components/menubar/dist/index.d.ts +50 -0
  192. package/dist/components/menubar/src/components/index.d.ts +3 -0
  193. package/dist/components/menubar/src/components/menubar-divider.d.ts +8 -0
  194. package/dist/components/menubar/src/components/menubar-divider.js +24 -0
  195. package/dist/components/menubar/src/components/menubar-item.d.ts +8 -0
  196. package/dist/components/menubar/src/components/menubar-item.js +195 -0
  197. package/dist/components/menubar/src/components/menubar-trigger.d.ts +8 -0
  198. package/dist/components/menubar/src/components/menubar-trigger.js +45 -0
  199. package/dist/components/menubar/src/context/index.d.ts +1 -0
  200. package/dist/components/menubar/src/context/menubar-context.d.ts +34 -0
  201. package/dist/components/menubar/src/context/menubar-context.js +13 -0
  202. package/dist/components/menubar/src/index.d.ts +3 -0
  203. package/dist/components/menubar/src/menubar.d.ts +22 -0
  204. package/dist/components/menubar/src/menubar.js +177 -0
  205. package/dist/components/menubar/src/tv.d.ts +108 -0
  206. package/dist/components/menubar/src/tv.js +72 -0
  207. package/dist/components/menubar/tsup.config.d.ts +2 -0
  208. package/dist/components/menus/dist/index.d.ts +144 -143
  209. package/dist/components/menus/dist/index.js +50 -49
  210. package/dist/components/menus/src/components/menu-button.js +2 -2
  211. package/dist/components/menus/src/components/menu-checkbox.d.ts +1 -2
  212. package/dist/components/menus/src/components/menu-checkbox.js +2 -2
  213. package/dist/components/menus/src/components/menu-divider.js +3 -3
  214. package/dist/components/menus/src/components/menu-item.js +5 -5
  215. package/dist/components/menus/src/components/menu-label.js +2 -2
  216. package/dist/components/menus/src/components/menu-scroll-arrow.d.ts +2 -2
  217. package/dist/components/menus/src/components/menu-scroll-arrow.js +13 -3
  218. package/dist/components/menus/src/components/menu-search.js +3 -3
  219. package/dist/components/menus/src/components/menu-trigger.js +4 -4
  220. package/dist/components/menus/src/context/menu-context-item.d.ts +6 -6
  221. package/dist/components/menus/src/context/menu-context-item.js +2 -2
  222. package/dist/components/menus/src/context/menu-context-sub-trigger.js +4 -19
  223. package/dist/components/menus/src/context/menu-context.d.ts +2 -2
  224. package/dist/components/menus/src/hooks/use-menu-base-refs.d.ts +12 -12
  225. package/dist/components/menus/src/hooks/use-menu-children.d.ts +16 -16
  226. package/dist/components/menus/src/hooks/use-menu-floating.d.ts +22 -22
  227. package/dist/components/menus/src/hooks/use-menu-refs.d.ts +8 -8
  228. package/dist/components/menus/src/hooks/use-menu-refs.js +2 -2
  229. package/dist/components/menus/src/hooks/use-menu-scroll-height.d.ts +11 -11
  230. package/dist/components/menus/src/hooks/use-menu-scroll.d.ts +18 -18
  231. package/dist/components/menus/src/hooks/use-menu-selection.d.ts +21 -21
  232. package/dist/components/menus/src/hooks/use-menu-state.d.ts +11 -11
  233. package/dist/components/menus/src/hooks/use-menu-state.js +4 -4
  234. package/dist/components/menus/src/hooks/use-menu-touch.d.ts +11 -11
  235. package/dist/components/menus/src/hooks/use-menu-tree.d.ts +15 -15
  236. package/dist/components/menus/src/index.d.ts +5 -0
  237. package/dist/components/menus/src/menus.js +2 -2
  238. package/dist/components/menus/src/tv.d.ts +15 -0
  239. package/dist/components/menus/src/tv.js +8 -2
  240. package/dist/components/modal/dist/index.d.ts +3 -1
  241. package/dist/components/modal/dist/index.js +18 -11
  242. package/dist/components/modal/src/components/modal-content.js +2 -2
  243. package/dist/components/modal/src/components/modal-footer.js +2 -2
  244. package/dist/components/modal/src/components/modal-header.d.ts +3 -1
  245. package/dist/components/modal/src/components/modal-header.js +12 -5
  246. package/dist/components/modal/src/modal.js +2 -2
  247. package/dist/components/multi-select/dist/index.js +13 -11
  248. package/dist/components/multi-select/src/components/multi-select-trigger.js +8 -8
  249. package/dist/components/multi-select/src/multi-select.js +5 -3
  250. package/dist/components/numeric-input/dist/index.d.ts +10 -117
  251. package/dist/components/numeric-input/dist/index.js +18 -24
  252. package/dist/components/numeric-input/src/components/numeric-input-element.js +2 -2
  253. package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.d.ts +1 -1
  254. package/dist/components/numeric-input/src/components/numeric-input-menu-trigger.js +2 -2
  255. package/dist/components/numeric-input/src/components/numeric-input-variable.d.ts +1 -2
  256. package/dist/components/numeric-input/src/components/numeric-input-variable.js +3 -3
  257. package/dist/components/numeric-input/src/hooks/use-input-interactions.d.ts +3 -3
  258. package/dist/components/numeric-input/src/hooks/use-numeric-input.d.ts +3 -3
  259. package/dist/components/numeric-input/src/hooks/use-numeric-value-processing.d.ts +3 -3
  260. package/dist/components/numeric-input/src/hooks/use-step-calculation.d.ts +6 -6
  261. package/dist/components/numeric-input/src/index.d.ts +5 -4
  262. package/dist/components/numeric-input/src/numeric-input.js +9 -9
  263. package/dist/components/numeric-input/src/utils/error-handler.d.ts +8 -8
  264. package/dist/components/numeric-input/src/utils/expression-evaluator.d.ts +11 -11
  265. package/dist/components/numeric-input/src/utils/input-parser.d.ts +8 -8
  266. package/dist/components/numeric-input/src/utils/numeric-value-processor.d.ts +6 -6
  267. package/dist/components/numeric-input/src/utils/pattern-parser.d.ts +7 -7
  268. package/dist/components/numeric-input/src/utils/value-comparator.d.ts +16 -16
  269. package/dist/components/numeric-input/src/utils/value-processor.d.ts +14 -14
  270. package/dist/components/pagination/src/components/pagination-items-per-page.js +1 -1
  271. package/dist/components/pagination/src/components/pagination-navigation.js +5 -5
  272. package/dist/components/pagination/src/components/pagination-root.js +3 -3
  273. package/dist/components/pagination/src/components/pagination-spinner.js +20 -19
  274. package/dist/components/pagination/src/context/index.d.ts +1 -0
  275. package/dist/components/popover/dist/index.d.ts +2 -4
  276. package/dist/components/popover/dist/index.js +25 -33
  277. package/dist/components/popover/src/components/popover-header.js +1 -1
  278. package/dist/components/popover/src/hooks/use-drag.d.ts +3 -3
  279. package/dist/components/popover/src/hooks/use-floating-popover.d.ts +0 -2
  280. package/dist/components/popover/src/hooks/use-floating-popover.js +16 -13
  281. package/dist/components/popover/src/index.d.ts +2 -1
  282. package/dist/components/popover/src/popover.d.ts +1 -2
  283. package/dist/components/popover/src/popover.js +11 -21
  284. package/dist/components/progress/src/index.d.ts +4 -2
  285. package/dist/components/radio/dist/index.d.ts +1 -17
  286. package/dist/components/radio/dist/index.js +7 -10
  287. package/dist/components/radio/src/context.js +1 -1
  288. package/dist/components/radio/src/index.d.ts +0 -4
  289. package/dist/components/radio/src/radio-label.js +2 -2
  290. package/dist/components/radio/src/radio.js +4 -4
  291. package/dist/components/range/dist/index.js +16 -16
  292. package/dist/components/range/src/index.d.ts +4 -2
  293. package/dist/components/range/src/range-tuple.js +10 -10
  294. package/dist/components/range/src/range.js +6 -6
  295. package/dist/components/rich-input/dist/index.d.ts +12 -366
  296. package/dist/components/rich-input/src/components/rich-input-editable-component.d.ts +2 -2
  297. package/dist/components/rich-input/src/components/rich-input-viewport.d.ts +2 -2
  298. package/dist/components/rich-input/src/hooks/use-editor-config.d.ts +1 -1
  299. package/dist/components/rich-input/src/hooks/use-editor-effects.js +3 -0
  300. package/dist/components/rich-input/src/hooks/use-floating-ui.js +1 -1
  301. package/dist/components/rich-input/src/hooks/use-keyboard-shortcuts.d.ts +9 -9
  302. package/dist/components/rich-input/src/hooks/use-rich-input.d.ts +2 -2
  303. package/dist/components/rich-input/src/hooks/use-rich-input.js +40 -17
  304. package/dist/components/rich-input/src/hooks/use-selection-events.js +1 -2
  305. package/dist/components/rich-input/src/index.d.ts +3 -5
  306. package/dist/components/rich-input/src/rich-input-base.js +1 -1
  307. package/dist/components/rich-input/src/utils/custom-options.js +1 -1
  308. package/dist/components/rich-input/src/utils/editor-utils.js +1 -1
  309. package/dist/components/rich-input/src/utils/markdown-to-slate.d.ts +2 -2
  310. package/dist/components/rich-input/src/utils/slate-to-markdown.d.ts +1 -1
  311. package/dist/components/rich-input/src/utils/slate-to-markdown.js +9 -0
  312. package/dist/components/scroll-area/dist/index.d.ts +19 -19
  313. package/dist/components/scroll-area/dist/index.js +24 -24
  314. package/dist/components/scroll-area/src/components/scroll-area-corner.js +2 -2
  315. package/dist/components/scroll-area/src/components/scroll-area-root.js +3 -3
  316. package/dist/components/scroll-area/src/components/scroll-area-scrollbar.js +2 -2
  317. package/dist/components/scroll-area/src/components/scroll-area-thumb.js +2 -2
  318. package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.d.ts +6 -6
  319. package/dist/components/scroll-area/src/hooks/use-scroll-performance-monitor.js +3 -3
  320. package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.d.ts +1 -1
  321. package/dist/components/scroll-area/src/hooks/use-scroll-state-and-visibility.js +3 -3
  322. package/dist/components/scroll-area/src/hooks/use-scrollbar.d.ts +2 -2
  323. package/dist/components/scroll-area/src/hooks/use-thumb.d.ts +2 -2
  324. package/dist/components/scroll-area/src/tv.d.ts +18 -18
  325. package/dist/components/scroll-area/src/tv.js +12 -12
  326. package/dist/components/scroll-area/src/types.d.ts +8 -8
  327. package/dist/components/scroll-area/src/utils/index.d.ts +3 -3
  328. package/dist/components/search-input/dist/index.js +3 -3
  329. package/dist/components/search-input/src/index.d.ts +2 -1
  330. package/dist/components/search-input/src/search-input.js +3 -3
  331. package/dist/components/segmented/dist/index.js +5 -5
  332. package/dist/components/segmented/src/segmented-item.js +3 -3
  333. package/dist/components/segmented/src/segmented.js +2 -2
  334. package/dist/components/select/dist/index.js +4 -4
  335. package/dist/components/select/src/select.js +4 -4
  336. package/dist/components/separator/dist/index.d.ts +26 -0
  337. package/dist/components/separator/src/index.d.ts +2 -0
  338. package/dist/components/separator/src/separator.d.ts +22 -0
  339. package/dist/components/separator/src/separator.js +33 -0
  340. package/dist/components/separator/src/tv.d.ts +76 -0
  341. package/dist/components/separator/src/tv.js +25 -0
  342. package/dist/components/separator/tsup.config.d.ts +2 -0
  343. package/dist/components/skeleton/dist/index.d.ts +1 -28
  344. package/dist/components/skeleton/src/context/skeleton-context.js +1 -1
  345. package/dist/components/skeleton/src/hooks/use-skeleton.d.ts +1 -2
  346. package/dist/components/skeleton/src/hooks/use-skeleton.js +1 -1
  347. package/dist/components/skeleton/src/index.d.ts +1 -3
  348. package/dist/components/skeleton/src/skeleton.d.ts +0 -13
  349. package/dist/components/skeleton/src/skeleton.js +4 -6
  350. package/dist/components/skeleton/src/tv.d.ts +18 -12
  351. package/dist/components/skeleton/src/tv.js +10 -6
  352. package/dist/components/slot/dist/index.d.ts +10 -10
  353. package/dist/components/slot/dist/index.js +4 -2
  354. package/dist/components/slot/src/slot.d.ts +12 -12
  355. package/dist/components/slot/src/slot.js +6 -3
  356. package/dist/components/stackflow/src/context.js +1 -1
  357. package/dist/components/stackflow/src/index.d.ts +2 -1
  358. package/dist/components/switch/dist/index.d.ts +2 -2
  359. package/dist/components/switch/dist/index.js +6 -7
  360. package/dist/components/switch/src/index.d.ts +2 -1
  361. package/dist/components/switch/src/switch.js +6 -6
  362. package/dist/components/table/dist/index.d.ts +679 -0
  363. package/dist/components/table/index.d.ts +1 -0
  364. package/dist/components/table/src/components/column-resizer.d.ts +8 -0
  365. package/dist/components/table/src/components/column-resizer.js +58 -0
  366. package/dist/components/table/src/components/drag-guide.d.ts +6 -0
  367. package/dist/components/table/src/components/drag-guide.js +64 -0
  368. package/dist/components/table/src/components/index.d.ts +12 -0
  369. package/dist/components/table/src/components/resize-guide.d.ts +5 -0
  370. package/dist/components/table/src/components/resize-guide.js +25 -0
  371. package/dist/components/table/src/components/table-body.d.ts +6 -0
  372. package/dist/components/table/src/components/table-body.js +335 -0
  373. package/dist/components/table/src/components/table-cell.d.ts +6 -0
  374. package/dist/components/table/src/components/table-cell.js +89 -0
  375. package/dist/components/table/src/components/table-column.d.ts +5 -0
  376. package/dist/components/table/src/components/table-column.js +269 -0
  377. package/dist/components/table/src/components/table-empty.d.ts +8 -0
  378. package/dist/components/table/src/components/table-empty.js +10 -0
  379. package/dist/components/table/src/components/table-footer.d.ts +7 -0
  380. package/dist/components/table/src/components/table-footer.js +15 -0
  381. package/dist/components/table/src/components/table-header.d.ts +3 -0
  382. package/dist/components/table/src/components/table-header.js +88 -0
  383. package/dist/components/table/src/components/table-root.d.ts +3 -0
  384. package/dist/components/table/src/components/table-root.js +317 -0
  385. package/dist/components/table/src/components/table-row.d.ts +23 -0
  386. package/dist/components/table/src/components/table-row.js +166 -0
  387. package/dist/components/table/src/components/table-value.d.ts +6 -0
  388. package/dist/components/table/src/components/table-value.js +8 -0
  389. package/dist/components/table/src/context.d.ts +121 -0
  390. package/dist/components/table/src/context.js +63 -0
  391. package/dist/components/table/src/hooks/index.d.ts +4 -0
  392. package/dist/components/table/src/hooks/use-column-order.d.ts +26 -0
  393. package/dist/components/table/src/hooks/use-column-order.js +95 -0
  394. package/dist/components/table/src/hooks/use-column-resize.d.ts +17 -0
  395. package/dist/components/table/src/hooks/use-column-resize.js +75 -0
  396. package/dist/components/table/src/hooks/use-consecutive-selection-style.d.ts +12 -0
  397. package/dist/components/table/src/hooks/use-consecutive-selection-style.js +28 -0
  398. package/dist/components/table/src/hooks/use-table.d.ts +35 -0
  399. package/dist/components/table/src/hooks/use-table.js +245 -0
  400. package/dist/components/table/src/index.d.ts +4 -0
  401. package/dist/components/table/src/table.d.ts +88 -0
  402. package/dist/components/table/src/table.js +24 -0
  403. package/dist/components/table/src/tv.d.ts +176 -0
  404. package/dist/components/table/src/tv.js +97 -0
  405. package/dist/components/table/src/types.d.ts +292 -0
  406. package/dist/components/table/tsup.config.d.ts +2 -0
  407. package/dist/components/tabs/dist/index.js +4 -3
  408. package/dist/components/tabs/src/tabs.d.ts +2 -2
  409. package/dist/components/tabs/src/tabs.js +5 -4
  410. package/dist/components/text-field/dist/index.d.ts +1 -1
  411. package/dist/components/text-field/dist/index.js +10 -10
  412. package/dist/components/text-field/src/components/field-addon.d.ts +1 -2
  413. package/dist/components/text-field/src/index.d.ts +3 -1
  414. package/dist/components/text-field/src/text-field.js +10 -10
  415. package/dist/components/textarea/dist/index.d.ts +33 -5
  416. package/dist/components/textarea/dist/index.js +32 -7
  417. package/dist/components/textarea/src/components/autosize/index.d.ts +6 -1
  418. package/dist/components/textarea/src/components/autosize/index.js +31 -6
  419. package/dist/components/textarea/src/textarea.js +1 -1
  420. package/dist/components/textarea/src/types.d.ts +33 -5
  421. package/dist/components/toggle-button/dist/index.d.ts +26 -2
  422. package/dist/components/toggle-button/src/context.d.ts +11 -0
  423. package/dist/components/toggle-button/src/context.js +13 -0
  424. package/dist/components/toggle-button/src/index.d.ts +2 -0
  425. package/dist/components/toggle-button/src/toggle-button.js +4 -4
  426. package/dist/components/toggle-button/src/toggle-group.d.ts +26 -0
  427. package/dist/components/toggle-button/src/toggle-group.js +156 -0
  428. package/dist/components/toggle-button/src/tv.d.ts +67 -3
  429. package/dist/components/toggle-button/src/tv.js +45 -14
  430. package/dist/components/tooltip/dist/index.d.ts +10 -43
  431. package/dist/components/tooltip/dist/index.js +35 -33
  432. package/dist/components/tooltip/src/components/tooltip-arrow.js +1 -1
  433. package/dist/components/tooltip/src/components/tooltip-content.js +5 -4
  434. package/dist/components/tooltip/src/context/index.d.ts +1 -0
  435. package/dist/components/tooltip/src/hooks/use-tooltip.js +3 -3
  436. package/dist/components/tooltip/src/index.d.ts +2 -4
  437. package/dist/components/tooltip/src/tooltip.d.ts +7 -1
  438. package/dist/components/tooltip/src/tooltip.js +6 -1
  439. package/dist/components/tooltip/src/tv.js +1 -1
  440. package/dist/components/virtualized-grid/dist/index.d.ts +2 -2
  441. package/dist/components/virtualized-grid/src/use-item-pool.js +14 -26
  442. package/dist/components/virtualized-grid/src/use-virtualized-grid.d.ts +1 -1
  443. package/dist/components/virtualized-grid/src/use-virtualized-grid.js +14 -8
  444. package/dist/components/virtualized-grid/src/utility.d.ts +1 -1
  445. package/dist/components/virtualized-grid/src/utility.js +37 -31
  446. package/dist/components/virtualized-grid/src/virtualized-grid.js +27 -17
  447. package/dist/context/choice-ui-provider.d.ts +35 -0
  448. package/dist/context/choice-ui-provider.js +14 -0
  449. package/dist/context/index.d.ts +2 -0
  450. package/dist/index.d.ts +1 -0
  451. package/dist/index.js +50 -195
  452. package/package.json +1 -1
  453. package/dist/components/code-block/src/index.js +0 -15
  454. package/dist/components/rich-input/src/hooks/use-mouse-events.js +0 -113
  455. package/dist/components/rich-input/src/hooks/use-validation.js +0 -80
  456. package/dist/components/rich-input/src/utils/markdown-to-slate.js +0 -219
  457. /package/dist/components/command/src/{command-score.d.ts → utils/command-score.d.ts} +0 -0
  458. /package/dist/components/command/src/{command-score.js → utils/command-score.js} +0 -0
  459. /package/dist/components/pagination/src/{components → context}/pagination-context.d.ts +0 -0
  460. /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,8 @@
1
1
  import { default as React__default, ComponentType } from 'react';
2
2
  import { IconButtonProps } from '../../icon-button/src';
3
- import { RenderElementProps, ReactEditor } from 'slate-react';
4
- import { Descendant, Editor, Range } from 'slate';
5
- import { HistoryEditor } from 'slate-history';
3
+ import { RenderElementProps } from 'slate-react';
6
4
  import * as React$1 from 'react';
7
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
- import * as tailwind_variants from 'tailwind-variants';
9
6
 
10
7
  interface ContextInputHeaderProps {
11
8
  children?: React.ReactNode;
@@ -34,12 +31,12 @@ interface InsertMentionsButtonProps extends IconButtonProps {
34
31
  }
35
32
  declare const InsertMentionsButton: React$1.NamedExoticComponent<InsertMentionsButtonProps>;
36
33
 
37
- interface MentionProps extends RenderElementProps {
34
+ interface ContextMentionProps extends RenderElementProps {
38
35
  mentionPrefix?: string;
39
36
  renderMention?: (mention: MentionMatch) => React.ReactNode;
40
37
  variant?: "default" | "light" | "dark" | "reset";
41
38
  }
42
- interface MentionItem {
39
+ interface ContextMentionItemProps {
43
40
  description?: string;
44
41
  id: string;
45
42
  label: string;
@@ -53,7 +50,7 @@ interface MentionMatch {
53
50
  mentionText: string;
54
51
  };
55
52
  endIndex: number;
56
- item: MentionItem;
53
+ item: ContextMentionItemProps;
57
54
  startIndex: number;
58
55
  text: string;
59
56
  }
@@ -61,12 +58,12 @@ interface ContextInputValue {
61
58
  mentions: MentionMatch[];
62
59
  text: string;
63
60
  }
64
- interface MentionTrigger {
61
+ interface ContextMentionTrigger {
65
62
  allowSpaceInQuery?: boolean;
66
63
  char: string;
67
64
  mentionRegex?: RegExp;
68
- onSearch: (query: string, char: string) => Promise<MentionItem[]> | MentionItem[];
69
- renderItem?: (item: MentionItem, isSelected: boolean) => React.ReactNode;
65
+ onSearch: (query: string, char: string) => Promise<ContextMentionItemProps[]> | ContextMentionItemProps[];
66
+ renderItem?: (item: ContextMentionItemProps, isSelected: boolean) => React.ReactNode;
70
67
  }
71
68
  interface ContextInputProps {
72
69
  afterElement?: React.ReactNode;
@@ -74,7 +71,7 @@ interface ContextInputProps {
74
71
  beforeElement?: React.ReactNode;
75
72
  children?: React.ReactNode;
76
73
  className?: string;
77
- customMentionComponent?: ComponentType<MentionProps>;
74
+ customMentionComponent?: ComponentType<ContextMentionProps>;
78
75
  disabled?: boolean;
79
76
  maxLength?: number;
80
77
  maxSuggestions?: number;
@@ -87,15 +84,15 @@ interface ContextInputProps {
87
84
  onCompositionStart?: (event: React.CompositionEvent) => void;
88
85
  onFocus?: () => void;
89
86
  onKeyDown?: (event: React.KeyboardEvent) => void;
90
- onMentionSelect?: (mention: MentionItem, trigger: string) => void;
87
+ onMentionSelect?: (mention: ContextMentionItemProps, trigger: string) => void;
91
88
  placeholder?: string;
92
89
  readOnly?: boolean;
93
90
  renderMention?: (mention: MentionMatch) => React.ReactNode;
94
- renderSuggestion?: (item: MentionItem, isSelected: boolean) => React.ReactNode;
91
+ renderSuggestion?: (item: ContextMentionItemProps, isSelected: boolean) => React.ReactNode;
95
92
  root?: HTMLElement | null;
96
93
  size?: "default" | "large";
97
94
  suggestionListClassName?: string;
98
- triggers?: MentionTrigger[];
95
+ triggers?: ContextMentionTrigger[];
99
96
  value?: ContextInputValue;
100
97
  variant?: "default" | "light" | "dark" | "reset";
101
98
  }
@@ -103,61 +100,18 @@ interface ContextMentionElement {
103
100
  children: [{
104
101
  text: "";
105
102
  }];
106
- mentionData?: MentionItem["metadata"];
103
+ mentionData?: ContextMentionItemProps["metadata"];
107
104
  mentionId: string;
108
105
  mentionLabel: string;
109
106
  mentionPrefix?: string;
110
- mentionType: MentionItem["type"];
107
+ mentionType: ContextMentionItemProps["type"];
111
108
  type: "mention";
112
109
  }
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
110
  interface ContextInputRef {
122
111
  focus: () => void;
123
112
  }
124
113
 
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>;
114
+ declare const Mention: React__default.MemoExoticComponent<(props: ContextMentionProps) => react_jsx_runtime.JSX.Element>;
161
115
 
162
116
  interface ContextInputComponent extends React__default.ForwardRefExoticComponent<ContextInputProps & React__default.RefAttributes<ContextInputRef>> {
163
117
  CopyButton: typeof CopyButton;
@@ -168,283 +122,4 @@ interface ContextInputComponent extends React__default.ForwardRefExoticComponent
168
122
  }
169
123
  declare const ContextInput: ContextInputComponent;
170
124
 
171
- type ContextEditor = Editor & ReactEditor & HistoryEditor;
172
-
173
- interface MentionSearchState {
174
- index: number;
175
- isSearching: boolean;
176
- loading: boolean;
177
- query: string;
178
- suggestions: MentionItem[];
179
- target: Range | null;
180
- trigger: string;
181
- }
182
- interface UseMentionsProps {
183
- editor: ContextEditor;
184
- maxSuggestions?: number;
185
- mentionPrefix?: string;
186
- onMentionSelect?: (mention: MentionItem, trigger: string) => void;
187
- onSearchClose?: () => void;
188
- triggers: MentionTrigger[];
189
- }
190
- declare function useMentions({ editor, triggers, maxSuggestions, mentionPrefix, onMentionSelect, onSearchClose, }: UseMentionsProps): {
191
- searchState: MentionSearchState;
192
- insertMention: (mention: MentionItem) => void;
193
- handleKeyDown: (event: React.KeyboardEvent) => boolean;
194
- getSuggestionPosition: () => {
195
- x: number;
196
- y: number;
197
- } | null;
198
- closeMentionSearch: () => void;
199
- selectMention: (index: number) => void;
200
- selectNextMention: () => void;
201
- selectPreviousMention: () => void;
202
- };
203
-
204
- declare const useSlateEditor: (maxLength?: number) => ContextEditor;
205
-
206
- interface UseContextInputProps {
207
- autoFocus?: boolean;
208
- editor?: ContextEditor;
209
- onChange?: (value: ContextInputValue) => void;
210
- value?: ContextInputValue;
211
- }
212
- declare const useContextInput: ({ value, onChange, editor, autoFocus }: UseContextInputProps) => {
213
- slateValue: Descendant[];
214
- handleChange: (newValue: Descendant[]) => void;
215
- };
216
-
217
- declare const ContextInputEditorContext: React$1.Context<ContextEditor | null>;
218
- declare const useContextInputEditor: () => ContextEditor;
219
-
220
- /**
221
- * 将SlateJS节点数组转换为字符串
222
- * mention节点转换为 {{#context#}}{{#id.text#}} 格式
223
- */
224
- declare function convertSlateToText(nodes: Descendant[]): string;
225
- /**
226
- * 将字符串转换为SlateJS节点数组
227
- * 支持解析 {{#context#}}{{#id.text#}} 格式为mention节点
228
- */
229
- declare function convertTextToSlate(text: string): Descendant[];
230
- /**
231
- * 创建mention查找函数的接口
232
- */
233
- interface MentionResolver {
234
- (mentionId: string): Promise<{
235
- label: string;
236
- metadata?: Record<string, unknown>;
237
- type: string;
238
- }>;
239
- }
240
- /**
241
- * 高级版本:支持异步解析mention信息
242
- */
243
- declare function convertTextToSlateWithResolver(text: string, mentionResolver?: MentionResolver): Promise<Descendant[]>;
244
-
245
- declare const extractTextWithMentions: (nodes: Descendant[]) => {
246
- text: string;
247
- mentionsData: {
248
- element: ContextMentionElement;
249
- endIndex: number;
250
- startIndex: number;
251
- }[];
252
- };
253
- declare const parseTextWithMentions: (text: string, mentions: MentionMatch[]) => Descendant[];
254
-
255
- declare const extractMentionContext: (text: string, startIndex: number, endIndex: number, contextLength?: number) => {
256
- mentionText: string;
257
- fullContext: string;
258
- };
259
-
260
- /**
261
- * 检查是否需要在当前位置前面添加空格
262
- * @param editor - SlateJS 编辑器实例
263
- * @returns 是否需要添加前导空格
264
- */
265
- declare function shouldInsertSpaceBefore(editor: Editor): boolean;
266
- /**
267
- * 检查是否需要在当前位置后面添加空格
268
- * @param editor - SlateJS 编辑器实例
269
- * @returns 是否需要添加后导空格
270
- */
271
- declare function shouldInsertSpaceAfter(editor: Editor): boolean;
272
- /**
273
- * 在当前位置智能插入空格(前导空格)
274
- * @param editor - SlateJS 编辑器实例
275
- * @returns 是否插入了空格
276
- */
277
- declare function insertSpaceBeforeIfNeeded(editor: Editor): boolean;
278
- /**
279
- * 在当前位置智能插入空格(后导空格)
280
- * @param editor - SlateJS 编辑器实例
281
- * @returns 是否插入了空格
282
- */
283
- declare function insertSpaceAfterIfNeeded(editor: Editor): boolean;
284
- /**
285
- * 为 mention 插入智能间距
286
- * 这个函数会在插入 mention 前后根据上下文智能添加空格
287
- * @param editor - SlateJS 编辑器实例
288
- * @param beforeInsertion - 在插入内容前执行的回调
289
- */
290
- declare function insertWithSmartSpacing(editor: Editor, beforeInsertion: () => void): void;
291
-
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 };
125
+ export { ContextInput, type ContextInputProps, type ContextInputRef, type ContextInputValue, type ContextMentionElement, type ContextMentionItemProps, type ContextMentionProps, type ContextMentionTrigger, CopyButton, InsertMentionsButton };
@@ -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;