@neut/ui 0.0.16 → 0.0.17

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 (386) hide show
  1. package/dist/components/bubble/Bubble/Bubble.d.ts +3 -0
  2. package/dist/components/bubble/Bubble/Bubble.js +39 -0
  3. package/dist/components/bubble/Bubble/Bubble.js.map +1 -0
  4. package/dist/components/bubble/Bubble/Bubble.styles.d.ts +7 -0
  5. package/dist/components/bubble/Bubble/Bubble.styles.js +18 -0
  6. package/dist/components/bubble/Bubble/Bubble.styles.js.map +1 -0
  7. package/dist/components/bubble/Bubble/Bubble.types.d.ts +8 -0
  8. package/dist/components/bubble/Bubble/index.d.ts +2 -0
  9. package/dist/components/bubble/BubbleContent/BubbleContent.d.ts +7 -0
  10. package/dist/components/bubble/BubbleContent/BubbleContent.js +17 -0
  11. package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -0
  12. package/dist/components/bubble/BubbleContent/BubbleContent.styles.d.ts +1 -0
  13. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js +6 -0
  14. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js.map +1 -0
  15. package/dist/components/bubble/BubbleContent/BubbleContent.types.d.ts +3 -0
  16. package/dist/components/bubble/BubbleContent/index.d.ts +2 -0
  17. package/dist/components/bubble/BubbleGroup/BubbleGroup.d.ts +3 -0
  18. package/dist/components/bubble/BubbleGroup/BubbleGroup.js +24 -0
  19. package/dist/components/bubble/BubbleGroup/BubbleGroup.js.map +1 -0
  20. package/dist/components/bubble/BubbleGroup/BubbleGroup.types.d.ts +2 -0
  21. package/dist/components/bubble/BubbleGroup/index.d.ts +2 -0
  22. package/dist/components/bubble/BubbleReactions/BubbleReactions.d.ts +6 -0
  23. package/dist/components/bubble/BubbleReactions/BubbleReactions.js +42 -0
  24. package/dist/components/bubble/BubbleReactions/BubbleReactions.js.map +1 -0
  25. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.d.ts +4 -0
  26. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js +22 -0
  27. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js.map +1 -0
  28. package/dist/components/bubble/BubbleReactions/BubbleReactions.types.d.ts +4 -0
  29. package/dist/components/bubble/BubbleReactions/index.d.ts +2 -0
  30. package/dist/components/bubble/index.d.ts +8 -0
  31. package/dist/components/bubble/index.js +5 -0
  32. package/dist/components/drawer/Drawer/Drawer.context.d.ts +3 -0
  33. package/dist/components/drawer/Drawer/Drawer.context.js +12 -0
  34. package/dist/components/drawer/Drawer/Drawer.context.js.map +1 -0
  35. package/dist/components/drawer/Drawer/Drawer.d.ts +7 -0
  36. package/dist/components/drawer/Drawer/Drawer.js +63 -0
  37. package/dist/components/drawer/Drawer/Drawer.js.map +1 -0
  38. package/dist/components/drawer/Drawer/Drawer.types.d.ts +50 -0
  39. package/dist/components/drawer/Drawer/create-change-event-details.d.ts +3 -0
  40. package/dist/components/drawer/Drawer/create-change-event-details.js +25 -0
  41. package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -0
  42. package/dist/components/drawer/Drawer/index.d.ts +3 -0
  43. package/dist/components/drawer/DrawerClose/DrawerClose.d.ts +5 -0
  44. package/dist/components/drawer/DrawerClose/DrawerClose.js +26 -0
  45. package/dist/components/drawer/DrawerClose/DrawerClose.js.map +1 -0
  46. package/dist/components/drawer/DrawerClose/index.d.ts +1 -0
  47. package/dist/components/drawer/DrawerContent/DrawerContent.d.ts +6 -0
  48. package/dist/components/drawer/DrawerContent/DrawerContent.js +103 -0
  49. package/dist/components/drawer/DrawerContent/DrawerContent.js.map +1 -0
  50. package/dist/components/drawer/DrawerContent/DrawerContent.styles.d.ts +10 -0
  51. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js +25 -0
  52. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js.map +1 -0
  53. package/dist/components/drawer/DrawerContent/DrawerContent.types.d.ts +2 -0
  54. package/dist/components/drawer/DrawerContent/index.d.ts +2 -0
  55. package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +11 -0
  56. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +56 -0
  57. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -0
  58. package/dist/components/drawer/DrawerDescription/DrawerDescription.d.ts +2 -0
  59. package/dist/components/drawer/DrawerDescription/DrawerDescription.js +28 -0
  60. package/dist/components/drawer/DrawerDescription/DrawerDescription.js.map +1 -0
  61. package/dist/components/drawer/DrawerDescription/DrawerDescription.types.d.ts +2 -0
  62. package/dist/components/drawer/DrawerDescription/index.d.ts +2 -0
  63. package/dist/components/drawer/DrawerFooter/DrawerFooter.d.ts +2 -0
  64. package/dist/components/drawer/DrawerFooter/DrawerFooter.js +24 -0
  65. package/dist/components/drawer/DrawerFooter/DrawerFooter.js.map +1 -0
  66. package/dist/components/drawer/DrawerFooter/DrawerFooter.types.d.ts +2 -0
  67. package/dist/components/drawer/DrawerFooter/index.d.ts +2 -0
  68. package/dist/components/drawer/DrawerHeader/DrawerHeader.d.ts +2 -0
  69. package/dist/components/drawer/DrawerHeader/DrawerHeader.js +24 -0
  70. package/dist/components/drawer/DrawerHeader/DrawerHeader.js.map +1 -0
  71. package/dist/components/drawer/DrawerHeader/DrawerHeader.types.d.ts +2 -0
  72. package/dist/components/drawer/DrawerHeader/index.d.ts +2 -0
  73. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.d.ts +3 -0
  74. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +43 -0
  75. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -0
  76. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.types.d.ts +2 -0
  77. package/dist/components/drawer/DrawerOverlay/index.d.ts +2 -0
  78. package/dist/components/drawer/DrawerPortal/DrawerPortal.d.ts +2 -0
  79. package/dist/components/drawer/DrawerPortal/DrawerPortal.js +10 -0
  80. package/dist/components/drawer/DrawerPortal/DrawerPortal.js.map +1 -0
  81. package/dist/components/drawer/DrawerPortal/DrawerPortal.types.d.ts +2 -0
  82. package/dist/components/drawer/DrawerPortal/index.d.ts +2 -0
  83. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.d.ts +6 -0
  84. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js +27 -0
  85. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js.map +1 -0
  86. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.types.d.ts +2 -0
  87. package/dist/components/drawer/DrawerSwipeHandle/index.d.ts +2 -0
  88. package/dist/components/drawer/DrawerTitle/DrawerTitle.d.ts +2 -0
  89. package/dist/components/drawer/DrawerTitle/DrawerTitle.js +28 -0
  90. package/dist/components/drawer/DrawerTitle/DrawerTitle.js.map +1 -0
  91. package/dist/components/drawer/DrawerTitle/DrawerTitle.types.d.ts +2 -0
  92. package/dist/components/drawer/DrawerTitle/index.d.ts +2 -0
  93. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.d.ts +5 -0
  94. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js +38 -0
  95. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js.map +1 -0
  96. package/dist/components/drawer/DrawerTrigger/index.d.ts +1 -0
  97. package/dist/components/drawer/index.d.ts +20 -0
  98. package/dist/components/drawer/index.js +13 -0
  99. package/dist/components/hover-card/HoverCard/HoverCard.d.ts +7 -0
  100. package/dist/components/hover-card/HoverCard/HoverCard.js +47 -0
  101. package/dist/components/hover-card/HoverCard/HoverCard.js.map +1 -0
  102. package/dist/components/hover-card/HoverCard/index.d.ts +1 -0
  103. package/dist/components/hover-card/HoverCardContent/HoverCardContent.d.ts +6 -0
  104. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js +74 -0
  105. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js.map +1 -0
  106. package/dist/components/hover-card/HoverCardContent/index.d.ts +1 -0
  107. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.d.ts +16 -0
  108. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js +58 -0
  109. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js.map +1 -0
  110. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.d.ts +4 -0
  111. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js +40 -0
  112. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js.map +1 -0
  113. package/dist/components/hover-card/HoverCardTrigger/index.d.ts +1 -0
  114. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.d.ts +18 -0
  115. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js +34 -0
  116. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js.map +1 -0
  117. package/dist/components/hover-card/hover-card.context.d.ts +3 -0
  118. package/dist/components/hover-card/hover-card.context.js +12 -0
  119. package/dist/components/hover-card/hover-card.context.js.map +1 -0
  120. package/dist/components/hover-card/hover-card.types.d.ts +50 -0
  121. package/dist/components/hover-card/hover-card.utils.d.ts +6 -0
  122. package/dist/components/hover-card/index.d.ts +4 -0
  123. package/dist/components/hover-card/index.js +4 -0
  124. package/dist/components/marker/Marker/Marker.d.ts +7 -0
  125. package/dist/components/marker/Marker/Marker.js +35 -0
  126. package/dist/components/marker/Marker/Marker.js.map +1 -0
  127. package/dist/components/marker/Marker/Marker.styles.d.ts +3 -0
  128. package/dist/components/marker/Marker/Marker.styles.js +14 -0
  129. package/dist/components/marker/Marker/Marker.styles.js.map +1 -0
  130. package/dist/components/marker/Marker/Marker.types.d.ts +5 -0
  131. package/dist/components/marker/Marker/index.d.ts +3 -0
  132. package/dist/components/marker/MarkerContent/MarkerContent.d.ts +2 -0
  133. package/dist/components/marker/MarkerContent/MarkerContent.js +24 -0
  134. package/dist/components/marker/MarkerContent/MarkerContent.js.map +1 -0
  135. package/dist/components/marker/MarkerContent/MarkerContent.types.d.ts +2 -0
  136. package/dist/components/marker/MarkerContent/index.d.ts +2 -0
  137. package/dist/components/marker/MarkerIcon/MarkerIcon.d.ts +3 -0
  138. package/dist/components/marker/MarkerIcon/MarkerIcon.js +25 -0
  139. package/dist/components/marker/MarkerIcon/MarkerIcon.js.map +1 -0
  140. package/dist/components/marker/MarkerIcon/MarkerIcon.types.d.ts +2 -0
  141. package/dist/components/marker/MarkerIcon/index.d.ts +2 -0
  142. package/dist/components/marker/index.d.ts +6 -0
  143. package/dist/components/marker/index.js +5 -0
  144. package/dist/components/message/Message/Message.d.ts +3 -0
  145. package/dist/components/message/Message/Message.js +31 -0
  146. package/dist/components/message/Message/Message.js.map +1 -0
  147. package/dist/components/message/Message/Message.types.d.ts +5 -0
  148. package/dist/components/message/Message/index.d.ts +2 -0
  149. package/dist/components/message/MessageAvatar/MessageAvatar.d.ts +5 -0
  150. package/dist/components/message/MessageAvatar/MessageAvatar.js +24 -0
  151. package/dist/components/message/MessageAvatar/MessageAvatar.js.map +1 -0
  152. package/dist/components/message/MessageAvatar/MessageAvatar.types.d.ts +2 -0
  153. package/dist/components/message/MessageAvatar/index.d.ts +2 -0
  154. package/dist/components/message/MessageContent/MessageContent.d.ts +3 -0
  155. package/dist/components/message/MessageContent/MessageContent.js +24 -0
  156. package/dist/components/message/MessageContent/MessageContent.js.map +1 -0
  157. package/dist/components/message/MessageContent/MessageContent.types.d.ts +2 -0
  158. package/dist/components/message/MessageContent/index.d.ts +2 -0
  159. package/dist/components/message/MessageFooter/MessageFooter.d.ts +3 -0
  160. package/dist/components/message/MessageFooter/MessageFooter.js +24 -0
  161. package/dist/components/message/MessageFooter/MessageFooter.js.map +1 -0
  162. package/dist/components/message/MessageFooter/MessageFooter.types.d.ts +2 -0
  163. package/dist/components/message/MessageFooter/index.d.ts +2 -0
  164. package/dist/components/message/MessageGroup/MessageGroup.d.ts +3 -0
  165. package/dist/components/message/MessageGroup/MessageGroup.js +24 -0
  166. package/dist/components/message/MessageGroup/MessageGroup.js.map +1 -0
  167. package/dist/components/message/MessageGroup/MessageGroup.types.d.ts +2 -0
  168. package/dist/components/message/MessageGroup/index.d.ts +2 -0
  169. package/dist/components/message/MessageHeader/MessageHeader.d.ts +3 -0
  170. package/dist/components/message/MessageHeader/MessageHeader.js +24 -0
  171. package/dist/components/message/MessageHeader/MessageHeader.js.map +1 -0
  172. package/dist/components/message/MessageHeader/MessageHeader.types.d.ts +2 -0
  173. package/dist/components/message/MessageHeader/index.d.ts +2 -0
  174. package/dist/components/message/index.d.ts +12 -0
  175. package/dist/components/message/index.js +7 -0
  176. package/dist/components/message-scroller/MessageScroller/MessageScroller.d.ts +3 -0
  177. package/dist/components/message-scroller/MessageScroller/MessageScroller.js +35 -0
  178. package/dist/components/message-scroller/MessageScroller/MessageScroller.js.map +1 -0
  179. package/dist/components/message-scroller/MessageScroller/index.d.ts +1 -0
  180. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.d.ts +6 -0
  181. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js +90 -0
  182. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js.map +1 -0
  183. package/dist/components/message-scroller/MessageScrollerButton/index.d.ts +1 -0
  184. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.d.ts +6 -0
  185. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js +46 -0
  186. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js.map +1 -0
  187. package/dist/components/message-scroller/MessageScrollerContent/index.d.ts +1 -0
  188. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.d.ts +6 -0
  189. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js +42 -0
  190. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js.map +1 -0
  191. package/dist/components/message-scroller/MessageScrollerItem/index.d.ts +1 -0
  192. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.d.ts +4 -0
  193. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js +37 -0
  194. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map +1 -0
  195. package/dist/components/message-scroller/MessageScrollerProvider/index.d.ts +1 -0
  196. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.d.ts +6 -0
  197. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js +55 -0
  198. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map +1 -0
  199. package/dist/components/message-scroller/MessageScrollerViewport/index.d.ts +1 -0
  200. package/dist/components/message-scroller/index.d.ts +10 -0
  201. package/dist/components/message-scroller/index.js +10 -0
  202. package/dist/components/message-scroller/message-scroller.context.d.ts +3 -0
  203. package/dist/components/message-scroller/message-scroller.context.js +12 -0
  204. package/dist/components/message-scroller/message-scroller.context.js.map +1 -0
  205. package/dist/components/message-scroller/message-scroller.types.d.ts +92 -0
  206. package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
  207. package/dist/components/message-scroller/message-scroller.utils.js +9 -0
  208. package/dist/components/message-scroller/message-scroller.utils.js.map +1 -0
  209. package/dist/components/message-scroller/useMessageScroller.d.ts +6 -0
  210. package/dist/components/message-scroller/useMessageScroller.js +14 -0
  211. package/dist/components/message-scroller/useMessageScroller.js.map +1 -0
  212. package/dist/components/message-scroller/useMessageScrollerEngine.d.ts +15 -0
  213. package/dist/components/message-scroller/useMessageScrollerEngine.js +375 -0
  214. package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -0
  215. package/dist/components/message-scroller/useMessageScrollerScrollable.d.ts +5 -0
  216. package/dist/components/message-scroller/useMessageScrollerScrollable.js +13 -0
  217. package/dist/components/message-scroller/useMessageScrollerScrollable.js.map +1 -0
  218. package/dist/components/message-scroller/useMessageScrollerVisibility.d.ts +7 -0
  219. package/dist/components/message-scroller/useMessageScrollerVisibility.js +17 -0
  220. package/dist/components/message-scroller/useMessageScrollerVisibility.js.map +1 -0
  221. package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +6 -13
  222. package/dist/components/popover/PopoverContent/PopoverContent.utils.js +7 -30
  223. package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
  224. package/dist/components/questionnaire/Questionnaire/Questionnaire.d.ts +3 -0
  225. package/dist/components/questionnaire/Questionnaire/Questionnaire.js +68 -0
  226. package/dist/components/questionnaire/Questionnaire/Questionnaire.js.map +1 -0
  227. package/dist/components/questionnaire/Questionnaire/index.d.ts +1 -0
  228. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.d.ts +3 -0
  229. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js +24 -0
  230. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js.map +1 -0
  231. package/dist/components/questionnaire/QuestionnaireActions/index.d.ts +1 -0
  232. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.d.ts +3 -0
  233. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js +99 -0
  234. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js.map +1 -0
  235. package/dist/components/questionnaire/QuestionnaireChoice/index.d.ts +1 -0
  236. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.d.ts +38 -0
  237. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +67 -0
  238. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -0
  239. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.d.ts +3 -0
  240. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js +28 -0
  241. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js.map +1 -0
  242. package/dist/components/questionnaire/QuestionnaireChoices/index.d.ts +1 -0
  243. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.d.ts +4 -0
  244. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js +30 -0
  245. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js.map +1 -0
  246. package/dist/components/questionnaire/QuestionnaireDescription/index.d.ts +1 -0
  247. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.d.ts +4 -0
  248. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js +43 -0
  249. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js.map +1 -0
  250. package/dist/components/questionnaire/QuestionnaireError/index.d.ts +1 -0
  251. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.d.ts +3 -0
  252. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js +78 -0
  253. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js.map +1 -0
  254. package/dist/components/questionnaire/QuestionnaireInput/index.d.ts +1 -0
  255. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.d.ts +37 -0
  256. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +58 -0
  257. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -0
  258. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.d.ts +3 -0
  259. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +89 -0
  260. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -0
  261. package/dist/components/questionnaire/QuestionnaireItem/index.d.ts +1 -0
  262. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.d.ts +5 -0
  263. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js +104 -0
  264. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js.map +1 -0
  265. package/dist/components/questionnaire/QuestionnaireNavigation/index.d.ts +1 -0
  266. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.d.ts +4 -0
  267. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js +62 -0
  268. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js.map +1 -0
  269. package/dist/components/questionnaire/QuestionnaireProgress/index.d.ts +1 -0
  270. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.d.ts +4 -0
  271. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js +27 -0
  272. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js.map +1 -0
  273. package/dist/components/questionnaire/QuestionnaireTitle/index.d.ts +1 -0
  274. package/dist/components/questionnaire/index.d.ts +12 -0
  275. package/dist/components/questionnaire/index.js +12 -0
  276. package/dist/components/questionnaire/questionnaire.context.d.ts +65 -0
  277. package/dist/components/questionnaire/questionnaire.context.js +18 -0
  278. package/dist/components/questionnaire/questionnaire.context.js.map +1 -0
  279. package/dist/components/questionnaire/questionnaire.types.d.ts +82 -0
  280. package/dist/components/questionnaire/questionnaire.utils.d.ts +24 -0
  281. package/dist/components/questionnaire/questionnaire.utils.js +38 -0
  282. package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
  283. package/dist/components/questionnaire/useQuestionnaireItem.d.ts +34 -0
  284. package/dist/components/questionnaire/useQuestionnaireItem.js +141 -0
  285. package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -0
  286. package/dist/components/questionnaire/useQuestionnaireRoot.d.ts +30 -0
  287. package/dist/components/questionnaire/useQuestionnaireRoot.js +144 -0
  288. package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
  289. package/dist/components/resizable/ResizableHandle/ResizableHandle.d.ts +6 -0
  290. package/dist/components/resizable/ResizableHandle/ResizableHandle.js +92 -0
  291. package/dist/components/resizable/ResizableHandle/ResizableHandle.js.map +1 -0
  292. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.d.ts +3 -0
  293. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js +6 -0
  294. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js.map +1 -0
  295. package/dist/components/resizable/ResizableHandle/index.d.ts +1 -0
  296. package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +17 -0
  297. package/dist/components/resizable/ResizableHandle/useResizableHandle.js +72 -0
  298. package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
  299. package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +6 -0
  300. package/dist/components/resizable/ResizablePanel/ResizablePanel.js +91 -0
  301. package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -0
  302. package/dist/components/resizable/ResizablePanel/index.d.ts +1 -0
  303. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +6 -0
  304. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +66 -0
  305. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -0
  306. package/dist/components/resizable/ResizablePanelGroup/index.d.ts +1 -0
  307. package/dist/components/resizable/index.d.ts +4 -0
  308. package/dist/components/resizable/index.js +4 -0
  309. package/dist/components/resizable/resizable.context.d.ts +38 -0
  310. package/dist/components/resizable/resizable.context.js +12 -0
  311. package/dist/components/resizable/resizable.context.js.map +1 -0
  312. package/dist/components/resizable/resizable.types.d.ts +76 -0
  313. package/dist/components/resizable/resizable.utils.d.ts +16 -0
  314. package/dist/components/resizable/resizable.utils.js +45 -0
  315. package/dist/components/resizable/resizable.utils.js.map +1 -0
  316. package/dist/components/resizable/useResizablePanelGroup.d.ts +22 -0
  317. package/dist/components/resizable/useResizablePanelGroup.js +176 -0
  318. package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
  319. package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +7 -4
  320. package/dist/components/scroll-arrows/ScrollArrowButton.js +28 -19
  321. package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
  322. package/dist/components/scroll-arrows/ScrollArrows.d.ts +5 -2
  323. package/dist/components/scroll-arrows/ScrollArrows.js +6 -0
  324. package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
  325. package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +7 -0
  326. package/dist/components/sheet/Sheet/Sheet.d.ts +6 -0
  327. package/dist/components/sheet/Sheet/Sheet.js +10 -0
  328. package/dist/components/sheet/Sheet/Sheet.js.map +1 -0
  329. package/dist/components/sheet/Sheet/index.d.ts +1 -0
  330. package/dist/components/sheet/SheetClose/SheetClose.d.ts +6 -0
  331. package/dist/components/sheet/SheetClose/SheetClose.js +39 -0
  332. package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -0
  333. package/dist/components/sheet/SheetClose/index.d.ts +1 -0
  334. package/dist/components/sheet/SheetContent/SheetContent.d.ts +6 -0
  335. package/dist/components/sheet/SheetContent/SheetContent.js +48 -0
  336. package/dist/components/sheet/SheetContent/SheetContent.js.map +1 -0
  337. package/dist/components/sheet/SheetContent/SheetContent.styles.d.ts +10 -0
  338. package/dist/components/sheet/SheetContent/SheetContent.styles.js +17 -0
  339. package/dist/components/sheet/SheetContent/SheetContent.styles.js.map +1 -0
  340. package/dist/components/sheet/SheetContent/index.d.ts +1 -0
  341. package/dist/components/sheet/SheetDescription/SheetDescription.d.ts +2 -0
  342. package/dist/components/sheet/SheetDescription/SheetDescription.js +25 -0
  343. package/dist/components/sheet/SheetDescription/SheetDescription.js.map +1 -0
  344. package/dist/components/sheet/SheetDescription/SheetDescription.styles.d.ts +1 -0
  345. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js +6 -0
  346. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js.map +1 -0
  347. package/dist/components/sheet/SheetDescription/index.d.ts +1 -0
  348. package/dist/components/sheet/SheetFooter/SheetFooter.d.ts +2 -0
  349. package/dist/components/sheet/SheetFooter/SheetFooter.js +24 -0
  350. package/dist/components/sheet/SheetFooter/SheetFooter.js.map +1 -0
  351. package/dist/components/sheet/SheetFooter/index.d.ts +1 -0
  352. package/dist/components/sheet/SheetHeader/SheetHeader.d.ts +2 -0
  353. package/dist/components/sheet/SheetHeader/SheetHeader.js +24 -0
  354. package/dist/components/sheet/SheetHeader/SheetHeader.js.map +1 -0
  355. package/dist/components/sheet/SheetHeader/index.d.ts +1 -0
  356. package/dist/components/sheet/SheetTitle/SheetTitle.d.ts +3 -0
  357. package/dist/components/sheet/SheetTitle/SheetTitle.js +25 -0
  358. package/dist/components/sheet/SheetTitle/SheetTitle.js.map +1 -0
  359. package/dist/components/sheet/SheetTitle/SheetTitle.styles.d.ts +1 -0
  360. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js +6 -0
  361. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js.map +1 -0
  362. package/dist/components/sheet/SheetTitle/index.d.ts +1 -0
  363. package/dist/components/sheet/SheetTrigger/SheetTrigger.d.ts +8 -0
  364. package/dist/components/sheet/SheetTrigger/SheetTrigger.js +32 -0
  365. package/dist/components/sheet/SheetTrigger/SheetTrigger.js.map +1 -0
  366. package/dist/components/sheet/SheetTrigger/index.d.ts +1 -0
  367. package/dist/components/sheet/index.d.ts +9 -0
  368. package/dist/components/sheet/index.js +9 -0
  369. package/dist/components/sheet/sheet.types.d.ts +19 -0
  370. package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
  371. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +5 -49
  372. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +10 -39
  373. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
  374. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +6 -5
  375. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  376. package/dist/hooks/useScrollEdges.d.ts +3 -0
  377. package/dist/hooks/useScrollEdges.js +18 -16
  378. package/dist/hooks/useScrollEdges.js.map +1 -1
  379. package/dist/index.d.ts +9 -0
  380. package/dist/index.js +253 -193
  381. package/dist/lib/positioner/index.d.ts +1 -0
  382. package/dist/lib/positioner/utils/floating.d.ts +25 -0
  383. package/dist/lib/positioner/utils/floating.js +42 -0
  384. package/dist/lib/positioner/utils/floating.js.map +1 -0
  385. package/dist/ui.css +1 -1
  386. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageScrollerButton.js","names":["Show","createEffect","mergeProps","splitProps","ValidComponent","Dynamic","ArrowDown","clsx","useMessageScrollerContext","MessageScrollerButtonProps","MessageScrollerButton","props","ctx","merged","direction","const","behavior","ScrollBehavior","variant","size","component","type","local","rest","active","scrollableEnd","scrollableStart","handleClick","event","MouseEvent","currentTarget","Element","handler","onClick","data","Array","isArray","defaultPrevented","HTMLElement","blur","scrollToStart","scrollToEnd","_$createComponent","_$mergeProps","ref","el","inert","data-direction","data-variant","data-size","data-active","tabIndex","_$memo","aria-label","class","classList","children","when","fallback","_el$","_tmpl$","_$insert","mergeProps","_$createComponent","_$mergeProps","_$memo","mergeProps$1","_tmpl$","MessageScrollerButton","ctx","useMessageScrollerContext","merged","props","local","rest","splitProps","active","createComponent","Dynamic","mergeProps","memo","handler","event","\"class\"","clsx","Show","ArrowDown","_el$","insert","children"],"sources":["../../../../src/components/message-scroller/MessageScrollerButton/MessageScrollerButton.tsx"],"sourcesContent":["import {\n Show,\n createEffect,\n mergeProps,\n splitProps,\n type ValidComponent,\n} from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { ArrowDown } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useMessageScrollerContext } from \"../message-scroller.context\";\nimport type { MessageScrollerButtonProps } from \"../message-scroller.types\";\n\n/**\n * 滚动控件:滚到会话的开始/结束;该方向没有内容时置为 inert 并移出 tab 序列。\n * 默认渲染箭头图标 + sr-only 文案,传入 children 可自定义内容(如 \"Jump to latest\")。\n */\nexport function MessageScrollerButton(props: MessageScrollerButtonProps) {\n const ctx = useMessageScrollerContext(\"MessageScrollerButton\");\n const merged = mergeProps(\n {\n direction: \"end\" as const,\n behavior: \"smooth\" as ScrollBehavior,\n variant: \"secondary\",\n size: \"icon-sm\",\n component: \"button\" as const,\n type: \"button\" as const,\n },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"direction\",\n \"behavior\",\n \"variant\",\n \"size\",\n \"children\",\n \"component\",\n \"onClick\",\n \"type\",\n \"tabIndex\",\n ]);\n\n const active = () =>\n local.direction === \"end\" ? ctx.scrollableEnd() : ctx.scrollableStart();\n\n const handleClick = (event: MouseEvent & { currentTarget: Element }) => {\n if (!active()) return;\n // Solid 的 EventHandlerUnion 可能是 [handler, data] 形式,需手动分发\n const handler = local.onClick as\n | ((event: MouseEvent) => void)\n | [(data: unknown, event: MouseEvent) => void, unknown]\n | undefined;\n if (Array.isArray(handler)) handler[0](handler[1], event);\n else handler?.(event);\n if (event.defaultPrevented) return;\n (event.currentTarget as HTMLElement).blur();\n if (local.direction === \"start\") {\n ctx.scrollToStart({ behavior: local.behavior });\n } else {\n ctx.scrollToEnd({ behavior: local.behavior });\n }\n };\n\n return (\n <Dynamic\n {...rest}\n component={local.component as ValidComponent}\n ref={(el: HTMLElement) => {\n createEffect(() => {\n el.inert = !active();\n });\n }}\n type={local.type}\n data-slot=\"message-scroller-button\"\n data-direction={local.direction}\n data-variant={local.variant}\n data-size={local.size}\n data-active={active() ? \"true\" : \"false\"}\n tabIndex={active() ? (local.tabIndex ?? 0) : -1}\n aria-label={\n local.direction === \"end\" ? \"Scroll to end\" : \"Scroll to start\"\n }\n onClick={handleClick}\n class={clsx(\n \"absolute left-1/2 z-10 inline-flex size-8 -translate-x-1/2 items-center justify-center rounded-full border border-border bg-background text-foreground shadow-md transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground\",\n \"data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)]\",\n \"data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)]\",\n \"data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full\",\n \"data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full\",\n \"rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180\",\n local.class,\n )}\n classList={local.classList}\n >\n <Show\n when={local.children}\n fallback={\n <>\n <ArrowDown class=\"size-4\" />\n <span class=\"sr-only\">\n {local.direction === \"end\" ? \"Scroll to end\" : \"Scroll to start\"}\n </span>\n </>\n }\n >\n {(children) => children()}\n </Show>\n </Dynamic>\n );\n}\n"],"mappings":";;;;;;;AAiBA,SAAgBU,EAAsBC,GAAmC;CACvE,IAAMC,IAAMJ,EAA0B,uBAAuB,GACvDK,IAASX,EACb;EACEY,WAAW;EACXE,UAAU;EACVE,SAAS;EACTC,MAAM;EACNC,WAAW;EACXC,MAAM;CACR,GACAV,CACF,GACM,CAACW,GAAOC,KAAQpB,EAAWU,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKW,UACJF,EAAMR,cAAc,QAAQF,EAAIa,cAAc,IAAIb,EAAIc,gBAAgB;CAoBxE,OAAAgB,EACGrC,GAAOsC,EACFpB,GAAI;EAAA,IACRH,YAAS;GAAA,OAAEE,EAAMF;EAA2B;EAAAwB,MACtCC,MAAoB;GACxB5C,QAAmB;IACjB4C,EAAGC,QAAQ,CAACtB,EAAO;GACrB,CAAC;EACH;EAAC,IACDH,OAAI;GAAA,OAAEC,EAAMD;EAAI;EAAA,aAAA;EAAA,IAAA,mBAAA;GAAA,OAEAC,EAAMR;EAAS;EAAA,IAAA,iBAAA;GAAA,OACjBQ,EAAMJ;EAAO;EAAA,IAAA,cAAA;GAAA,OAChBI,EAAMH;EAAI;EAAA,IAAA,gBAAA;GAAA,OACRK,EAAO,IAAI,SAAS;EAAO;EAAA,IACxC2B,WAAQ;GAAA,OAAEC,QAAA,CAAA,CAAA5B,EAAO,CAAC,CAAA,CAAA,IAAIF,EAAM6B,YAAY,IAAK;EAAE;EAAA,IAAA,eAAA;GAAA,OAE7C7B,EAAMR,cAAc,QAAQ,kBAAkB;EAAiB;EAEjEmB,UArCiBL,MAAmD;GACtE,IAAI,CAACJ,EAAO,GAAG;GAEf,IAAMQ,IAAUV,EAAMW;GAMtB,AAFIE,MAAMC,QAAQJ,CAAO,IAAGA,EAAQ,EAAE,CAACA,EAAQ,IAAIJ,CAAK,IACnDI,IAAUJ,CAAK,GAChBA,GAAMS,qBACV6C,EAAOpD,cAA8BS,KAAK,GACtCjB,EAAMR,cAAc,UACtBF,EAAI4B,cAAc,EAAExB,UAAUM,EAAMN,SAAS,CAAC,IAE9CJ,EAAI6B,YAAY,EAAEzB,UAAUM,EAAMN,SAAS,CAAC;EAEhD;EAqBwB,IAAAmE,QAAA;GAAA,OACb5E,EACL,2PACA,6LACA,sJACA,2FACA,6FACA,iEACAe,EAAMgC,KACR;EAAC;EAAA,IACDC,YAAS;GAAA,OAAEjC,EAAMiC;EAAS;EAAA,IAAAC,WAAA;GAAA,OAAAd,EAEzB1C,GAAI;IAAA,IACHyD,OAAI;KAAA,OAAEnC,EAAMkC;IAAQ;IAAA,IACpBE,WAAQ;KAAA,OAAA,CAAAhB,EAEHpC,GAAS,EAAA6E,OAAA,SAAA,CAAA,UAAA;MAAA,IAAAxB,IAAAC,EAAA;MAEwD,OAFxDC,EAAAF,SAEPrC,EAAMR,cAAc,QAAQ,kBAAkB,iBAAiB,GAAA6C;KAAA,EAAA,CAAA,CAAA;IAAA;IAAAH,WAKpEA,MAAaA,EAAS;GAAC,CAAA;EAAA;CAAA,CAAA,CAAA;AAIjC"}
