@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.
- package/dist/components/bubble/Bubble/Bubble.d.ts +3 -0
- package/dist/components/bubble/Bubble/Bubble.js +39 -0
- package/dist/components/bubble/Bubble/Bubble.js.map +1 -0
- package/dist/components/bubble/Bubble/Bubble.styles.d.ts +7 -0
- package/dist/components/bubble/Bubble/Bubble.styles.js +18 -0
- package/dist/components/bubble/Bubble/Bubble.styles.js.map +1 -0
- package/dist/components/bubble/Bubble/Bubble.types.d.ts +8 -0
- package/dist/components/bubble/Bubble/index.d.ts +2 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.d.ts +7 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.js +17 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.d.ts +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.js +6 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.js.map +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.types.d.ts +3 -0
- package/dist/components/bubble/BubbleContent/index.d.ts +2 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.d.ts +3 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.js +24 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.js.map +1 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.types.d.ts +2 -0
- package/dist/components/bubble/BubbleGroup/index.d.ts +2 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.d.ts +6 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.js +42 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.js.map +1 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.d.ts +4 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js +22 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js.map +1 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.types.d.ts +4 -0
- package/dist/components/bubble/BubbleReactions/index.d.ts +2 -0
- package/dist/components/bubble/index.d.ts +8 -0
- package/dist/components/bubble/index.js +5 -0
- package/dist/components/drawer/Drawer/Drawer.context.d.ts +3 -0
- package/dist/components/drawer/Drawer/Drawer.context.js +12 -0
- package/dist/components/drawer/Drawer/Drawer.context.js.map +1 -0
- package/dist/components/drawer/Drawer/Drawer.d.ts +7 -0
- package/dist/components/drawer/Drawer/Drawer.js +63 -0
- package/dist/components/drawer/Drawer/Drawer.js.map +1 -0
- package/dist/components/drawer/Drawer/Drawer.types.d.ts +50 -0
- package/dist/components/drawer/Drawer/create-change-event-details.d.ts +3 -0
- package/dist/components/drawer/Drawer/create-change-event-details.js +25 -0
- package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -0
- package/dist/components/drawer/Drawer/index.d.ts +3 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.d.ts +5 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.js +26 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.js.map +1 -0
- package/dist/components/drawer/DrawerClose/index.d.ts +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.d.ts +6 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.js +103 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.js.map +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.d.ts +10 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.js +25 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.js.map +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.types.d.ts +2 -0
- package/dist/components/drawer/DrawerContent/index.d.ts +2 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +11 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +56 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.d.ts +2 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.js +28 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.js.map +1 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.types.d.ts +2 -0
- package/dist/components/drawer/DrawerDescription/index.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.js +24 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.js.map +1 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.types.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/index.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.js +24 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.js.map +1 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.types.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/index.d.ts +2 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.d.ts +3 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +43 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.types.d.ts +2 -0
- package/dist/components/drawer/DrawerOverlay/index.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.js +10 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.js.map +1 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.types.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/index.d.ts +2 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.d.ts +6 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js +27 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js.map +1 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.types.d.ts +2 -0
- package/dist/components/drawer/DrawerSwipeHandle/index.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.js +28 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.js.map +1 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.types.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/index.d.ts +2 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.d.ts +5 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js +38 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js.map +1 -0
- package/dist/components/drawer/DrawerTrigger/index.d.ts +1 -0
- package/dist/components/drawer/index.d.ts +20 -0
- package/dist/components/drawer/index.js +13 -0
- package/dist/components/hover-card/HoverCard/HoverCard.d.ts +7 -0
- package/dist/components/hover-card/HoverCard/HoverCard.js +47 -0
- package/dist/components/hover-card/HoverCard/HoverCard.js.map +1 -0
- package/dist/components/hover-card/HoverCard/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.d.ts +6 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.js +74 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.js.map +1 -0
- package/dist/components/hover-card/HoverCardContent/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.d.ts +16 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js +58 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js.map +1 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.d.ts +4 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js +40 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js.map +1 -0
- package/dist/components/hover-card/HoverCardTrigger/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.d.ts +18 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js +34 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js.map +1 -0
- package/dist/components/hover-card/hover-card.context.d.ts +3 -0
- package/dist/components/hover-card/hover-card.context.js +12 -0
- package/dist/components/hover-card/hover-card.context.js.map +1 -0
- package/dist/components/hover-card/hover-card.types.d.ts +50 -0
- package/dist/components/hover-card/hover-card.utils.d.ts +6 -0
- package/dist/components/hover-card/index.d.ts +4 -0
- package/dist/components/hover-card/index.js +4 -0
- package/dist/components/marker/Marker/Marker.d.ts +7 -0
- package/dist/components/marker/Marker/Marker.js +35 -0
- package/dist/components/marker/Marker/Marker.js.map +1 -0
- package/dist/components/marker/Marker/Marker.styles.d.ts +3 -0
- package/dist/components/marker/Marker/Marker.styles.js +14 -0
- package/dist/components/marker/Marker/Marker.styles.js.map +1 -0
- package/dist/components/marker/Marker/Marker.types.d.ts +5 -0
- package/dist/components/marker/Marker/index.d.ts +3 -0
- package/dist/components/marker/MarkerContent/MarkerContent.d.ts +2 -0
- package/dist/components/marker/MarkerContent/MarkerContent.js +24 -0
- package/dist/components/marker/MarkerContent/MarkerContent.js.map +1 -0
- package/dist/components/marker/MarkerContent/MarkerContent.types.d.ts +2 -0
- package/dist/components/marker/MarkerContent/index.d.ts +2 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.d.ts +3 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.js +25 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.js.map +1 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.types.d.ts +2 -0
- package/dist/components/marker/MarkerIcon/index.d.ts +2 -0
- package/dist/components/marker/index.d.ts +6 -0
- package/dist/components/marker/index.js +5 -0
- package/dist/components/message/Message/Message.d.ts +3 -0
- package/dist/components/message/Message/Message.js +31 -0
- package/dist/components/message/Message/Message.js.map +1 -0
- package/dist/components/message/Message/Message.types.d.ts +5 -0
- package/dist/components/message/Message/index.d.ts +2 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.d.ts +5 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.js +24 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.js.map +1 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.types.d.ts +2 -0
- package/dist/components/message/MessageAvatar/index.d.ts +2 -0
- package/dist/components/message/MessageContent/MessageContent.d.ts +3 -0
- package/dist/components/message/MessageContent/MessageContent.js +24 -0
- package/dist/components/message/MessageContent/MessageContent.js.map +1 -0
- package/dist/components/message/MessageContent/MessageContent.types.d.ts +2 -0
- package/dist/components/message/MessageContent/index.d.ts +2 -0
- package/dist/components/message/MessageFooter/MessageFooter.d.ts +3 -0
- package/dist/components/message/MessageFooter/MessageFooter.js +24 -0
- package/dist/components/message/MessageFooter/MessageFooter.js.map +1 -0
- package/dist/components/message/MessageFooter/MessageFooter.types.d.ts +2 -0
- package/dist/components/message/MessageFooter/index.d.ts +2 -0
- package/dist/components/message/MessageGroup/MessageGroup.d.ts +3 -0
- package/dist/components/message/MessageGroup/MessageGroup.js +24 -0
- package/dist/components/message/MessageGroup/MessageGroup.js.map +1 -0
- package/dist/components/message/MessageGroup/MessageGroup.types.d.ts +2 -0
- package/dist/components/message/MessageGroup/index.d.ts +2 -0
- package/dist/components/message/MessageHeader/MessageHeader.d.ts +3 -0
- package/dist/components/message/MessageHeader/MessageHeader.js +24 -0
- package/dist/components/message/MessageHeader/MessageHeader.js.map +1 -0
- package/dist/components/message/MessageHeader/MessageHeader.types.d.ts +2 -0
- package/dist/components/message/MessageHeader/index.d.ts +2 -0
- package/dist/components/message/index.d.ts +12 -0
- package/dist/components/message/index.js +7 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.d.ts +3 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.js +35 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.js.map +1 -0
- package/dist/components/message-scroller/MessageScroller/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js +90 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerButton/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js +46 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerContent/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js +42 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerItem/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.d.ts +4 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js +37 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerProvider/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js +55 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerViewport/index.d.ts +1 -0
- package/dist/components/message-scroller/index.d.ts +10 -0
- package/dist/components/message-scroller/index.js +10 -0
- package/dist/components/message-scroller/message-scroller.context.d.ts +3 -0
- package/dist/components/message-scroller/message-scroller.context.js +12 -0
- package/dist/components/message-scroller/message-scroller.context.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.types.d.ts +92 -0
- package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
- package/dist/components/message-scroller/message-scroller.utils.js +9 -0
- package/dist/components/message-scroller/message-scroller.utils.js.map +1 -0
- package/dist/components/message-scroller/useMessageScroller.d.ts +6 -0
- package/dist/components/message-scroller/useMessageScroller.js +14 -0
- package/dist/components/message-scroller/useMessageScroller.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.d.ts +15 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.js +375 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.d.ts +5 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.js +13 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.d.ts +7 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.js +17 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.js.map +1 -0
- package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +6 -13
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js +7 -30
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
- package/dist/components/questionnaire/Questionnaire/Questionnaire.d.ts +3 -0
- package/dist/components/questionnaire/Questionnaire/Questionnaire.js +68 -0
- package/dist/components/questionnaire/Questionnaire/Questionnaire.js.map +1 -0
- package/dist/components/questionnaire/Questionnaire/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js +24 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireActions/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js +99 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.d.ts +38 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +67 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js +28 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoices/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js +30 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireDescription/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js +43 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireError/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js +78 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.d.ts +37 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +58 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +89 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireItem/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.d.ts +5 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js +104 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js +62 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireProgress/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js +27 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireTitle/index.d.ts +1 -0
- package/dist/components/questionnaire/index.d.ts +12 -0
- package/dist/components/questionnaire/index.js +12 -0
- package/dist/components/questionnaire/questionnaire.context.d.ts +65 -0
- package/dist/components/questionnaire/questionnaire.context.js +18 -0
- package/dist/components/questionnaire/questionnaire.context.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.types.d.ts +82 -0
- package/dist/components/questionnaire/questionnaire.utils.d.ts +24 -0
- package/dist/components/questionnaire/questionnaire.utils.js +38 -0
- package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
- package/dist/components/questionnaire/useQuestionnaireItem.d.ts +34 -0
- package/dist/components/questionnaire/useQuestionnaireItem.js +141 -0
- package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.d.ts +30 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.js +144 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.d.ts +6 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.js +92 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.d.ts +3 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js +6 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/index.d.ts +1 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +17 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js +72 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +6 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.js +91 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -0
- package/dist/components/resizable/ResizablePanel/index.d.ts +1 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +6 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +66 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -0
- package/dist/components/resizable/ResizablePanelGroup/index.d.ts +1 -0
- package/dist/components/resizable/index.d.ts +4 -0
- package/dist/components/resizable/index.js +4 -0
- package/dist/components/resizable/resizable.context.d.ts +38 -0
- package/dist/components/resizable/resizable.context.js +12 -0
- package/dist/components/resizable/resizable.context.js.map +1 -0
- package/dist/components/resizable/resizable.types.d.ts +76 -0
- package/dist/components/resizable/resizable.utils.d.ts +16 -0
- package/dist/components/resizable/resizable.utils.js +45 -0
- package/dist/components/resizable/resizable.utils.js.map +1 -0
- package/dist/components/resizable/useResizablePanelGroup.d.ts +22 -0
- package/dist/components/resizable/useResizablePanelGroup.js +176 -0
- package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +7 -4
- package/dist/components/scroll-arrows/ScrollArrowButton.js +28 -19
- package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrows.d.ts +5 -2
- package/dist/components/scroll-arrows/ScrollArrows.js +6 -0
- package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +7 -0
- package/dist/components/sheet/Sheet/Sheet.d.ts +6 -0
- package/dist/components/sheet/Sheet/Sheet.js +10 -0
- package/dist/components/sheet/Sheet/Sheet.js.map +1 -0
- package/dist/components/sheet/Sheet/index.d.ts +1 -0
- package/dist/components/sheet/SheetClose/SheetClose.d.ts +6 -0
- package/dist/components/sheet/SheetClose/SheetClose.js +39 -0
- package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -0
- package/dist/components/sheet/SheetClose/index.d.ts +1 -0
- package/dist/components/sheet/SheetContent/SheetContent.d.ts +6 -0
- package/dist/components/sheet/SheetContent/SheetContent.js +48 -0
- package/dist/components/sheet/SheetContent/SheetContent.js.map +1 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.d.ts +10 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.js +17 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.js.map +1 -0
- package/dist/components/sheet/SheetContent/index.d.ts +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.d.ts +2 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.js +25 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.js.map +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.d.ts +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.js +6 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.js.map +1 -0
- package/dist/components/sheet/SheetDescription/index.d.ts +1 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.d.ts +2 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.js +24 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.js.map +1 -0
- package/dist/components/sheet/SheetFooter/index.d.ts +1 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.d.ts +2 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.js +24 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.js.map +1 -0
- package/dist/components/sheet/SheetHeader/index.d.ts +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.d.ts +3 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.js +25 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.js.map +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.d.ts +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.js +6 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.js.map +1 -0
- package/dist/components/sheet/SheetTitle/index.d.ts +1 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.d.ts +8 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.js +32 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.js.map +1 -0
- package/dist/components/sheet/SheetTrigger/index.d.ts +1 -0
- package/dist/components/sheet/index.d.ts +9 -0
- package/dist/components/sheet/index.js +9 -0
- package/dist/components/sheet/sheet.types.d.ts +19 -0
- package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +5 -49
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +10 -39
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js +6 -5
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/hooks/useScrollEdges.d.ts +3 -0
- package/dist/hooks/useScrollEdges.js +18 -16
- package/dist/hooks/useScrollEdges.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +253 -193
- package/dist/lib/positioner/index.d.ts +1 -0
- package/dist/lib/positioner/utils/floating.d.ts +25 -0
- package/dist/lib/positioner/utils/floating.js +42 -0
- package/dist/lib/positioner/utils/floating.js.map +1 -0
- package/dist/ui.css +1 -1
- 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,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,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
|
package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map
ADDED
|
@@ -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
|
package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map
ADDED
|
@@ -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;
|