@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
@@ -1,5 +1,5 @@
1
1
  import { Button } from "../../button/dist/index.js";
2
- import React, { forwardRef, memo, useCallback, useContext, createContext, useMemo, startTransition, useRef, useEffect, Children, isValidElement, Fragment as Fragment$1, useState } from "react";
2
+ import React, { forwardRef, memo, useCallback, useContext, createContext, useMemo, startTransition, useRef, Children, isValidElement, Fragment as Fragment$1, useState, useEffect } from "react";
3
3
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
4
4
  import { Check, ChevronRightSmall, ChevronDownSmall, ChevronUpSmall } from "@choiceform/icons-react";
5
5
  import { Kbd } from "../../kbd/dist/index.js";
@@ -213,7 +213,7 @@ var MenuButtonTv = tcv({
213
213
  var MenuScrollArrowTv = tcv({
214
214
  base: [
215
215
  "absolute flex h-6 w-full items-center justify-center overflow-hidden",
216
- "z-menu pointer-events-auto border-white/10 bg-gray-900 text-white hover:bg-gray-800"
216
+ "z-menu pointer-events-auto backdrop-blur-sm"
217
217
  ],
218
218
  variants: {
219
219
  dir: {
@@ -223,11 +223,17 @@ var MenuScrollArrowTv = tcv({
223
223
  visible: {
224
224
  true: "visible",
225
225
  false: "hidden"
226
+ },
227
+ variant: {
228
+ default: "border-white/10 bg-gray-900/50 text-white hover:bg-gray-800",
229
+ light: "border-gray-200 bg-white/50 text-gray-900 hover:bg-gray-100",
230
+ reset: {}
226
231
  }
227
232
  },
228
233
  defaultVariants: {
229
234
  visible: false,
230
- dir: "down"
235
+ dir: "down",
236
+ variant: "default"
231
237
  }
232
238
  });
233
239
  var MenuCheckboxTv = tcv({
@@ -283,14 +289,14 @@ var MenuCheckboxTv = tcv({
283
289
  var MenuButton = memo(
284
290
  forwardRef((props, ref) => {
285
291
  const { className, ...rest } = props;
286
- const styles = MenuButtonTv();
292
+ const tv = MenuButtonTv();
287
293
  return /* @__PURE__ */ jsx(
288
294
  Button,
289
295
  {
290
296
  ...rest,
291
297
  ref,
292
298
  variant: "secondary",
293
- className: tcx(styles, className)
299
+ className: tcx(tv, className)
294
300
  }
295
301
  );
296
302
  })
@@ -298,20 +304,20 @@ var MenuButton = memo(
298
304
  MenuButton.displayName = "MenuButton";
299
305
  var MenuCheckbox = memo(function MenuCheckbox2(props) {
300
306
  const { active, selected, disabled, indeterminate, ...rest } = props;
301
- const styles = MenuCheckboxTv({ active, selected });
302
- return /* @__PURE__ */ jsx("div", { className: styles.root(), children: selected && /* @__PURE__ */ jsx("div", { className: styles.checkbox(), children: /* @__PURE__ */ jsx(Check, {}) }) });
307
+ const tv = MenuCheckboxTv({ active, selected });
308
+ return /* @__PURE__ */ jsx("div", { className: tv.root(), children: selected && /* @__PURE__ */ jsx("div", { className: tv.checkbox(), children: /* @__PURE__ */ jsx(Check, {}) }) });
303
309
  });
304
310
  var MenuDivider = forwardRef((props, ref) => {
305
311
  const { className, ...rest } = props;
306
- const styles = MenuDividerTv();
312
+ const tv = MenuDividerTv();
307
313
  return /* @__PURE__ */ jsx(
308
314
  "div",
309
315
  {
310
316
  ref,
311
- className: tcx(styles.root(), className),
317
+ className: tcx(tv.root(), className),
312
318
  "aria-hidden": "true",
313
319
  ...rest,
314
- children: /* @__PURE__ */ jsx("div", { className: styles.divider() })
320
+ children: /* @__PURE__ */ jsx("div", { className: tv.divider() })
315
321
  }
316
322
  );
317
323
  });
@@ -331,7 +337,7 @@ var MenuItem = memo(
331
337
  size: size2 = "default",
332
338
  ...rest
333
339
  } = props;
334
- const styles = MenuItemTv({
340
+ const tv = MenuItemTv({
335
341
  active,
336
342
  disabled,
337
343
  selected,
@@ -348,23 +354,23 @@ var MenuItem = memo(
348
354
  ref,
349
355
  type: "button",
350
356
  role: "menuitem",
351
- className: tcx(styles.root(), className),
357
+ className: tcx(tv.root(), className),
352
358
  tabIndex: active ? 0 : -1,
353
359
  disabled,
354
360
  "aria-disabled": disabled,
355
361
  "aria-selected": selected,
356
362
  children: [
357
- prefixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: prefixElement }),
363
+ prefixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: prefixElement }),
358
364
  children,
359
365
  hasValidShortcut && /* @__PURE__ */ jsx(
360
366
  Kbd,
361
367
  {
362
- className: styles.shortcut(),
368
+ className: tv.shortcut(),
363
369
  keys: shortcut.modifier,
364
370
  children: shortcut.keys
365
371
  }
366
372
  ),
367
- suffixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: suffixElement })
373
+ suffixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: suffixElement })
368
374
  ]
369
375
  }
370
376
  );
@@ -377,11 +383,11 @@ var MenuLabel = memo(function MenuLabel2({
377
383
  selection,
378
384
  ...props
379
385
  }) {
380
- const styles = MenuLabelTv({ selection });
386
+ const tv = MenuLabelTv({ selection });
381
387
  return /* @__PURE__ */ jsx(
382
388
  "div",
383
389
  {
384
- className: tcx(styles, className),
390
+ className: tcx(tv, className),
385
391
  ...props,
386
392
  children
387
393
  }
@@ -402,7 +408,17 @@ var shouldShowArrow = (scrollRef, dir) => {
402
408
  return false;
403
409
  };
404
410
  var MenuScrollArrow = function MenuScrollArrow2(props) {
405
- const { isPositioned, dir, scrollRef, scrollTop, onScroll, innerOffset, onHide, className } = props;
411
+ const {
412
+ isPositioned,
413
+ dir,
414
+ scrollRef,
415
+ scrollTop,
416
+ onScroll,
417
+ innerOffset,
418
+ onHide,
419
+ className,
420
+ variant = "default"
421
+ } = props;
406
422
  const [show, setShow] = useState(false);
407
423
  const ref = useRef(null);
408
424
  const statusRef = useRef("idle");
@@ -416,7 +432,7 @@ var MenuScrollArrow = function MenuScrollArrow2(props) {
416
432
  isPositionedRef.current = isPositioned;
417
433
  dirRef.current = dir;
418
434
  }, [isPositioned, dir]);
419
- const styles = MenuScrollArrowTv({ dir, visible: show });
435
+ const tv = MenuScrollArrowTv({ dir, visible: show, variant });
420
436
  useIsomorphicLayoutEffect(() => {
421
437
  if (isPositioned && scrollRef.current) {
422
438
  lastScrollHeightRef.current = scrollRef.current.scrollHeight;
@@ -504,7 +520,7 @@ var MenuScrollArrow = function MenuScrollArrow2(props) {
504
520
  return /* @__PURE__ */ jsx(
505
521
  "div",
506
522
  {
507
- className: tcx(styles, className),
523
+ className: tcx(tv, className),
508
524
  "data-dir": dir,
509
525
  ref,
510
526
  "aria-hidden": true,
@@ -554,15 +570,15 @@ var MenuSearchEmpty = memo(function MenuSearchEmpty2(props) {
554
570
  },
555
571
  ...rest
556
572
  } = props;
557
- const styles = MenuSearchEmptyTv();
573
+ const tv = MenuSearchEmptyTv();
558
574
  return /* @__PURE__ */ jsxs(
559
575
  "div",
560
576
  {
561
577
  ...rest,
562
- className: tcx(styles.root(), className),
578
+ className: tcx(tv.root(), className),
563
579
  children: [
564
580
  children,
565
- /* @__PURE__ */ jsx("span", { className: styles.text(), children: defaultText.searchEmpty }),
581
+ /* @__PURE__ */ jsx("span", { className: tv.text(), children: defaultText.searchEmpty }),
566
582
  /* @__PURE__ */ jsx(
567
583
  Button,
568
584
  {
@@ -593,7 +609,7 @@ var MenuTrigger = memo(
593
609
  disabled,
594
610
  ...rest
595
611
  } = props;
596
- const styles = MenuTriggerTv({
612
+ const tv = MenuTriggerTv({
597
613
  hasPrefix: !!prefixElement,
598
614
  hasSuffix: !!suffixElement,
599
615
  isEmpty: empty,
@@ -628,7 +644,7 @@ var MenuTrigger = memo(
628
644
  Button,
629
645
  {
630
646
  ref,
631
- className: tcx(styles.root(), className),
647
+ className: tcx(tv.root(), className),
632
648
  variant: "secondary",
633
649
  active,
634
650
  selected,
@@ -636,9 +652,9 @@ var MenuTrigger = memo(
636
652
  size: size2,
637
653
  ...rest,
638
654
  children: [
639
- prefixElement && /* @__PURE__ */ jsx("div", { className: tcx(styles.icon(), prefixClassName), children: prefixElement }),
655
+ prefixElement && /* @__PURE__ */ jsx("div", { className: tcx(tv.icon(), prefixClassName), children: prefixElement }),
640
656
  typeof children === "function" ? children(active ?? false) : children,
641
- suffixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: suffixElement })
657
+ suffixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: suffixElement })
642
658
  ]
643
659
  }
644
660
  );
@@ -679,7 +695,7 @@ var MenuValue = memo(({ children, ...rest }) => {
679
695
  MenuValue.displayName = "MenuValue";
680
696
  var MenusBase = forwardRef((props, ref) => {
681
697
  const { children, className, matchTriggerWidth, variant, ...rest } = props;
682
- const styles = MenusTv({ matchTriggerWidth, variant });
698
+ const tv = MenusTv({ matchTriggerWidth, variant });
683
699
  const processChildren = (children2) => {
684
700
  return Children.map(children2, (child) => {
685
701
  if (isValidElement(child)) {
@@ -703,7 +719,7 @@ var MenusBase = forwardRef((props, ref) => {
703
719
  ref,
704
720
  role: "menu",
705
721
  ...rest,
706
- className: tcx(styles, className),
722
+ className: tcx(tv, className),
707
723
  "data-variant": variant,
708
724
  children: processedChildren
709
725
  }
@@ -877,8 +893,8 @@ var MenuContextItem = memo(
877
893
  );
878
894
  }
879
895
  const isActive = useMemo(
880
- () => item.index === menu.activeIndex,
881
- [item.index, menu.activeIndex]
896
+ () => customActive ?? item.index === menu.activeIndex,
897
+ [customActive, item.index, menu.activeIndex]
882
898
  );
883
899
  const handleClick = useEventCallback((event) => {
884
900
  event.stopPropagation();
@@ -1017,22 +1033,6 @@ var MenuContextSubTrigger = memo(
1017
1033
  () => item.index === menu.activeIndex || !!active,
1018
1034
  [item.index, menu.activeIndex, active]
1019
1035
  );
1020
- useEffect(() => {
1021
- const currentRef = buttonRef.current;
1022
- if (!currentRef) return;
1023
- const handleKeyDown = (e) => {
1024
- const currentlyActive = item.index === menu.activeIndex || !!active;
1025
- if (currentlyActive && (e.key === "Enter" || e.key === "ArrowRight")) {
1026
- e.preventDefault();
1027
- e.stopPropagation();
1028
- currentRef.click();
1029
- }
1030
- };
1031
- currentRef.addEventListener("keydown", handleKeyDown);
1032
- return () => {
1033
- currentRef.removeEventListener("keydown", handleKeyDown);
1034
- };
1035
- }, [item.index, menu.activeIndex, active]);
1036
1036
  const handleFocus = useEventCallback((event) => {
1037
1037
  var _a;
1038
1038
  (_a = props.onFocus) == null ? void 0 : _a.call(props, event);
@@ -1099,10 +1099,11 @@ var MenuContextSubTrigger = memo(
1099
1099
  selected,
1100
1100
  suffixElement,
1101
1101
  prefixElement: prefixConfig,
1102
+ "aria-haspopup": "menu",
1102
1103
  ...menu.getItemProps({
1103
1104
  ...rest,
1104
- // selection 模式下,如果 selected 属性存在(说明是可选的),则使用 handleClick 关闭菜单
1105
- // 否则保持默认行为(打开子菜单)
1105
+ // In selection mode, if the selected property exists (indicates it is selectable), use handleClick to close the menu
1106
+ // Otherwise keep default behavior (open submenu)
1106
1107
  onClick: menu.selection && selected !== void 0 ? handleClick : void 0,
1107
1108
  onMouseUp: menu.selection && selected !== void 0 ? handleMouseUp : void 0,
1108
1109
  onPointerUp: menu.selection && selected !== void 0 ? handlePointerUp : void 0,
@@ -6,14 +6,14 @@ import { tcx } from "../../../../shared/utils/tcx/tcx.js";
6
6
  const MenuButton = memo(
7
7
  forwardRef((props, ref) => {
8
8
  const { className, ...rest } = props;
9
- const styles = MenuButtonTv();
9
+ const tv = MenuButtonTv();
10
10
  return /* @__PURE__ */ jsx(
11
11
  Button,
12
12
  {
13
13
  ...rest,
14
14
  ref,
15
15
  variant: "secondary",
16
- className: tcx(styles, className)
16
+ className: tcx(tv, className)
17
17
  }
18
18
  );
19
19
  })
@@ -1,9 +1,8 @@
1
1
  import { HTMLProps } from 'react';
2
- interface MenuCheckboxProps extends HTMLProps<HTMLDivElement> {
2
+ export interface MenuCheckboxProps extends HTMLProps<HTMLDivElement> {
3
3
  active?: boolean;
4
4
  disabled?: boolean;
5
5
  indeterminate?: boolean;
6
6
  selected?: boolean;
7
7
  }
8
8
  export declare const MenuCheckbox: import('react').NamedExoticComponent<MenuCheckboxProps>;
9
- export {};
@@ -4,8 +4,8 @@ import { Check } from "@choiceform/icons-react";
4
4
  import { MenuCheckboxTv } from "../tv.js";
5
5
  const MenuCheckbox = memo(function MenuCheckbox2(props) {
6
6
  const { active, selected, disabled, indeterminate, ...rest } = props;
7
- const styles = MenuCheckboxTv({ active, selected });
8
- return /* @__PURE__ */ jsx("div", { className: styles.root(), children: selected && /* @__PURE__ */ jsx("div", { className: styles.checkbox(), children: /* @__PURE__ */ jsx(Check, {}) }) });
7
+ const tv = MenuCheckboxTv({ active, selected });
8
+ return /* @__PURE__ */ jsx("div", { className: tv.root(), children: selected && /* @__PURE__ */ jsx("div", { className: tv.checkbox(), children: /* @__PURE__ */ jsx(Check, {}) }) });
9
9
  });
10
10
  export {
11
11
  MenuCheckbox
@@ -4,15 +4,15 @@ import { MenuDividerTv } from "../tv.js";
4
4
  import { tcx } from "../../../../shared/utils/tcx/tcx.js";
5
5
  const MenuDivider = forwardRef((props, ref) => {
6
6
  const { className, ...rest } = props;
7
- const styles = MenuDividerTv();
7
+ const tv = MenuDividerTv();
8
8
  return /* @__PURE__ */ jsx(
9
9
  "div",
10
10
  {
11
11
  ref,
12
- className: tcx(styles.root(), className),
12
+ className: tcx(tv.root(), className),
13
13
  "aria-hidden": "true",
14
14
  ...rest,
15
- children: /* @__PURE__ */ jsx("div", { className: styles.divider() })
15
+ children: /* @__PURE__ */ jsx("div", { className: tv.divider() })
16
16
  }
17
17
  );
18
18
  });
@@ -18,7 +18,7 @@ const MenuItem = memo(
18
18
  size = "default",
19
19
  ...rest
20
20
  } = props;
21
- const styles = MenuItemTv({
21
+ const tv = MenuItemTv({
22
22
  active,
23
23
  disabled,
24
24
  selected,
@@ -35,23 +35,23 @@ const MenuItem = memo(
35
35
  ref,
36
36
  type: "button",
37
37
  role: "menuitem",
38
- className: tcx(styles.root(), className),
38
+ className: tcx(tv.root(), className),
39
39
  tabIndex: active ? 0 : -1,
40
40
  disabled,
41
41
  "aria-disabled": disabled,
42
42
  "aria-selected": selected,
43
43
  children: [
44
- prefixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: prefixElement }),
44
+ prefixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: prefixElement }),
45
45
  children,
46
46
  hasValidShortcut && /* @__PURE__ */ jsx(
47
47
  Kbd,
48
48
  {
49
- className: styles.shortcut(),
49
+ className: tv.shortcut(),
50
50
  keys: shortcut.modifier,
51
51
  children: shortcut.keys
52
52
  }
53
53
  ),
54
- suffixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: suffixElement })
54
+ suffixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: suffixElement })
55
55
  ]
56
56
  }
57
57
  );
@@ -8,11 +8,11 @@ const MenuLabel = memo(function MenuLabel2({
8
8
  selection,
9
9
  ...props
10
10
  }) {
11
- const styles = MenuLabelTv({ selection });
11
+ const tv = MenuLabelTv({ selection });
12
12
  return /* @__PURE__ */ jsx(
13
13
  "div",
14
14
  {
15
- className: tcx(styles, className),
15
+ className: tcx(tv, className),
16
16
  ...props,
17
17
  children
18
18
  }
@@ -1,4 +1,4 @@
1
- interface MenuScrollArrowProps {
1
+ export interface MenuScrollArrowProps {
2
2
  className?: string;
3
3
  dir: "up" | "down";
4
4
  innerOffset: number;
@@ -7,6 +7,6 @@ interface MenuScrollArrowProps {
7
7
  onScroll: (amount: number) => void;
8
8
  scrollRef: React.MutableRefObject<HTMLDivElement | null>;
9
9
  scrollTop: number;
10
+ variant?: "default" | "light" | "reset";
10
11
  }
11
12
  export declare const MenuScrollArrow: (props: MenuScrollArrowProps) => import("react/jsx-runtime").JSX.Element;
12
- export {};
@@ -19,7 +19,17 @@ const shouldShowArrow = (scrollRef, dir) => {
19
19
  return false;
20
20
  };
21
21
  const MenuScrollArrow = function MenuScrollArrow2(props) {
22
- const { isPositioned, dir, scrollRef, scrollTop, onScroll, innerOffset, onHide, className } = props;
22
+ const {
23
+ isPositioned,
24
+ dir,
25
+ scrollRef,
26
+ scrollTop,
27
+ onScroll,
28
+ innerOffset,
29
+ onHide,
30
+ className,
31
+ variant = "default"
32
+ } = props;
23
33
  const [show, setShow] = useState(false);
24
34
  const ref = useRef(null);
25
35
  const statusRef = useRef("idle");
@@ -33,7 +43,7 @@ const MenuScrollArrow = function MenuScrollArrow2(props) {
33
43
  isPositionedRef.current = isPositioned;
34
44
  dirRef.current = dir;
35
45
  }, [isPositioned, dir]);
36
- const styles = MenuScrollArrowTv({ dir, visible: show });
46
+ const tv = MenuScrollArrowTv({ dir, visible: show, variant });
37
47
  useIsomorphicLayoutEffect(() => {
38
48
  if (isPositioned && scrollRef.current) {
39
49
  lastScrollHeightRef.current = scrollRef.current.scrollHeight;
@@ -121,7 +131,7 @@ const MenuScrollArrow = function MenuScrollArrow2(props) {
121
131
  return /* @__PURE__ */ jsx(
122
132
  "div",
123
133
  {
124
- className: tcx(styles, className),
134
+ className: tcx(tv, className),
125
135
  "data-dir": dir,
126
136
  ref,
127
137
  "aria-hidden": true,
@@ -44,15 +44,15 @@ const MenuSearchEmpty = memo(function MenuSearchEmpty2(props) {
44
44
  },
45
45
  ...rest
46
46
  } = props;
47
- const styles = MenuSearchEmptyTv();
47
+ const tv = MenuSearchEmptyTv();
48
48
  return /* @__PURE__ */ jsxs(
49
49
  "div",
50
50
  {
51
51
  ...rest,
52
- className: tcx(styles.root(), className),
52
+ className: tcx(tv.root(), className),
53
53
  children: [
54
54
  children,
55
- /* @__PURE__ */ jsx("span", { className: styles.text(), children: defaultText.searchEmpty }),
55
+ /* @__PURE__ */ jsx("span", { className: tv.text(), children: defaultText.searchEmpty }),
56
56
  /* @__PURE__ */ jsx(
57
57
  Button,
58
58
  {
@@ -22,7 +22,7 @@ const MenuTrigger = memo(
22
22
  disabled,
23
23
  ...rest
24
24
  } = props;
25
- const styles = MenuTriggerTv({
25
+ const tv = MenuTriggerTv({
26
26
  hasPrefix: !!prefixElement,
27
27
  hasSuffix: !!suffixElement,
28
28
  isEmpty: empty,
@@ -57,7 +57,7 @@ const MenuTrigger = memo(
57
57
  Button,
58
58
  {
59
59
  ref,
60
- className: tcx(styles.root(), className),
60
+ className: tcx(tv.root(), className),
61
61
  variant: "secondary",
62
62
  active,
63
63
  selected,
@@ -65,9 +65,9 @@ const MenuTrigger = memo(
65
65
  size,
66
66
  ...rest,
67
67
  children: [
68
- prefixElement && /* @__PURE__ */ jsx("div", { className: tcx(styles.icon(), prefixClassName), children: prefixElement }),
68
+ prefixElement && /* @__PURE__ */ jsx("div", { className: tcx(tv.icon(), prefixClassName), children: prefixElement }),
69
69
  typeof children === "function" ? children(active ?? false) : children,
70
- suffixElement && /* @__PURE__ */ jsx("div", { className: styles.icon(), children: suffixElement })
70
+ suffixElement && /* @__PURE__ */ jsx("div", { className: tv.icon(), children: suffixElement })
71
71
  ]
72
72
  }
73
73
  );
@@ -9,12 +9,12 @@ export interface MenuContextItemProps extends MenuItemProps {
9
9
  value?: string;
10
10
  }
11
11
  /**
12
- * 通用菜单项组件
12
+ * Generic menu item component
13
13
  *
14
- * Select Dropdown 共用,统一所有交互逻辑:
15
- * - touch 事件处理
16
- * - 选择逻辑
17
- * - 键盘导航
18
- * - 视觉状态管理
14
+ * Shared by Select and Dropdown, unify all interaction logic:
15
+ * - touch event handling
16
+ * - selection logic
17
+ * - keyboard navigation
18
+ * - visual state management
19
19
  */
20
20
  export declare const MenuContextItem: import('react').MemoExoticComponent<import('react').ForwardRefExoticComponent<MenuContextItemProps & import('react').RefAttributes<HTMLButtonElement>>>;
@@ -32,8 +32,8 @@ const MenuContextItem = memo(
32
32
  );
33
33
  }
34
34
  const isActive = useMemo(
35
- () => item.index === menu.activeIndex,
36
- [item.index, menu.activeIndex]
35
+ () => customActive ?? item.index === menu.activeIndex,
36
+ [customActive, item.index, menu.activeIndex]
37
37
  );
38
38
  const handleClick = useEventCallback((event) => {
39
39
  event.stopPropagation();
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment } from "react/jsx-runtime";
2
2
  import { ChevronRightSmall, Check } from "@choiceform/icons-react";
3
3
  import { useListItem, useFloatingTree } from "@floating-ui/react";
4
- import { memo, forwardRef, useContext, useRef, useMemo, useEffect, startTransition, useCallback } from "react";
4
+ import { memo, forwardRef, useContext, useRef, useMemo, startTransition, useCallback } from "react";
5
5
  import { useEventCallback } from "usehooks-ts";
6
6
  import { MenuItem } from "../components/menu-item.js";
7
7
  import { MenuContext } from "./menu-context.js";
@@ -29,22 +29,6 @@ const MenuContextSubTrigger = memo(
29
29
  () => item.index === menu.activeIndex || !!active,
30
30
  [item.index, menu.activeIndex, active]
31
31
  );
32
- useEffect(() => {
33
- const currentRef = buttonRef.current;
34
- if (!currentRef) return;
35
- const handleKeyDown = (e) => {
36
- const currentlyActive = item.index === menu.activeIndex || !!active;
37
- if (currentlyActive && (e.key === "Enter" || e.key === "ArrowRight")) {
38
- e.preventDefault();
39
- e.stopPropagation();
40
- currentRef.click();
41
- }
42
- };
43
- currentRef.addEventListener("keydown", handleKeyDown);
44
- return () => {
45
- currentRef.removeEventListener("keydown", handleKeyDown);
46
- };
47
- }, [item.index, menu.activeIndex, active]);
48
32
  const handleFocus = useEventCallback((event) => {
49
33
  var _a;
50
34
  (_a = props.onFocus) == null ? void 0 : _a.call(props, event);
@@ -111,10 +95,11 @@ const MenuContextSubTrigger = memo(
111
95
  selected,
112
96
  suffixElement,
113
97
  prefixElement: prefixConfig,
98
+ "aria-haspopup": "menu",
114
99
  ...menu.getItemProps({
115
100
  ...rest,
116
- // selection 模式下,如果 selected 属性存在(说明是可选的),则使用 handleClick 关闭菜单
117
- // 否则保持默认行为(打开子菜单)
101
+ // In selection mode, if the selected property exists (indicates it is selectable), use handleClick to close the menu
102
+ // Otherwise keep default behavior (open submenu)
118
103
  onClick: menu.selection && selected !== void 0 ? handleClick : void 0,
119
104
  onMouseUp: menu.selection && selected !== void 0 ? handleMouseUp : void 0,
120
105
  onPointerUp: menu.selection && selected !== void 0 ? handlePointerUp : void 0,
@@ -1,7 +1,7 @@
1
1
  /**
2
- * 通用菜单上下文接口
2
+ * Generic menu context interface
3
3
  *
4
- * 用于 Select Dropdown 组件的统一上下文
4
+ * Used for unified context of Select and Dropdown components
5
5
  */
6
6
  export interface MenuContextType {
7
7
  activeIndex: number | null;
@@ -1,25 +1,25 @@
1
1
  /**
2
- * 菜单基础引用管理 Hook
2
+ * Menu base refs management Hook
3
3
  *
4
- * 统一管理所有菜单组件需要的基础 refs
5
- * - scrollRef: 滚动容器引用
6
- * - elementsRef: 菜单项元素引用数组
7
- * - labelsRef: 菜单项标签引用数组(用于 typeahead
8
- * - selectTimeoutRef: 选择延迟定时器引用
4
+ * Unified management of all base refs needed by menu components:
5
+ * - scrollRef: scroll container reference
6
+ * - elementsRef: menu item element reference array
7
+ * - labelsRef: menu item label reference array (for typeahead)
8
+ * - selectTimeoutRef: select delay timer reference
9
9
  *
10
- * 这些 refs 在多个组件中都有使用,统一管理可以保持一致性
10
+ * These refs are used in multiple components, unified management can maintain consistency
11
11
  */
12
12
  export interface MenuBaseRefsResult {
13
- /** 菜单项元素引用数组 */
13
+ /** Menu item element reference array */
14
14
  elementsRef: React.MutableRefObject<Array<HTMLElement | null>>;
15
- /** 菜单项标签引用数组(用于 typeahead */
15
+ /** Menu item label reference array (for typeahead) */
16
16
  labelsRef: React.MutableRefObject<Array<string | null>>;
17
- /** 滚动容器引用 */
17
+ /** Scroll container reference */
18
18
  scrollRef: React.RefObject<HTMLDivElement>;
19
- /** 选择延迟定时器引用 */
19
+ /** Select delay timer reference */
20
20
  selectTimeoutRef: React.MutableRefObject<ReturnType<typeof setTimeout> | undefined>;
21
21
  }
22
22
  /**
23
- * 创建菜单基础引用
23
+ * Create menu base refs
24
24
  */
25
25
  export declare function useMenuBaseRefs(): MenuBaseRefsResult;