@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
@@ -76,52 +76,43 @@ type AlertDialogAction = {
76
76
  };
77
77
  interface UseAlertDialogReturn {
78
78
  /**
79
- * 显示提示对话框
80
- * @param config 字符串或配置对象
81
- * @returns Promise<void> 用户确认后resolve
79
+ * Show alert dialog
80
+ * @param config String or config object
81
+ * @returns Promise<void> Resolves when user confirms
82
82
  */
83
83
  alert: (config: string | AlertDialogAlertConfig) => Promise<void>;
84
84
  /**
85
- * 关闭所有对话框
85
+ * Close all dialogs
86
86
  */
87
87
  closeAll: () => void;
88
88
  /**
89
- * 显示确认对话框
90
- * @param config 字符串或配置对象
91
- * @returns Promise<boolean> 返回用户选择结果
89
+ * Show confirm dialog
90
+ * @param config String or config object
91
+ * @returns Promise<boolean> Returns user selection result
92
92
  */
93
93
  confirm: (config: string | AlertDialogConfirmConfig) => Promise<boolean>;
94
94
  /**
95
- * 显示自定义对话框
96
- * @param config 自定义配置对象
97
- * @returns Promise<string> 返回用户选择的按钮value
95
+ * Show custom dialog
96
+ * @param config Custom config object
97
+ * @returns Promise<string> Returns selected button value
98
98
  */
99
99
  show: (config: AlertDialogCustomConfig) => Promise<string>;
100
100
  /**
101
- * 当前对话框状态
101
+ * Current dialog state
102
102
  */
103
103
  state: AlertDialogState;
104
104
  }