@@ -0,0 +1 @@
1
+ export { MessageScrollerButton } from './MessageScrollerButton';
@@ -0,0 +1,6 @@
1
+ import { MessageScrollerContentProps } from '../message-scroller.types';
2
+ /**
3
+ * 会话容器:承载各行,并作为新消息的 live region。
4
+ * 末尾的内部 spacer 由引擎按需设置高度,让靠近结尾的锚定行也能滚到顶部。
5
+ */
6
+ export declare function MessageScrollerContent(props: MessageScrollerContentProps): import('solid-js').JSX.Element;
@@ -0,0 +1,46 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useMessageScrollerContext as t } from "../message-scroller.context.js";
3
+ import { className as n, effect as r, insert as i, mergeProps as a, spread as o, template as s, use as c } from "solid-js/web";
4
+ import { onCleanup as l, splitProps as u } from "solid-js";
5
+ //#region src/components/message-scroller/MessageScrollerContent/MessageScrollerContent.tsx
6
+ var d = /*#__PURE__*/ s("<div><div aria-hidden=true data-message-scroller-spacer hidden>");
7
+ function f(s) {
8
+ let f = t("MessageScrollerContent"), [p, m] = u(s, [
9
+ "class",
10
+ "classList",
11
+ "aria-busy",
12
+ "spacerClassName",
13
+ "role",
14
+ "aria-relevant",
15
+ "children"
16
+ ]);
17
+ return (() => {
18
+ var t = d(), s = t.firstChild;
19
+ return c((e) => {
20
+ f.setContent(e), l(() => f.setContent(void 0));
21
+ }, t), o(t, a(m, {
22
+ "data-slot": "message-scroller-content",
23
+ get role() {
24
+ return p.role ?? "log";
25
+ },
26
+ get "aria-relevant"() {
27
+ return p["aria-relevant"] ?? "additions";
28
+ },
29
+ get "aria-busy"() {
30
+ return p["aria-busy"];
31
+ },
32
+ get class() {
33
+ return e("flex h-max min-h-full flex-col gap-6", p.class);
34
+ },
35
+ get classList() {
36
+ return p.classList;
37
+ }
38
+ }), !1, !0), i(t, () => p.children, s), c((e) => {
39
+ f.setSpacer(e), l(() => f.setSpacer(void 0));
40
+ }, s), r(() => n(s, p.spacerClassName)), t;
41
+ })();
42
+ }
43
+ //#endregion
44
+ export { f as MessageScrollerContent };
45
+
46
+ //# sourceMappingURL=MessageScrollerContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageScrollerContent.js","names":["onCleanup","splitProps","clsx","useMessageScrollerContext","MessageScrollerContentProps","MessageScrollerContent","props","ctx","local","rest","_el$","_tmpl$","_el$2","firstChild","_$use","el","setContent","undefined","_$spread","_$mergeProps","role","aria-relevant","aria-busy","class","classList","_$insert","children","setSpacer","_$effect","_$className","spacerClassName","_$mergeProps","_$className","_tmpl$","MessageScrollerContent","ctx","useMessageScrollerContext","local","rest","splitProps","props","_el$","_el$2","use","el","onCleanup","spread","mergeProps","\"class\"","clsx","insert","effect","className"],"sources":["../../../../src/components/message-scroller/MessageScrollerContent/MessageScrollerContent.tsx"],"sourcesContent":["import { onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useMessageScrollerContext } from \"../message-scroller.context\";\nimport type { MessageScrollerContentProps } from \"../message-scroller.types\";\n\n/**\n * 会话容器:承载各行,并作为新消息的 live region。\n * 末尾的内部 spacer 由引擎按需设置高度,让靠近结尾的锚定行也能滚到顶部。\n */\nexport function MessageScrollerContent(props: MessageScrollerContentProps) {\n const ctx = useMessageScrollerContext(\"MessageScrollerContent\");\n const [local, rest] = splitProps(props, [\n \"class\",\n \"classList\",\n \"aria-busy\",\n \"spacerClassName\",\n \"role\",\n \"aria-relevant\",\n \"children\",\n ]);\n\n return (\n <div\n {...rest}\n ref={(el) => {\n ctx.setContent(el);\n onCleanup(() => ctx.setContent(undefined));\n }}\n data-slot=\"message-scroller-content\"\n role={local.role ?? \"log\"}\n aria-relevant={local[\"aria-relevant\"] ?? \"additions\"}\n aria-busy={local[\"aria-busy\"]}\n class={clsx(\"flex h-max min-h-full flex-col gap-6\", local.class)}\n classList={local.classList}\n >\n {local.children}\n <div\n ref={(el) => {\n ctx.setSpacer(el);\n onCleanup(() => ctx.setSpacer(undefined));\n }}\n aria-hidden=\"true\"\n data-message-scroller-spacer=\"\"\n hidden\n class={local.spacerClassName}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgBK,EAAuBC,GAAoC;CACzE,IAAMC,IAAMJ,EAA0B,wBAAwB,GACxD,CAACK,GAAOC,KAAQR,EAAWK,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,cAAA;EAAA,IAAAI,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAuBkC,OAvBlCC,GAGUC,MAAO;GAEXf,AADAO,EAAIS,WAAWD,CAAE,GACjBf,QAAgBO,EAAIS,WAAWC,KAAAA,CAAS,CAAC;EAC3C,GAACP,CAAA,GAAAQ,EAAAR,GAAAS,EAJGV,GAAI;GAAA,aAKE;GAA0B,IACpCW,OAAI;IAAA,OAAEZ,EAAMY,QAAQ;GAAK;GAAA,IAAA,kBAAA;IAAA,OACVZ,EAAM,oBAAoB;GAAW;GAAA,IAAA,cAAA;IAAA,OACzCA,EAAM;GAAY;GAAA,IAAAwC,QAAA;IAAA,OACtB9C,EAAK,wCAAwCM,EAAMe,KAAK;GAAC;GAAA,IAChEC,YAAS;IAAA,OAAEhB,EAAMgB;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAf,SAEzBF,EAAMkB,UAAQd,CAAA,GAAAE,GAEPC,MAAO;GAEXf,AADAO,EAAIoB,UAAUZ,CAAE,GAChBf,QAAgBO,EAAIoB,UAAUV,KAAAA,CAAS,CAAC;EAC1C,GAACL,CAAA,GAAAgB,QAAAC,EAAAjB,GAIMJ,EAAMsB,eAAe,CAAA,GAAApB;CAAA,EAAA,CAAA;AAIpC"}
@@ -0,0 +1 @@
1
+ export { MessageScrollerContent } from './MessageScrollerContent';
@@ -0,0 +1,6 @@
1
+ import { MessageScrollerItemProps } from '../message-scroller.types';
2
+ /**
3
+ * 一行(消息 / marker / 分隔等)。必须包裹 content 的每个直接子节点,
4
+ * 引擎据此测量、锚定、保位与跳转。
5
+ */
6
+ export declare function MessageScrollerItem(props: MessageScrollerItemProps): import('solid-js').JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useMessageScrollerContext as t } from "../message-scroller.context.js";
3
+ import { mergeProps as n, spread as r, template as i, use as a } from "solid-js/web";
4
+ import { onCleanup as o, splitProps as s } from "solid-js";
5
+ //#region src/components/message-scroller/MessageScrollerItem/MessageScrollerItem.tsx
6
+ var c = /*#__PURE__*/ i("<div>");
7
+ function l(i) {
8
+ let l = t("MessageScrollerItem"), [u, d] = s(i, [
9
+ "class",
10
+ "classList",
11
+ "messageId",
12
+ "scrollAnchor"
13
+ ]);
14
+ return (() => {
15
+ var t = c();
16
+ return a((e) => {
17
+ let t = l.registerItem({
18
+ id: u.messageId,
19
+ element: e
20
+ });
21
+ o(t);
22
+ }, t), r(t, n(d, {
23
+ "data-slot": "message-scroller-item",
24
+ get "data-message-id"() {
25
+ return u.messageId;
26
+ },
27
+ get "data-scroll-anchor"() {
28
+ return u.scrollAnchor === !0 ? "true" : "false";
29
+ },
30
+ get class() {
31
+ return e("min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]", u.class);
32
+ },
33
+ get classList() {
34
+ return u.classList;
35
+ }
36
+ }), !1, !1), t;
37
+ })();
38
+ }
39
+ //#endregion
40
+ export { l as MessageScrollerItem };
41
+
42
+ //# sourceMappingURL=MessageScrollerItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageScrollerItem.js","names":["onCleanup","splitProps","clsx","useMessageScrollerContext","MessageScrollerItemProps","MessageScrollerItem","props","ctx","local","rest","_el$","_tmpl$","_$use","el","unregister","registerItem","id","messageId","element","_$spread","_$mergeProps","data-message-id","data-scroll-anchor","scrollAnchor","class","classList","_$mergeProps","_tmpl$","MessageScrollerItem","ctx","useMessageScrollerContext","local","rest","splitProps","props","_el$","use","unregister","el","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/message-scroller/MessageScrollerItem/MessageScrollerItem.tsx"],"sourcesContent":["import { onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useMessageScrollerContext } from \"../message-scroller.context\";\nimport type { MessageScrollerItemProps } from \"../message-scroller.types\";\n\n/**\n * 一行(消息 / marker / 分隔等)。必须包裹 content 的每个直接子节点,\n * 引擎据此测量、锚定、保位与跳转。\n */\nexport function MessageScrollerItem(props: MessageScrollerItemProps) {\n const ctx = useMessageScrollerContext(\"MessageScrollerItem\");\n const [local, rest] = splitProps(props, [\n \"class\",\n \"classList\",\n \"messageId\",\n \"scrollAnchor\",\n ]);\n\n return (\n <div\n {...rest}\n ref={(el) => {\n const unregister = ctx.registerItem({\n id: local.messageId,\n element: el,\n });\n onCleanup(unregister);\n }}\n data-slot=\"message-scroller-item\"\n data-message-id={local.messageId}\n data-scroll-anchor={local.scrollAnchor === true ? \"true\" : \"false\"}\n class={clsx(\n \"min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]\",\n local.class,\n )}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;;;AASA,SAAgBK,EAAoBC,GAAiC;CACnE,IAAMC,IAAMJ,EAA0B,qBAAqB,GACrD,CAACK,GAAOC,KAAQR,EAAWK,GAAO;EACtC;EACA;EACA;EACA;CAAc,CACf;CAED,cAAA;EAAA,IAAAI,IAAAC,EAAA;EAiB8B,OAjB9BC,GAGUC,MAAO;GACX,IAAMC,IAAaP,EAAIQ,aAAa;IAClCC,IAAIR,EAAMS;IACVC,SAASL;GACX,CAAC;GACDb,EAAUc,CAAU;EACtB,GAACJ,CAAA,GAAAS,EAAAT,GAAAU,EAPGX,GAAI;GAAA,aAQE;GAAuB,IAAA,oBAAA;IAAA,OAChBD,EAAMS;GAAS;GAAA,IAAA,uBAAA;IAAA,OACZT,EAAMe,iBAAiB,KAAO,SAAS;GAAO;GAAA,IAAAkB,QAAA;IAAA,OAC3DvC,EACL,kFACAM,EAAMgB,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAEjB,EAAMiB;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAf;CAAA,EAAA,CAAA;AAGhC"}
@@ -0,0 +1 @@
1
+ export { MessageScrollerItem } from './MessageScrollerItem';
@@ -0,0 +1,4 @@
1
+ import { JSX } from 'solid-js';
2
+ import { MessageScrollerProviderProps } from '../message-scroller.types';
3
+ /** 滚动状态机根:不渲染 DOM,提供 context 与滚动行为 */
4
+ export declare function MessageScrollerProvider(props: MessageScrollerProviderProps): JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { MessageScrollerContext as e } from "../message-scroller.context.js";
2
+ import { useMessageScrollerEngine as t } from "../useMessageScrollerEngine.js";
3
+ import { createComponent as n } from "solid-js/web";
4
+ import { mergeProps as r, splitProps as i } from "solid-js";
5
+ //#region src/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.tsx
6
+ function a(a) {
7
+ let o = r({
8
+ autoScroll: !1,
9
+ defaultScrollPosition: "end",
10
+ scrollEdgeThreshold: 8,
11
+ scrollMargin: 0,
12
+ scrollPreviousItemPeek: 64
13
+ }, a), [s] = i(o, [
14
+ "autoScroll",
15
+ "defaultScrollPosition",
16
+ "scrollEdgeThreshold",
17
+ "scrollMargin",
18
+ "scrollPreviousItemPeek",
19
+ "children"
20
+ ]), c = t(() => ({
21
+ autoScroll: s.autoScroll,
22
+ defaultScrollPosition: s.defaultScrollPosition,
23
+ scrollEdgeThreshold: s.scrollEdgeThreshold,
24
+ scrollMargin: s.scrollMargin,
25
+ scrollPreviousItemPeek: s.scrollPreviousItemPeek
26
+ }));
27
+ return n(e.Provider, {
28
+ value: c,
29
+ get children() {
30
+ return s.children;
31
+ }
32
+ });
33
+ }
34
+ //#endregion
35
+ export { a as MessageScrollerProvider };
36
+
37
+ //# sourceMappingURL=MessageScrollerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageScrollerProvider.js","names":["mergeProps","splitProps","JSX","MessageScrollerContext","useMessageScrollerEngine","MessageScrollerProviderProps","MessageScrollerProvider","props","Element","merged","autoScroll","defaultScrollPosition","const","scrollEdgeThreshold","scrollMargin","scrollPreviousItemPeek","local","ctx","_$createComponent","Provider","value","children","mergeProps","_$createComponent","mergeProps$1","MessageScrollerProvider","merged","props","local","splitProps","ctx","useMessageScrollerEngine","createComponent","MessageScrollerContext"],"sources":["../../../../src/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.tsx"],"sourcesContent":["import { mergeProps, splitProps, type JSX } from \"solid-js\";\nimport { MessageScrollerContext } from \"../message-scroller.context\";\nimport { useMessageScrollerEngine } from \"../useMessageScrollerEngine\";\nimport type { MessageScrollerProviderProps } from \"../message-scroller.types\";\n\n/** 滚动状态机根:不渲染 DOM,提供 context 与滚动行为 */\nexport function MessageScrollerProvider(\n props: MessageScrollerProviderProps,\n): JSX.Element {\n const merged = mergeProps(\n {\n autoScroll: false,\n defaultScrollPosition: \"end\" as const,\n scrollEdgeThreshold: 8,\n scrollMargin: 0,\n scrollPreviousItemPeek: 64,\n },\n props,\n );\n const [local] = splitProps(merged, [\n \"autoScroll\",\n \"defaultScrollPosition\",\n \"scrollEdgeThreshold\",\n \"scrollMargin\",\n \"scrollPreviousItemPeek\",\n \"children\",\n ]);\n\n const ctx = useMessageScrollerEngine(() => ({\n autoScroll: local.autoScroll,\n defaultScrollPosition: local.defaultScrollPosition,\n scrollEdgeThreshold: local.scrollEdgeThreshold,\n scrollMargin: local.scrollMargin,\n scrollPreviousItemPeek: local.scrollPreviousItemPeek,\n }));\n\n return (\n <MessageScrollerContext.Provider value={ctx}>\n {local.children}\n </MessageScrollerContext.Provider>\n );\n}\n"],"mappings":";;;;;AAMA,SAAgBM,EACdC,GACa;CACb,IAAME,IAAST,EACb;EACEU,YAAY;EACZC,uBAAuB;EACvBE,qBAAqB;EACrBC,cAAc;EACdC,wBAAwB;CAC1B,GACAR,CACF,GACM,CAACS,KAASf,EAAWQ,GAAQ;EACjC;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKQ,IAAMb,SAAgC;EAC1CM,YAAYM,EAAMN;EAClBC,uBAAuBK,EAAML;EAC7BE,qBAAqBG,EAAMH;EAC3BC,cAAcE,EAAMF;EACpBC,wBAAwBC,EAAMD;CAChC,EAAE;CAEF,OAAAG,EACGf,EAAuBgB,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OACxCL,EAAMK;EAAQ;CAAA,CAAA;AAGrB"}
@@ -0,0 +1 @@
1
+ export { MessageScrollerProvider } from './MessageScrollerProvider';
@@ -0,0 +1,6 @@
1
+ import { MessageScrollerViewportProps } from '../message-scroller.types';
2
+ /**
3
+ * 可滚动元素:接收原生 scroll,维护可滚动状态;上方插入历史时保持可见行。
4
+ * 默认是键盘可达的、有标签的滚动区域。转发 `ref` 便于外部(如虚拟化)拿到滚动元素。
5
+ */
6
+ export declare function MessageScrollerViewport(props: MessageScrollerViewportProps): import('solid-js').JSX.Element;
@@ -0,0 +1,55 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { mergeRefs as t } from "../../../utils/ref.js";
3
+ import { useMessageScrollerContext as n } from "../message-scroller.context.js";
4
+ import { scrollableData as r } from "../message-scroller.utils.js";
5
+ import { mergeProps as i, spread as a, template as o, use as s } from "solid-js/web";
6
+ import { createEffect as c, onCleanup as l, splitProps as u } from "solid-js";
7
+ //#region src/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.tsx
8
+ var d = /*#__PURE__*/ o("<div>");
9
+ function f(o) {
10
+ let f = n("MessageScrollerViewport"), [p, m] = u(o, [
11
+ "class",
12
+ "classList",
13
+ "aria-label",
14
+ "preserveScrollOnPrepend",
15
+ "ref",
16
+ "role",
17
+ "tabIndex"
18
+ ]);
19
+ return c(() => f.setPreserveScrollOnPrepend(p.preserveScrollOnPrepend ?? !0)), (() => {
20
+ var n = d(), o = t((e) => {
21
+ f.setViewport(e), l(() => f.setViewport(void 0));
22
+ }, p.ref);
23
+ return typeof o == "function" && s(o, n), a(n, i(m, {
24
+ "data-slot": "message-scroller-viewport",
25
+ get role() {
26
+ return p.role ?? "region";
27
+ },
28
+ get "aria-label"() {
29
+ return p["aria-label"] ?? "Messages";
30
+ },
31
+ get tabindex() {
32
+ return p.tabIndex ?? 0;
33
+ },
34
+ get "data-scrollable"() {
35
+ return r(f.scrollableStart, f.scrollableEnd);
36
+ },
37
+ get "data-pending-scroll"() {
38
+ return f.pendingScroll() ? "" : void 0;
39
+ },
40
+ get "data-autoscrolling"() {
41
+ return f.autoscrolling() ? "" : void 0;
42
+ },
43
+ get class() {
44
+ return e("size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content outline-none focus-visible:ring-2 focus-visible:ring-ring/50", "data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent", "data-pending-scroll:invisible", p.class);
45
+ },
46
+ get classList() {
47
+ return p.classList;
48
+ }
49
+ }), !1, !1), n;
50
+ })();
51
+ }
52
+ //#endregion
53
+ export { f as MessageScrollerViewport };
54
+
55
+ //# sourceMappingURL=MessageScrollerViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageScrollerViewport.js","names":["createEffect","onCleanup","splitProps","clsx","mergeRefs","useMessageScrollerContext","scrollableData","MessageScrollerViewportProps","MessageScrollerViewport","props","ctx","local","rest","setPreserveScrollOnPrepend","preserveScrollOnPrepend","_el$","_tmpl$","_ref$","el","setViewport","HTMLElement","undefined","ref","Element","_$use","_$spread","_$mergeProps","role","aria-label","tabindex","tabIndex","data-scrollable","scrollableStart","scrollableEnd","data-pending-scroll","pendingScroll","data-autoscrolling","autoscrolling","class","classList","_$use","_$mergeProps","_tmpl$","MessageScrollerViewport","ctx","useMessageScrollerContext","local","rest","splitProps","props","createEffect","_el$","_ref$","mergeRefs","el","onCleanup","use","spread","mergeProps","scrollableData","\"class\"","clsx"],"sources":["../../../../src/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.tsx"],"sourcesContent":["import { createEffect, onCleanup, splitProps } from \"solid-js\";\nimport { clsx, mergeRefs } from \"~/utils\";\nimport { useMessageScrollerContext } from \"../message-scroller.context\";\nimport { scrollableData } from \"../message-scroller.utils\";\nimport type { MessageScrollerViewportProps } from \"../message-scroller.types\";\n\n/**\n * 可滚动元素:接收原生 scroll,维护可滚动状态;上方插入历史时保持可见行。\n * 默认是键盘可达的、有标签的滚动区域。转发 `ref` 便于外部(如虚拟化)拿到滚动元素。\n */\nexport function MessageScrollerViewport(props: MessageScrollerViewportProps) {\n const ctx = useMessageScrollerContext(\"MessageScrollerViewport\");\n const [local, rest] = splitProps(props, [\n \"class\",\n \"classList\",\n \"aria-label\",\n \"preserveScrollOnPrepend\",\n \"ref\",\n \"role\",\n \"tabIndex\",\n ]);\n\n createEffect(() =>\n ctx.setPreserveScrollOnPrepend(local.preserveScrollOnPrepend ?? true),\n );\n\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: role 允许被调用方覆盖(对齐上游),静态分析无法确定\n <div\n {...rest}\n ref={mergeRefs(\n (el) => {\n ctx.setViewport(el as HTMLElement);\n onCleanup(() => ctx.setViewport(undefined));\n },\n local.ref as ((el: Element) => void) | undefined,\n )}\n data-slot=\"message-scroller-viewport\"\n role={local.role ?? \"region\"}\n aria-label={local[\"aria-label\"] ?? \"Messages\"}\n tabindex={local.tabIndex ?? 0}\n data-scrollable={scrollableData(ctx.scrollableStart, ctx.scrollableEnd)}\n data-pending-scroll={ctx.pendingScroll() ? \"\" : undefined}\n data-autoscrolling={ctx.autoscrolling() ? \"\" : undefined}\n class={clsx(\n \"size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n \"data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent\",\n \"data-pending-scroll:invisible\",\n local.class,\n )}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;;;;;AAUA,SAAgBQ,EAAwBC,GAAqC;CAC3E,IAAMC,IAAML,EAA0B,yBAAyB,GACzD,CAACM,GAAOC,KAAQV,EAAWO,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAMD,OAJAT,QACEU,EAAIG,2BAA2BF,EAAMG,2BAA2B,EAAI,CACtE,UAGE;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAGOb,GACFc,MAAO;GAENjB,AADAS,EAAIS,YAAYD,CAAiB,GACjCjB,QAAgBS,EAAIS,YAAYE,KAAAA,CAAS,CAAC;EAC5C,GACAV,EAAMW,GACR;EAc0B,OAdzB,OAAAL,KAAA,cAAAO,EAAAP,GAAAF,CAAA,GAAAU,EAAAV,GAAAW,EAPGd,GAAI;GAAA,aAQE;GAA2B,IACrCe,OAAI;IAAA,OAAEhB,EAAMgB,QAAQ;GAAQ;GAAA,IAAA,eAAA;IAAA,OAChBhB,EAAM,iBAAiB;GAAU;GAAA,IAC7CkB,WAAQ;IAAA,OAAElB,EAAMmB,YAAY;GAAC;GAAA,IAAA,oBAAA;IAAA,OACZxB,EAAeI,EAAIsB,iBAAiBtB,EAAIuB,aAAa;GAAC;GAAA,IAAA,wBAAA;IAAA,OAClDvB,EAAIyB,cAAc,IAAI,KAAKd,KAAAA;GAAS;GAAA,IAAA,uBAAA;IAAA,OACrCX,EAAI2B,cAAc,IAAI,KAAKhB,KAAAA;GAAS;GAAA,IAAAuC,QAAA;IAAA,OACjDzD,EACL,kMACA,iGACA,iCACAQ,EAAM2B,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAE5B,EAAM4B;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAxB;CAAA,EAAA,CAAA;AAGhC"}
@@ -0,0 +1 @@
1
+ export { MessageScrollerViewport } from './MessageScrollerViewport';
@@ -0,0 +1,10 @@
1
+ export { MessageScrollerProvider } from './MessageScrollerProvider';
2
+ export { MessageScroller } from './MessageScroller';
3
+ export { MessageScrollerViewport } from './MessageScrollerViewport';
4
+ export { MessageScrollerContent } from './MessageScrollerContent';
5
+ export { MessageScrollerItem } from './MessageScrollerItem';
6
+ export { MessageScrollerButton } from './MessageScrollerButton';
7
+ export { useMessageScroller } from './useMessageScroller';
8
+ export { useMessageScrollerScrollable } from './useMessageScrollerScrollable';
9
+ export { useMessageScrollerVisibility } from './useMessageScrollerVisibility';
10
+ export type { MessageScrollerProviderProps, MessageScrollerDefaultScrollPosition, MessageScrollerButtonDirection, MessageScrollerScrollAlign, MessageScrollerScrollOptions, MessageScrollerScrollable, MessageScrollerVisibilityState, MessageScrollerItemEntry, MessageScrollerContextValue, MessageScrollerVisibilityValue, MessageScrollerProps, MessageScrollerViewportProps, MessageScrollerContentProps, MessageScrollerItemProps, MessageScrollerButtonProps, } from './message-scroller.types';
@@ -0,0 +1,10 @@
1
+ import { MessageScrollerProvider as e } from "./MessageScrollerProvider/MessageScrollerProvider.js";
2
+ import { MessageScroller as t } from "./MessageScroller/MessageScroller.js";
3
+ import { MessageScrollerViewport as n } from "./MessageScrollerViewport/MessageScrollerViewport.js";
4
+ import { MessageScrollerContent as r } from "./MessageScrollerContent/MessageScrollerContent.js";
5
+ import { MessageScrollerItem as i } from "./MessageScrollerItem/MessageScrollerItem.js";
6
+ import { MessageScrollerButton as a } from "./MessageScrollerButton/MessageScrollerButton.js";
7
+ import { useMessageScroller as o } from "./useMessageScroller.js";
8
+ import { useMessageScrollerScrollable as s } from "./useMessageScrollerScrollable.js";
9
+ import { useMessageScrollerVisibility as c } from "./useMessageScrollerVisibility.js";
10
+ export { t as MessageScroller, a as MessageScrollerButton, r as MessageScrollerContent, i as MessageScrollerItem, e as MessageScrollerProvider, n as MessageScrollerViewport, o as useMessageScroller, s as useMessageScrollerScrollable, c as useMessageScrollerVisibility };
@@ -0,0 +1,3 @@
1
+ import { MessageScrollerContextValue } from './message-scroller.types';
2
+ export declare const MessageScrollerContext: import('solid-js').Context<MessageScrollerContextValue | undefined>;
3
+ export declare function useMessageScrollerContext(component: string): MessageScrollerContextValue;
@@ -0,0 +1,12 @@
1
+ import { createContext as e, useContext as t } from "solid-js";
2
+ //#region src/components/message-scroller/message-scroller.context.ts
3
+ var n = e();
4
+ function r(e) {
5
+ let r = t(n);
6
+ if (!r) throw Error(`<${e}> 必须渲染在 <MessageScrollerProvider> 内部`);
7
+ return r;
8
+ }
9
+ //#endregion
10
+ export { n as MessageScrollerContext, r as useMessageScrollerContext };
11
+
12
+ //# sourceMappingURL=message-scroller.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-scroller.context.js","names":["MessageScrollerContext","createContext","useMessageScrollerContext","ctx","useContext","component"],"sources":["../../../src/components/message-scroller/message-scroller.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { MessageScrollerContextValue } from \"./message-scroller.types\";\n\nexport const MessageScrollerContext =\n createContext<MessageScrollerContextValue>();\n\nexport function useMessageScrollerContext(\n component: string,\n): MessageScrollerContextValue {\n const ctx = useContext(MessageScrollerContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <MessageScrollerProvider> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAGA,IAAaA,IACXC,EAA2C;AAE7C,SAAgBC,EACd,GAC6B;CAC7B,IAAMC,IAAMC,EAAWJ,CAAsB;CAC7C,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,qCAAqC;CAErE,OAAOF;AACT"}
@@ -0,0 +1,92 @@
1
+ import { Accessor, ParentProps } from 'solid-js';
2
+ import { BaseProps, PolymorphicProps } from '../../types';
3
+ export type MessageScrollerDefaultScrollPosition = "start" | "end" | "last-anchor";
4
+ export type MessageScrollerButtonDirection = "start" | "end";
5
+ export type MessageScrollerScrollAlign = "start" | "center" | "end" | "nearest";
6
+ /** 命令选项:对齐方式、原生滚动行为、本次命令覆盖的 scrollMargin */
7
+ export interface MessageScrollerScrollOptions {
8
+ align?: MessageScrollerScrollAlign;
9
+ behavior?: ScrollBehavior;
10
+ scrollMargin?: number;
11
+ }
12
+ /** useMessageScrollerScrollable 的取值形态 */
13
+ export interface MessageScrollerScrollable {
14
+ start: boolean;
15
+ end: boolean;
16
+ }
17
+ /** useMessageScrollerVisibility 的取值形态 */
18
+ export interface MessageScrollerVisibilityState {
19
+ currentAnchorId: string | null;
20
+ visibleMessageIds: string[];
21
+ }
22
+ export interface MessageScrollerProviderProps extends ParentProps {
23
+ /** 读者位于实时边缘时,内容增长自动跟随(滚动离开后自动让位),默认 false */
24
+ autoScroll?: boolean;
25
+ /** 打开时停在何处,默认 "end";"last-anchor" 无锚点或该回合放得下时回退到 "end" */
26
+ defaultScrollPosition?: MessageScrollerDefaultScrollPosition;
27
+ /** 距任一边缘多少像素仍算「在起点/终点」,默认 8 */
28
+ scrollEdgeThreshold?: number;
29
+ /** 新回合锚定时在 scrollMargin 之外额外保留的上一项高度(像素),默认 64 */
30
+ scrollPreviousItemPeek?: number;
31
+ /** scrollToMessage / 可见性 / 程序化目标的对齐边距(像素),默认 0 */
32
+ scrollMargin?: number;
33
+ }
34
+ export interface MessageScrollerItemEntry {
35
+ id?: string;
36
+ element: HTMLElement;
37
+ }
38
+ export interface MessageScrollerContextValue {
39
+ viewport: Accessor<HTMLElement | undefined>;
40
+ setViewport: (el: HTMLElement | undefined) => void;
41
+ content: Accessor<HTMLElement | undefined>;
42
+ setContent: (el: HTMLElement | undefined) => void;
43
+ setSpacer: (el: HTMLElement | undefined) => void;
44
+ registerItem: (entry: MessageScrollerItemEntry) => () => void;
45
+ /** 上方插入历史时是否保持可见行(Viewport 的 prop) */
46
+ preserveScrollOnPrepend: Accessor<boolean>;
47
+ setPreserveScrollOnPrepend: (value: boolean) => void;
48
+ /** 是否还能向上/向下滚动(供滚动控件与自定义 UI) */
49
+ scrollableStart: Accessor<boolean>;
50
+ scrollableEnd: Accessor<boolean>;
51
+ /** 正在执行「滚动到最新消息」的程序化滚动(对应 data-autoscrolling) */
52
+ autoscrolling: Accessor<boolean>;
53
+ /** 初始定位尚未应用(对应 data-pending-scroll) */
54
+ pendingScroll: Accessor<boolean>;
55
+ scrollToStart: (options?: MessageScrollerScrollOptions) => boolean;
56
+ scrollToEnd: (options?: MessageScrollerScrollOptions) => boolean;
57
+ /** 目标未挂载且可排队(会话为空)时返回 true,其余失败返回 false */
58
+ scrollToMessage: (messageId: string, options?: MessageScrollerScrollOptions) => boolean;
59
+ /** 当前锚定的回合 id(阅读行之上最后一个 scrollAnchor),无则 null */
60
+ currentAnchorId: Accessor<string | null>;
61
+ /** 当前可见的消息 id(文档顺序) */
62
+ visibleMessageIds: Accessor<string[]>;
63
+ /** 订阅可见性;首个订阅者开启 IntersectionObserver,最后一个移除时断开 */
64
+ subscribeVisibility: () => () => void;
65
+ options: Accessor<Required<Omit<MessageScrollerProviderProps, "children">>>;
66
+ }
67
+ export interface MessageScrollerVisibilityValue {
68
+ currentAnchorId: Accessor<string | null>;
69
+ visibleMessageIds: Accessor<string[]>;
70
+ }
71
+ export type MessageScrollerProps = PolymorphicProps<"div", BaseProps, false>;
72
+ export type MessageScrollerViewportProps = PolymorphicProps<"div", BaseProps & {
73
+ "aria-label"?: string;
74
+ /** 上方插入历史时保持可见行,默认 true */
75
+ preserveScrollOnPrepend?: boolean;
76
+ }, false>;
77
+ export type MessageScrollerContentProps = PolymorphicProps<"div", BaseProps & {
78
+ "aria-busy"?: boolean;
79
+ /** 内部 spacer 的类名(仅为锚定行腾出可视空间,aria-hidden) */
80
+ spacerClassName?: string;
81
+ }, false>;
82
+ export type MessageScrollerItemProps = PolymorphicProps<"div", BaseProps & {
83
+ messageId?: string;
84
+ scrollAnchor?: boolean;
85
+ }, false>;
86
+ export type MessageScrollerButtonProps = PolymorphicProps<"button", BaseProps & {
87
+ direction?: MessageScrollerButtonDirection;
88
+ /** 原生滚动行为,默认 "smooth" */
89
+ behavior?: ScrollBehavior;
90
+ variant?: string;
91
+ size?: string;
92
+ }>;
@@ -0,0 +1,7 @@
1
+ import { Accessor } from 'solid-js';
2
+ /**
3
+ * `data-scrollable` 的取值:可向哪个边缘滚动,空格分隔的 token 列表
4
+ * (`"start"` / `"end"` / `"start end"`),都不可滚时为 `undefined`
5
+ * (可用 `[data-scrollable~="end"]` 查询单个方向,缺失表示内容放得下)。
6
+ */
7
+ export declare function scrollableData(start: Accessor<boolean>, end: Accessor<boolean>): string | undefined;
@@ -0,0 +1,9 @@
1
+ //#region src/components/message-scroller/message-scroller.utils.ts
2
+ function e(e, t) {
3
+ let n = [];
4
+ return e() && n.push("start"), t() && n.push("end"), n.length > 0 ? n.join(" ") : void 0;
5
+ }
6
+ //#endregion
7
+ export { e as scrollableData };
8
+
9
+ //# sourceMappingURL=message-scroller.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-scroller.utils.js","names":["scrollableData","tokens","start","end"],"sources":["../../../src/components/message-scroller/message-scroller.utils.ts"],"sourcesContent":["import type { Accessor } from \"solid-js\";\n\n/**\n * `data-scrollable` 的取值:可向哪个边缘滚动,空格分隔的 token 列表\n * (`\"start\"` / `\"end\"` / `\"start end\"`),都不可滚时为 `undefined`\n * (可用 `[data-scrollable~=\"end\"]` 查询单个方向,缺失表示内容放得下)。\n */\nexport function scrollableData(\n start: Accessor<boolean>,\n end: Accessor<boolean>,\n): string | undefined {\n const tokens: string[] = [];\n if (start()) tokens.push(\"start\");\n if (end()) tokens.push(\"end\");\n return tokens.length > 0 ? tokens.join(\" \") : undefined;\n}\n"],"mappings":";AAOA,SAAgBA,EACd,GACA,GACoB;CACpB,IAAMC,IAAmB,CAAC;CAG1B,OAFIC,EAAM,KAAGD,EAAO,KAAK,OAAO,GAC5BE,EAAI,KAAGF,EAAO,KAAK,KAAK,GACrBA,EAAO,SAAS,IAAIA,EAAO,KAAK,GAAG,IAAI,KAAA;AAChD"}
@@ -0,0 +1,6 @@
1
+ /** 在 Provider 内部任意位置驱动滚动(含 MessageScroller 框架之外的自定义控件) */
2
+ export declare function useMessageScroller(): {
3
+ scrollToStart: (options?: import('./message-scroller.types').MessageScrollerScrollOptions) => boolean;
4
+ scrollToEnd: (options?: import('./message-scroller.types').MessageScrollerScrollOptions) => boolean;
5
+ scrollToMessage: (messageId: string, options?: import('./message-scroller.types').MessageScrollerScrollOptions) => boolean;
6
+ };
@@ -0,0 +1,14 @@
1
+ import { useMessageScrollerContext as e } from "./message-scroller.context.js";
2
+ //#region src/components/message-scroller/useMessageScroller.ts
3
+ function t() {
4
+ let t = e("useMessageScroller");
5
+ return {
6
+ scrollToStart: t.scrollToStart,
7
+ scrollToEnd: t.scrollToEnd,
8
+ scrollToMessage: t.scrollToMessage
9
+ };
10
+ }
11
+ //#endregion
12
+ export { t as useMessageScroller };
13
+
14
+ //# sourceMappingURL=useMessageScroller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageScroller.js","names":["useMessageScroller","ctx","useMessageScrollerContext"],"sources":["../../../src/components/message-scroller/useMessageScroller.ts"],"sourcesContent":["import { useMessageScrollerContext } from \"./message-scroller.context\";\n\n/** 在 Provider 内部任意位置驱动滚动(含 MessageScroller 框架之外的自定义控件) */\nexport function useMessageScroller() {\n const ctx = useMessageScrollerContext(\"useMessageScroller\");\n return {\n scrollToStart: ctx.scrollToStart,\n scrollToEnd: ctx.scrollToEnd,\n scrollToMessage: ctx.scrollToMessage,\n };\n}\n"],"mappings":";;AAGA,SAAgBA,IAAqB;CACnC,IAAMC,IAAMC,EAA0B,oBAAoB;CAC1D,OAAO;EACL,eAAeD,EAAI;EACnB,aAAaA,EAAI;EACjB,iBAAiBA,EAAI;CACvB;AACF"}
@@ -0,0 +1,15 @@
1
+ import { MessageScrollerContextValue, MessageScrollerProviderProps } from './message-scroller.types';
2
+ /**
3
+ * MessageScroller 的滚动引擎(headless,行为对齐 `@shadcn/react`):
4
+ * - 滚动状态(能否向上/下)由 content 的**非 spacer** 内容底部计算,spacer 不计入;
5
+ * - `autoScroll` 只在模式为 `following-bottom` 时跟随;滚轮/触摸/键盘滚动与显式跳转
6
+ * 都会立刻让位(`free-scrolling`);
7
+ * - 新回合锚定:新增 scrollAnchor 行时用 `scrollToElement(keepPreviousPeek)` 将其放到
8
+ * 顶部并保留上一项;同时把该行记为 `streamingTurn`,回复生长时原地重锚定;
9
+ * - `scrollToElement` 会按需设置尾部 spacer,让目标行即使靠近会话末尾也能滚到顶部;
10
+ * - `defaultScrollPosition`:首次非空渲染定位一次;`last-anchor` 无锚点或放得下时回退 end;
11
+ * - `preserveScrollOnPrepend`:记录首个可见行及其视口位置,上方插入历史后按差值补偿;
12
+ * - 可见性:IntersectionObserver 按需订阅(rootMargin 用 scrollMargin + peek),无 IO 时退化为
13
+ * 逐帧测量;`currentAnchorId` 是阅读行之上最后一个锚点。
14
+ */
15
+ export declare function useMessageScrollerEngine(options: () => Required<Omit<MessageScrollerProviderProps, "children">>): MessageScrollerContextValue;