105
- interface AlertDialogContextType extends UseAlertDialogReturn {
106
- _handleAction: (action: AlertDialogAction) => void;
105
+
106
+ interface AlertDialogProviderProps {
107
+ children: ReactNode;
108
+ className?: string;
109
+ outsidePress?: boolean;
110
+ overlay?: boolean;
111
+ portalId?: string;
107
112
  }
108
- type ConfirmFunction = (config: string | AlertDialogConfirmConfig) => Promise<boolean>;
109
- type AlertFunction = (config: string | AlertDialogAlertConfig) => Promise<void>;
110
- type ShowFunction = (config: AlertDialogCustomConfig) => Promise<string>;
113
+ declare const AlertDialogProvider: react.NamedExoticComponent<AlertDialogProviderProps>;
111
114
 
112
- declare const DEFAULT_CONFIRM_TEXT = "Confirm";
113
- declare const DEFAULT_CANCEL_TEXT = "Cancel";
114
- declare const DEFAULT_ALERT_TEXT = "OK";
115
- declare const DEFAULT_CONFIRM_VARIANT: AlertDialogButtonVariant;
116
- declare const DEFAULT_CANCEL_VARIANT: AlertDialogButtonVariant;
117
- declare const initialState: AlertDialogState;
118
115
  declare const alertDialogReducer: (state: AlertDialogState, action: AlertDialogAction) => AlertDialogState;
119
- declare const normalizeConfirmConfig: (config: string | AlertDialogConfirmConfig) => AlertDialogConfirmConfig;
120
- declare const normalizeAlertConfig: (config: string | AlertDialogAlertConfig) => AlertDialogAlertConfig;
121
- declare const getButtonsForDialog: (type: AlertDialogType, config: AlertDialogConfirmConfig | AlertDialogAlertConfig) => AlertDialogButton[];
122
- declare const processButtonResult: (type: AlertDialogType, buttonValue: string) => AlertDialogResult;
123
- declare const getDialogTitle: (type: AlertDialogType, config: AlertDialogConfirmConfig | AlertDialogAlertConfig) => string;
124
- declare const shouldShowCloseButton: (type: AlertDialogType, config: AlertDialogConfirmConfig | AlertDialogAlertConfig) => boolean;
125
116
 
126
117
  declare const useAlertDialog: () => UseAlertDialogReturn;
127
118
  declare const useAlertDialogProvider: () => {
@@ -133,16 +124,4 @@ declare const useAlertDialogProvider: () => {
133
124
  _handleAction: (action: Parameters<typeof alertDialogReducer>[1]) => void;
134
125
  };
135
126
 
136
- declare const AlertDialogContext: react.Context<AlertDialogContextType | null>;
137
- declare const useAlertDialogContext: () => AlertDialogContextType;
138
-
139
- interface AlertDialogProviderProps {
140
- children: ReactNode;
141
- className?: string;
142
- outsidePress?: boolean;
143
- overlay?: boolean;
144
- portalId?: string;
145
- }
146
- declare const AlertDialogProvider: react.NamedExoticComponent<AlertDialogProviderProps>;
147
-
148
- export { AlertDialog, type AlertDialogAction, type AlertDialogAlertConfig, type AlertDialogBaseConfig, type AlertDialogButton, type AlertDialogButtonVariant, type AlertDialogConfig, type AlertDialogConfirmConfig, AlertDialogContext, type AlertDialogContextType, type AlertDialogCustomConfig, type AlertDialogProps, AlertDialogProvider, type AlertDialogProviderProps, type AlertDialogResult, type AlertDialogState, type AlertDialogType, type AlertDialogVariant, type AlertFunction, type ConfirmFunction, DEFAULT_ALERT_TEXT, DEFAULT_CANCEL_TEXT, DEFAULT_CANCEL_VARIANT, DEFAULT_CONFIRM_TEXT, DEFAULT_CONFIRM_VARIANT, type ShowFunction, type UseAlertDialogReturn, alertDialogReducer, getButtonsForDialog, getDialogTitle, initialState, normalizeAlertConfig, normalizeConfirmConfig, processButtonResult, shouldShowCloseButton, useAlertDialog, useAlertDialogContext, useAlertDialogProvider };
127
+ export { AlertDialog, type AlertDialogProps, AlertDialogProvider, useAlertDialog, useAlertDialogProvider };
@@ -0,0 +1,497 @@
1
+ import { Button } from "../../button/dist/index.js";
2
+ import { Modal } from "../../modal/dist/index.js";
3
+ import { useFloating, FloatingFocusManager, FloatingPortal, FloatingOverlay } from "@floating-ui/react";
4
+ import { memo, createContext, useReducer, useCallback, useEffect, useMemo, useContext } from "react";
5
+ import { useEventCallback } from "usehooks-ts";
6
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
7
+ import { tcv, tcx } from "../../../shared/utils/tcx/tcx.js";
8
+ var AlertDialogContext = createContext(null);
9
+ var useAlertDialogContext = () => {
10
+ const context = useContext(AlertDialogContext);
11
+ if (!context) {
12
+ throw new Error("useAlertDialogContext must be used within an AlertDialogProvider");
13
+ }
14
+ return context;
15
+ };
16
+ var alertDialogTv = tcv({
17
+ slots: {
18
+ overlay: ["fixed inset-0 grid place-items-center z-alert"],
19
+ container: "max-w-none",
20
+ content: "flex flex-col gap-4 px-4 py-2",
21
+ header: "border-b-transparent",
22
+ footer: "flex items-center justify-end gap-2 border-t-transparent"
23
+ },
24
+ variants: {
25
+ variant: {
26
+ default: {},
27
+ danger: {
28
+ container: "border-danger-boundary"
29
+ },
30
+ success: {
31
+ container: "border-success-boundary"
32
+ },
33
+ warning: {
34
+ container: "border-warning-boundary"
35
+ }
36
+ },
37
+ size: {
38
+ small: {
39
+ container: "w-60"
40
+ },
41
+ default: {
42
+ container: "w-80"
43
+ },
44
+ large: {
45
+ container: "w-120"
46
+ }
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ variant: "default"
51
+ }
52
+ });
53
+ var DEFAULT_CONFIRM_TEXT = "Confirm";
54
+ var DEFAULT_CANCEL_TEXT = "Cancel";
55
+ var DEFAULT_ALERT_TEXT = "OK";
56
+ var DEFAULT_CONFIRM_VARIANT = "primary";
57
+ var DEFAULT_CANCEL_VARIANT = "secondary";
58
+ var initialState = {
59
+ isOpen: false,
60
+ type: null,
61
+ config: null,
62
+ resolve: null,
63
+ queue: []
64
+ };
65
+ var alertDialogReducer = (state, action) => {
66
+ switch (action.type) {
67
+ case "SHOW": {
68
+ const { dialogType, config, resolve } = action.payload;
69
+ if (state.isOpen) {
70
+ return {
71
+ ...state,
72
+ queue: [...state.queue, { type: dialogType, config, resolve }]
73
+ };
74
+ }
75
+ return {
76
+ ...state,
77
+ isOpen: true,
78
+ type: dialogType,
79
+ config,
80
+ resolve
81
+ };
82
+ }
83
+ case "HIDE": {
84
+ const { value } = action.payload;
85
+ if (state.resolve) {
86
+ state.resolve(value);
87
+ }
88
+ if (state.queue.length > 0) {
89
+ const next = state.queue[0];
90
+ return {
91
+ ...state,
92
+ type: next.type,
93
+ config: next.config,
94
+ resolve: next.resolve,
95
+ queue: state.queue.slice(1)
96
+ };
97
+ }
98
+ return {
99
+ ...state,
100
+ isOpen: false,
101
+ type: null,
102
+ config: null,
103
+ resolve: null
104
+ };
105
+ }
106
+ case "NEXT": {
107
+ if (state.queue.length > 0) {
108
+ const next = state.queue[0];
109
+ return {
110
+ ...state,
111
+ type: next.type,
112
+ config: next.config,
113
+ resolve: next.resolve,
114
+ queue: state.queue.slice(1)
115
+ };
116
+ }
117
+ return {
118
+ ...state,
119
+ isOpen: false,
120
+ type: null,
121
+ config: null,
122
+ resolve: null
123
+ };
124
+ }
125
+ case "CLEAR_QUEUE": {
126
+ return {
127
+ ...state,
128
+ isOpen: false,
129
+ type: null,
130
+ config: null,
131
+ resolve: null,
132
+ queue: []
133
+ };
134
+ }
135
+ default:
136
+ return state;
137
+ }
138
+ };
139
+ var normalizeConfirmConfig = (config) => {
140
+ if (typeof config === "string") {
141
+ return {
142
+ description: config,
143
+ confirmText: DEFAULT_CONFIRM_TEXT,
144
+ cancelText: DEFAULT_CANCEL_TEXT,
145
+ confirmVariant: DEFAULT_CONFIRM_VARIANT,
146
+ cancelVariant: DEFAULT_CANCEL_VARIANT
147
+ };
148
+ }
149
+ return {
150
+ confirmText: DEFAULT_CONFIRM_TEXT,
151
+ cancelText: DEFAULT_CANCEL_TEXT,
152
+ confirmVariant: DEFAULT_CONFIRM_VARIANT,
153
+ cancelVariant: DEFAULT_CANCEL_VARIANT,
154
+ ...config
155
+ };
156
+ };
157
+ var normalizeAlertConfig = (config) => {
158
+ if (typeof config === "string") {
159
+ return {
160
+ description: config,
161
+ confirmText: DEFAULT_ALERT_TEXT,
162
+ confirmVariant: DEFAULT_CONFIRM_VARIANT
163
+ };
164
+ }
165
+ return {
166
+ confirmText: DEFAULT_ALERT_TEXT,
167
+ confirmVariant: DEFAULT_CONFIRM_VARIANT,
168
+ ...config
169
+ };
170
+ };
171
+ var getButtonsForDialog = (type, config) => {
172
+ if (type === "confirm") {
173
+ const confirmConfig = config;
174
+ return [
175
+ {
176
+ text: confirmConfig.cancelText || DEFAULT_CANCEL_TEXT,
177
+ value: "cancel",
178
+ variant: confirmConfig.cancelVariant || DEFAULT_CANCEL_VARIANT
179
+ },
180
+ {
181
+ text: confirmConfig.confirmText || DEFAULT_CONFIRM_TEXT,
182
+ value: "confirm",
183
+ variant: confirmConfig.confirmVariant || DEFAULT_CONFIRM_VARIANT,
184
+ autoFocus: true
185
+ }
186
+ ];
187
+ }
188
+ if (type === "alert") {
189
+ const alertConfig = config;
190
+ return [
191
+ {
192
+ text: alertConfig.confirmText || DEFAULT_ALERT_TEXT,
193
+ value: "confirm",
194
+ variant: alertConfig.confirmVariant || DEFAULT_CONFIRM_VARIANT,
195
+ autoFocus: true
196
+ }
197
+ ];
198
+ }
199
+ return [];
200
+ };
201
+ var processButtonResult = (type, buttonValue) => {
202
+ if (type === "confirm") {
203
+ return buttonValue === "confirm";
204
+ }
205
+ if (type === "alert") {
206
+ return void 0;
207
+ }
208
+ return buttonValue;
209
+ };
210
+ var getDialogTitle = (type, config) => {
211
+ if (config.title) {
212
+ return config.title;
213
+ }
214
+ switch (type) {
215
+ case "confirm":
216
+ return "Confirm";
217
+ case "alert":
218
+ return "Alert";
219
+ default:
220
+ return "";
221
+ }
222
+ };
223
+ var shouldShowCloseButton = (type, config) => {
224
+ if (config.showCloseButton !== void 0) {
225
+ return config.showCloseButton;
226
+ }
227
+ return type === "confirm";
228
+ };
229
+ var PORTAL_ROOT_ID = "floating-alert-root";
230
+ var AlertDialog = memo(function AlertDialog2(props) {
231
+ const { className, outsidePress, overlay = false, portalId = PORTAL_ROOT_ID, root } = props;
232
+ const { state, _handleAction } = useAlertDialogContext();
233
+ const { isOpen, type, config } = state;
234
+ const { refs, context } = useFloating({
235
+ open: isOpen,
236
+ onOpenChange: (open) => {
237
+ if (!open) {
238
+ _handleAction({ type: "HIDE", payload: { value: false } });
239
+ }
240
+ }
241
+ });
242
+ useEffect(() => {
243
+ if (!isOpen || !config) {
244
+ return;
245
+ }
246
+ const handleKeyDown = (event) => {
247
+ if (event.key === "Escape") {
248
+ const shouldClose = config.closeOnEscape !== false;
249
+ if (shouldClose) {
250
+ event.stopImmediatePropagation();
251
+ event.preventDefault();
252
+ _handleAction({ type: "HIDE", payload: { value: false } });
253
+ }
254
+ }
255
+ if (event.key === "Enter") {
256
+ if (type === "alert") {
257
+ event.preventDefault();
258
+ _handleAction({ type: "HIDE", payload: { value: void 0 } });
259
+ } else if (type === "confirm") {
260
+ event.preventDefault();
261
+ _handleAction({ type: "HIDE", payload: { value: true } });
262
+ }
263
+ }
264
+ };
265
+ window.addEventListener("keydown", handleKeyDown, { capture: true });
266
+ return () => window.removeEventListener("keydown", handleKeyDown, { capture: true });
267
+ }, [isOpen, config, type, _handleAction]);
268
+ const handleOverlayClick = useEventCallback((event) => {
269
+ if (!config) return;
270
+ let shouldClose = false;
271
+ if (outsidePress !== void 0) {
272
+ shouldClose = outsidePress;
273
+ } else {
274
+ shouldClose = config.closeOnOverlayClick !== false;
275
+ }
276
+ if (shouldClose) {
277
+ if (event.target === event.currentTarget) {
278
+ _handleAction({ type: "HIDE", payload: { value: false } });
279
+ }
280
+ }
281
+ });
282
+ const handleButtonClick = useEventCallback((buttonValue) => {
283
+ if (!type) return;
284
+ const result = processButtonResult(type, buttonValue);
285
+ _handleAction({ type: "HIDE", payload: { value: result } });
286
+ });
287
+ const handleCloseClick = useEventCallback(() => {
288
+ _handleAction({ type: "HIDE", payload: { value: false } });
289
+ });
290
+ const buttons = useMemo(() => {
291
+ if (!type || !config) return [];
292
+ if (type === "custom") {
293
+ return config.buttons;
294
+ }
295
+ return getButtonsForDialog(type, config);
296
+ }, [type, config]);
297
+ const title = useMemo(() => {
298
+ if (!type || !config) return "";
299
+ return getDialogTitle(type, config);
300
+ }, [type, config]);
301
+ const showCloseButton = useMemo(() => {
302
+ if (!type || !config) return false;
303
+ return shouldShowCloseButton(type, config);
304
+ }, [type, config]);
305
+ const tv = useMemo(() => {
306
+ const variant = (config == null ? void 0 : config.variant) || "default";
307
+ const size = (config == null ? void 0 : config.size) || "default";
308
+ return alertDialogTv({ variant, size });
309
+ }, [config == null ? void 0 : config.variant, config == null ? void 0 : config.size]);
310
+ const shouldRenderContent = isOpen && config;
311
+ const handleBackdropClose = useEventCallback(() => {
312
+ if (!config) return;
313
+ let shouldClose = false;
314
+ if (outsidePress !== void 0) {
315
+ shouldClose = outsidePress;
316
+ } else {
317
+ shouldClose = config.closeOnOverlayClick !== false;
318
+ }
319
+ if (shouldClose) {
320
+ _handleAction({ type: "HIDE", payload: { value: false } });
321
+ }
322
+ });
323
+ const dialogContent = shouldRenderContent && /* @__PURE__ */ jsx(
324
+ FloatingFocusManager,
325
+ {
326
+ context,
327
+ modal: true,
328
+ children: /* @__PURE__ */ jsxs(
329
+ Modal,
330
+ {
331
+ ref: refs.setFloating,
332
+ className: tcx(tv.container(), className),
333
+ role: "alertdialog",
334
+ "aria-modal": "true",
335
+ "aria-labelledby": title ? "alert-dialog-title" : void 0,
336
+ "aria-describedby": "alert-dialog-description",
337
+ onClick: (e) => e.stopPropagation(),
338
+ children: [
339
+ (title || showCloseButton) && /* @__PURE__ */ jsx(
340
+ Modal.Header,
341
+ {
342
+ className: tv.header(),
343
+ title,
344
+ onClose: showCloseButton ? handleCloseClick : void 0,
345
+ id: "alert-dialog-title"
346
+ }
347
+ ),
348
+ /* @__PURE__ */ jsx(
349
+ Modal.Content,
350
+ {
351
+ id: "alert-dialog-description",
352
+ className: tv.content(),
353
+ children: config.content || config.description
354
+ }
355
+ ),
356
+ buttons.length > 0 && /* @__PURE__ */ jsx(Modal.Footer, { className: tv.footer(), children: buttons.map((button) => /* @__PURE__ */ jsx(
357
+ Button,
358
+ {
359
+ variant: button.variant || "primary",
360
+ disabled: button.disabled,
361
+ onClick: () => handleButtonClick(button.value),
362
+ autoFocus: button.autoFocus,
363
+ children: button.text
364
+ },
365
+ button.value
366
+ )) })
367
+ ]
368
+ }
369
+ )
370
+ }
371
+ );
372
+ return /* @__PURE__ */ jsx(
373
+ FloatingPortal,
374
+ {
375
+ id: portalId,
376
+ root,
377
+ children: overlay ? /* @__PURE__ */ jsxs(Fragment, { children: [
378
+ /* @__PURE__ */ jsx(
379
+ Modal.Backdrop,
380
+ {
381
+ isOpen,
382
+ onClose: handleBackdropClose,
383
+ duration: 200
384
+ }
385
+ ),
386
+ dialogContent && /* @__PURE__ */ jsx(
387
+ FloatingOverlay,
388
+ {
389
+ className: tcx(tv.overlay()),
390
+ lockScroll: true,
391
+ onClick: handleOverlayClick,
392
+ children: dialogContent
393
+ }
394
+ )
395
+ ] }) : dialogContent && /* @__PURE__ */ jsx(
396
+ FloatingOverlay,
397
+ {
398
+ className: tcx(tv.overlay()),
399
+ onClick: handleOverlayClick,
400
+ children: dialogContent
401
+ }
402
+ )
403
+ }
404
+ );
405
+ });
406
+ AlertDialog.displayName = "AlertDialog";
407
+ var useAlertDialogProvider = () => {
408
+ const [state, dispatch] = useReducer(alertDialogReducer, initialState);
409
+ const handleAction = useCallback((action) => {
410
+ dispatch(action);
411
+ }, []);
412
+ const confirm = useCallback(
413
+ (config) => {
414
+ return new Promise((resolve) => {
415
+ const normalizedConfig = normalizeConfirmConfig(config);
416
+ handleAction({
417
+ type: "SHOW",
418
+ payload: {
419
+ dialogType: "confirm",
420
+ config: normalizedConfig,
421
+ resolve
422
+ }
423
+ });
424
+ });
425
+ },
426
+ [handleAction]
427
+ );
428
+ const alert = useCallback(
429
+ (config) => {
430
+ return new Promise((resolve) => {
431
+ const normalizedConfig = normalizeAlertConfig(config);
432
+ handleAction({
433
+ type: "SHOW",
434
+ payload: {
435
+ dialogType: "alert",
436
+ config: normalizedConfig,
437
+ resolve
438
+ }
439
+ });
440
+ });
441
+ },
442
+ [handleAction]
443
+ );
444
+ const show = useCallback(
445
+ (config) => {
446
+ return new Promise((resolve) => {
447
+ handleAction({
448
+ type: "SHOW",
449
+ payload: {
450
+ dialogType: "custom",
451
+ config,
452
+ resolve
453
+ }
454
+ });
455
+ });
456
+ },
457
+ [handleAction]
458
+ );
459
+ const closeAll = useCallback(() => {
460
+ handleAction({ type: "CLEAR_QUEUE" });
461
+ }, [handleAction]);
462
+ return {
463
+ state,
464
+ confirm,
465
+ alert,
466
+ show,
467
+ closeAll,
468
+ _handleAction: handleAction
469
+ };
470
+ };
471
+ var AlertDialogProvider = memo(function AlertDialogProvider2({
472
+ children,
473
+ className,
474
+ overlay = false,
475
+ outsidePress,
476
+ portalId
477
+ }) {
478
+ const alertDialogContext = useAlertDialogProvider();
479
+ return /* @__PURE__ */ jsxs(AlertDialogContext.Provider, { value: alertDialogContext, children: [
480
+ children,
481
+ /* @__PURE__ */ jsx(
482
+ AlertDialog,
483
+ {
484
+ className,
485
+ overlay,
486
+ outsidePress,
487
+ portalId
488
+ }
489
+ )
490
+ ] });
491
+ });
492
+ AlertDialogProvider.displayName = "AlertDialogProvider";
493
+ export {
494
+ AlertDialog,
495
+ AlertDialogProvider,
496
+ useAlertDialogProvider
497
+ };
@@ -175,7 +175,7 @@ const AlertDialog = memo(function AlertDialog2(props) {
175
175
  }
176
176
  )
177
177
  ] }) : dialogContent && /* @__PURE__ */ jsx(
178
- "div",
178
+ FloatingOverlay,
179
179
  {
180
180
  className: tcx(tv.overlay()),
181
181
  onClick: handleOverlayClick,
@@ -2,7 +2,7 @@ import { AlertDialogAlertConfig, AlertDialogConfirmConfig, AlertDialogCustomConf
2
2
  import { alertDialogReducer } from '../utils';
3
3
  export declare const useAlertDialog: () => UseAlertDialogReturn;
4
4
  export declare const useAlertDialogProvider: () => {
5
- state: import('../../..').AlertDialogState;
5
+ state: import('../types').AlertDialogState;
6
6
  confirm: (config: string | AlertDialogConfirmConfig) => Promise<boolean>;
7
7
  alert: (config: string | AlertDialogAlertConfig) => Promise<void>;
8
8
  show: (config: AlertDialogCustomConfig) => Promise<string>;
@@ -1,5 +1,4 @@
1
- export * from './alert-dialog';
2
- export * from './hooks';
3
- export * from './context';
4
- export * from './types';
5
- export * from './utils';
1
+ export { AlertDialog } from './alert-dialog';
2
+ export type { AlertDialogProps } from './alert-dialog';
3
+ export { AlertDialogProvider } from './context';
4
+ export { useAlertDialog, useAlertDialogProvider } from './hooks';
@@ -65,29 +65,29 @@ export type AlertDialogAction = {
65
65
  };
66
66
  export interface UseAlertDialogReturn {
67
67
  /**
68
- * 显示提示对话框
69
- * @param config 字符串或配置对象
70
- * @returns Promise<void> 用户确认后resolve
68
+ * Show alert dialog
69
+ * @param config String or config object
70
+ * @returns Promise<void> Resolves when user confirms
71
71
  */
72
72
  alert: (config: string | AlertDialogAlertConfig) => Promise<void>;
73
73
  /**
74
- * 关闭所有对话框
74
+ * Close all dialogs
75
75
  */
76
76
  closeAll: () => void;
77
77
  /**
78
- * 显示确认对话框
79
- * @param config 字符串或配置对象
80
- * @returns Promise<boolean> 返回用户选择结果
78
+ * Show confirm dialog
79
+ * @param config String or config object
80
+ * @returns Promise<boolean> Returns user selection result
81
81
  */
82
82
  confirm: (config: string | AlertDialogConfirmConfig) => Promise<boolean>;
83
83
  /**
84
- * 显示自定义对话框
85
- * @param config 自定义配置对象
86
- * @returns Promise<string> 返回用户选择的按钮value
84
+ * Show custom dialog
85
+ * @param config Custom config object
86
+ * @returns Promise<string> Returns selected button value
87
87
  */
88
88
  show: (config: AlertDialogCustomConfig) => Promise<string>;
89
89
  /**
90
- * 当前对话框状态
90
+ * Current dialog state
91
91
  */
92
92
  state: AlertDialogState;
93
93
  }
@@ -115,7 +115,7 @@ var Avatar = memo(
115
115
  const [imageLoadedError, setImageLoadedError] = useState(false);
116
116
  const isNumericSize = typeof size === "number";
117
117
  const tvSize = isNumericSize ? "medium" : size ?? "medium";
118
- const styles = avatarTv({
118
+ const tv = avatarTv({
119
119
  size: tvSize,
120
120
  states,
121
121
  isLoading
@@ -127,7 +127,7 @@ var Avatar = memo(
127
127
  "data-slot": "image",
128
128
  src: photo,
129
129
  alt: name,
130
- className: styles.image(),
130
+ className: tv.image(),
131
131
  onLoad: () => {
132
132
  setIsLoading(false);
133
133
  setImageLoadedError(false);
@@ -144,7 +144,7 @@ var Avatar = memo(
144
144
  size
145
145
  }
146
146
  ) : /* @__PURE__ */ jsx(Use, { className: "text-black/40" });
147
- }, [photo, imageLoadedError, name, size, styles]);
147
+ }, [photo, imageLoadedError, name, size, tv]);
148
148
  const textColor = useMemo(() => {
149
149
  return tinycolor(color).isDark() ? "white" : "black";
150
150
  }, [color]);
@@ -158,7 +158,7 @@ var Avatar = memo(
158
158
  {
159
159
  ref,
160
160
  tabIndex: -1,
161
- className: tcx(styles.root(), className),
161
+ className: tcx(tv.root(), className),
162
162
  style: { backgroundColor: color, color: textColor, ...sizeStyle },
163
163
  ...rest,
164
164
  children: children ?? fallback