@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":"QuestionnaireInput.js","names":["splitProps","clsx","useQuestionnaireInput","QuestionnaireInputProps","inputClasses","QuestionnaireInput","props","local","rest","engine","type","defaultValue","value","disabled","onChange","event","_el$","_tmpl$","_el$2","firstChild","_$use","el","setInput","controlled","undefined","_$spread","_$mergeProps","id","name","form","formValue","_$memo","isDisabled","aria-invalid","invalid","aria-keyshortcuts","ariaKeyShortcuts","inputProps","data-filled","filled","data-empty","data-disabled","data-invalid","class","classList","_$mergeProps","_$memo","_tmpl$","inputClasses","QuestionnaireInput","local","rest","splitProps","props","engine","useQuestionnaireInput","event","_el$","_el$2","use","el","spread","mergeProps","memo","\"onChange\"","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireInput/QuestionnaireInput.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireInput } from \"./useQuestionnaireInput\";\nimport type { QuestionnaireInputProps } from \"../questionnaire.types\";\n\nconst inputClasses =\n \"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base outline-none transition-[color,box-shadow,background-color] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 md:text-sm dark:bg-input/30\";\n\n/** 自由作答输入(需有可见 label、aria-label 或 aria-labelledby 提供可访问名称) */\nexport function QuestionnaireInput(props: QuestionnaireInputProps) {\n const [local, rest] = splitProps(props, [\n \"type\",\n \"defaultValue\",\n \"value\",\n \"disabled\",\n \"onChange\",\n \"class\",\n \"classList\",\n ]);\n\n const engine = useQuestionnaireInput({\n type: () => local.type ?? \"text\",\n defaultValue: () => local.defaultValue,\n value: () => local.value,\n disabled: () => local.disabled,\n onChange: (event) => local.onChange?.(event),\n });\n\n return (\n <div\n data-slot=\"questionnaire-input-wrapper\"\n class=\"group/questionnaire-input relative min-w-0\"\n >\n <input\n {...rest}\n ref={(el) => {\n engine.setInput(el);\n // 非受控时把 defaultValue 写入 DOM(Solid 的 input 没有 defaultValue 绑定)\n if (!engine.controlled() && local.defaultValue !== undefined) {\n el.defaultValue = local.defaultValue;\n }\n }}\n id={engine.id}\n type={local.type ?? \"text\"}\n name={engine.name()}\n form={engine.formValue()}\n value={engine.controlled() ? local.value : undefined}\n disabled={engine.isDisabled()}\n aria-invalid={engine.invalid() || undefined}\n aria-keyshortcuts={engine.ariaKeyShortcuts()}\n onChange={(event) => engine.inputProps().onChange(event)}\n data-slot=\"questionnaire-input\"\n data-filled={engine.filled() ? \"\" : undefined}\n data-empty={engine.filled() ? undefined : \"\"}\n data-disabled={engine.isDisabled() ? \"\" : undefined}\n data-invalid={engine.invalid() ? \"\" : undefined}\n class={clsx(inputClasses, local.class)}\n classList={local.classList}\n />\n </div>\n );\n}\n"],"mappings":";;;;;oIAKMI,IACJ;AAGF,SAAgBC,EAAmBC,GAAgC;CACjE,IAAM,CAACC,GAAOC,KAAQR,EAAWM,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;CAAW,CACZ,GAEKG,IAASP,EAAsB;EACnCQ,YAAYH,EAAMG,QAAQ;EAC1BC,oBAAoBJ,EAAMI;EAC1BC,aAAaL,EAAMK;EACnBC,gBAAgBN,EAAMM;EACtBC,WAAWC,MAAUR,EAAMO,WAAWC,CAAK;CAC7C,CAAC;CAED,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EA6BgC,OA7BhCC,GAOYC,MAAO;GAGX,AAFAZ,EAAOa,SAASD,CAAE,GAEd,CAACZ,EAAOc,WAAW,KAAKhB,EAAMI,iBAAiBa,KAAAA,MACjDH,EAAGV,eAAeJ,EAAMI;EAE5B,GAACO,CAAA,GAAAO,EAAAP,GAAAQ,EAPGlB,GAAI;GAAA,IAQRmB,KAAE;IAAA,OAAElB,EAAOkB;GAAE;GAAA,IACbjB,OAAI;IAAA,OAAEH,EAAMG,QAAQ;GAAM;GAAA,IAC1BkB,OAAI;IAAA,OAAEnB,EAAOmB,KAAK;GAAC;GAAA,IACnBC,OAAI;IAAA,OAAEpB,EAAOqB,UAAU;GAAC;GAAA,IACxBlB,QAAK;IAAA,OAAEmB,QAAA,CAAA,CAAAtB,EAAOc,WAAW,CAAC,CAAA,CAAA,IAAGhB,EAAMK,QAAQY,KAAAA;GAAS;GAAA,IACpDX,WAAQ;IAAA,OAAEJ,EAAOuB,WAAW;GAAC;GAAA,IAAA,iBAAA;IAAA,OACfvB,EAAOyB,QAAQ,KAAKV,KAAAA;GAAS;GAAA,IAAA,sBAAA;IAAA,OACxBf,EAAO2B,iBAAiB;GAAC;GAAA4B,WACjCjD,MAAUN,EAAO4B,WAAW,CAAC,CAACvB,SAASC,CAAK;GAAC,aAC9C;GAAqB,IAAA,gBAAA;IAAA,OAClBN,EAAO8B,OAAO,IAAI,KAAKf,KAAAA;GAAS;GAAA,IAAA,eAAA;IAAA,OACjCf,EAAO8B,OAAO,IAAIf,KAAAA,IAAY;GAAE;GAAA,IAAA,kBAAA;IAAA,OAC7Bf,EAAOuB,WAAW,IAAI,KAAKR,KAAAA;GAAS;GAAA,IAAA,iBAAA;IAAA,OACrCf,EAAOyB,QAAQ,IAAI,KAAKV,KAAAA;GAAS;GAAA,IAAAyC,QAAA;IAAA,OACxChE,EAAKG,GAAcG,EAAMoC,KAAK;GAAC;GAAA,IACtCC,YAAS;IAAA,OAAErC,EAAMqC;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAA5B;CAAA,EAAA,CAAA;AAIlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuestionnaireInput } from './QuestionnaireInput';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
interface Options {
|
|
3
|
+
type: Accessor<string>;
|
|
4
|
+
defaultValue: Accessor<string | undefined>;
|
|
5
|
+
value: Accessor<string | undefined>;
|
|
6
|
+
disabled: Accessor<boolean | undefined>;
|
|
7
|
+
onChange?: (event: Event) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 自由作答输入:作为 Item 的一个 answer control 参与校验与 FormData。
|
|
11
|
+
* 选中时才有 name(参与提交),否则用 form="" 排除在表单之外。
|
|
12
|
+
*/
|
|
13
|
+
export declare function useQuestionnaireInput(options: Options): {
|
|
14
|
+
id: string;
|
|
15
|
+
setInput: import('solid-js').Setter<HTMLInputElement | undefined>;
|
|
16
|
+
selected: () => boolean;
|
|
17
|
+
filled: () => boolean;
|
|
18
|
+
isDisabled: () => boolean;
|
|
19
|
+
invalid: Accessor<boolean>;
|
|
20
|
+
controlled: () => boolean;
|
|
21
|
+
name: () => string | undefined;
|
|
22
|
+
formValue: () => "" | undefined;
|
|
23
|
+
ariaKeyShortcuts: () => string | undefined;
|
|
24
|
+
inputProps: () => {
|
|
25
|
+
"aria-invalid": true | undefined;
|
|
26
|
+
"aria-keyshortcuts": string | undefined;
|
|
27
|
+
defaultValue: string | undefined;
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
form: string | undefined;
|
|
30
|
+
id: string;
|
|
31
|
+
name: string | undefined;
|
|
32
|
+
onChange: (event: Event) => void;
|
|
33
|
+
type: string;
|
|
34
|
+
value: string | undefined;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useQuestionnaireItemContext as e } from "../questionnaire.context.js";
|
|
2
|
+
import { hasText as t, keyShortcutText as n } from "../questionnaire.utils.js";
|
|
3
|
+
import { createEffect as r, createSignal as i, createUniqueId as a, onCleanup as o } from "solid-js";
|
|
4
|
+
//#region src/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.ts
|
|
5
|
+
function s(s) {
|
|
6
|
+
let c = e("QuestionnaireInput"), l = a(), [u, d] = i(), f = t(s.defaultValue()), [p, m] = i(f), [h, g] = i(0), _ = () => s.value() !== void 0, v = () => c.disabled() || !!s.disabled?.(), y = () => c.selectedAnswerIds().includes(l), b = () => _() ? t(s.value()) : p();
|
|
7
|
+
o(c.registerAnswerSelection(l, f)), r(() => c.setAnswerDefault(l, f)), r(() => {
|
|
8
|
+
let e = u();
|
|
9
|
+
if (!e) return;
|
|
10
|
+
let t = c.registerAnswerControl({
|
|
11
|
+
id: l,
|
|
12
|
+
element: e,
|
|
13
|
+
type: "input",
|
|
14
|
+
disabled: v()
|
|
15
|
+
});
|
|
16
|
+
o(t);
|
|
17
|
+
}), r(() => {
|
|
18
|
+
let e = c.resetVersion();
|
|
19
|
+
e !== h() && (g(e), _() || m(f));
|
|
20
|
+
}), r(() => {
|
|
21
|
+
let e = u(), n = s.value();
|
|
22
|
+
e && (_() ? c.syncControlledAnswerSelection(l, t(n)) : n !== void 0 && (e.defaultValue = String(n)));
|
|
23
|
+
});
|
|
24
|
+
let x = (e) => {
|
|
25
|
+
let n = e.target;
|
|
26
|
+
if (s.onChange?.(e), e.defaultPrevented) return;
|
|
27
|
+
let r = t(n.value);
|
|
28
|
+
_() || m(r), c.setAnswerSelectionFromInteraction(l, r);
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
id: l,
|
|
32
|
+
setInput: d,
|
|
33
|
+
selected: y,
|
|
34
|
+
filled: b,
|
|
35
|
+
isDisabled: v,
|
|
36
|
+
invalid: c.invalid,
|
|
37
|
+
controlled: _,
|
|
38
|
+
name: () => y() ? c.name : void 0,
|
|
39
|
+
formValue: () => y() ? void 0 : "",
|
|
40
|
+
ariaKeyShortcuts: () => n(null, !v() && b() && y()),
|
|
41
|
+
inputProps: () => ({
|
|
42
|
+
"aria-invalid": c.invalid() || void 0,
|
|
43
|
+
"aria-keyshortcuts": n(null, !v() && b() && y()),
|
|
44
|
+
defaultValue: _() ? void 0 : s.defaultValue(),
|
|
45
|
+
disabled: v(),
|
|
46
|
+
form: y() ? void 0 : "",
|
|
47
|
+
id: l,
|
|
48
|
+
name: y() ? c.name : void 0,
|
|
49
|
+
onChange: x,
|
|
50
|
+
type: s.type(),
|
|
51
|
+
value: _() ? s.value() : void 0
|
|
52
|
+
})
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { s as useQuestionnaireInput };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=useQuestionnaireInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQuestionnaireInput.js","names":["useQuestionnaireInput","item","useQuestionnaireItemContext","id","createUniqueId","input","setInput","createSignal","initialFilled","hasText","options","internalFilled","setInternalFilled","resetSeen","setResetSeen","controlled","isDisabled","selected","filled","onCleanup","createEffect","element","unregister","version","value","handleChange","target","event","nextFilled","keyShortcutText"],"sources":["../../../../src/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.ts"],"sourcesContent":["import {\n createEffect,\n createSignal,\n createUniqueId,\n onCleanup,\n type Accessor,\n} from \"solid-js\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport { hasText, keyShortcutText } from \"../questionnaire.utils\";\n\ninterface Options {\n type: Accessor<string>;\n defaultValue: Accessor<string | undefined>;\n value: Accessor<string | undefined>;\n disabled: Accessor<boolean | undefined>;\n onChange?: (event: Event) => void;\n}\n\n/**\n * 自由作答输入:作为 Item 的一个 answer control 参与校验与 FormData。\n * 选中时才有 name(参与提交),否则用 form=\"\" 排除在表单之外。\n */\nexport function useQuestionnaireInput(options: Options) {\n const item = useQuestionnaireItemContext(\"QuestionnaireInput\");\n const id = createUniqueId();\n const [input, setInput] = createSignal<HTMLInputElement>();\n const initialFilled = hasText(options.defaultValue());\n const [internalFilled, setInternalFilled] = createSignal(initialFilled);\n const [resetSeen, setResetSeen] = createSignal(0);\n\n const controlled = () => options.value() !== undefined;\n const isDisabled = () => item.disabled() || !!options.disabled?.();\n const selected = () => item.selectedAnswerIds().includes(id);\n const filled = () =>\n controlled() ? hasText(options.value()) : internalFilled();\n\n onCleanup(item.registerAnswerSelection(id, initialFilled));\n createEffect(() => item.setAnswerDefault(id, initialFilled));\n\n createEffect(() => {\n const element = input();\n if (!element) return;\n const unregister = item.registerAnswerControl({\n id,\n element,\n type: \"input\",\n disabled: isDisabled(),\n });\n onCleanup(unregister);\n });\n\n createEffect(() => {\n const version = item.resetVersion();\n if (version === resetSeen()) return;\n setResetSeen(version);\n if (!controlled()) setInternalFilled(initialFilled);\n });\n\n createEffect(() => {\n const element = input();\n const value = options.value();\n if (!element) return;\n if (controlled()) {\n item.syncControlledAnswerSelection(id, hasText(value));\n } else if (value !== undefined) {\n element.defaultValue = String(value);\n }\n });\n\n const handleChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n options.onChange?.(event);\n if (event.defaultPrevented) return;\n const nextFilled = hasText(target.value);\n if (!controlled()) setInternalFilled(nextFilled);\n item.setAnswerSelectionFromInteraction(id, nextFilled);\n };\n\n return {\n id,\n setInput,\n selected,\n filled,\n isDisabled,\n invalid: item.invalid,\n controlled,\n name: () => (selected() ? item.name : undefined),\n formValue: () => (selected() ? undefined : \"\"),\n ariaKeyShortcuts: () =>\n keyShortcutText(null, !isDisabled() && filled() && selected()),\n inputProps: () => ({\n \"aria-invalid\": item.invalid() || undefined,\n \"aria-keyshortcuts\": keyShortcutText(\n null,\n !isDisabled() && filled() && selected(),\n ),\n defaultValue: controlled() ? undefined : options.defaultValue(),\n disabled: isDisabled(),\n form: selected() ? undefined : \"\",\n id,\n name: selected() ? item.name : undefined,\n onChange: handleChange,\n type: options.type(),\n value: controlled() ? options.value() : undefined,\n }),\n };\n}\n"],"mappings":";;;;AAsBA,SAAgBA,EAAsB,GAAkB;CACtD,IAAMC,IAAOC,EAA4B,oBAAoB,GACvDC,IAAKC,EAAe,GACpB,CAACC,GAAOC,KAAYC,EAA+B,GACnDC,IAAgBC,EAAQC,EAAQ,aAAa,CAAC,GAC9C,CAACC,GAAgBC,KAAqBL,EAAaC,CAAa,GAChE,CAACK,GAAWC,KAAgBP,EAAa,CAAC,GAE1CQ,UAAmBL,EAAQ,MAAM,MAAM,KAAA,GACvCM,UAAmBf,EAAK,SAAS,KAAK,CAAC,CAACS,EAAQ,WAAW,GAC3DO,UAAiBhB,EAAK,kBAAkB,CAAC,CAAC,SAASE,CAAE,GACrDe,UACJH,EAAW,IAAIN,EAAQC,EAAQ,MAAM,CAAC,IAAIC,EAAe;CAwB3D,AAtBAQ,EAAUlB,EAAK,wBAAwBE,GAAIK,CAAa,CAAC,GACzDY,QAAmBnB,EAAK,iBAAiBE,GAAIK,CAAa,CAAC,GAE3DY,QAAmB;EACjB,IAAMC,IAAUhB,EAAM;EACtB,IAAI,CAACgB,GAAS;EACd,IAAMC,IAAarB,EAAK,sBAAsB;GAC5C;GACA;GACA,MAAM;GACN,UAAUe,EAAW;EACvB,CAAC;EACD,EAAUM,CAAU;CACtB,CAAC,GAEDF,QAAmB;EACjB,IAAMG,IAAUtB,EAAK,aAAa;EAClC,AAAIsB,MAAYV,EAAU,MAC1BC,EAAaS,CAAO,GACfR,EAAW,KAAGH,EAAkBJ,CAAa;CACpD,CAAC,GAEDY,QAAmB;EACjB,IAAMC,IAAUhB,EAAM,GAChBmB,IAAQd,EAAQ,MAAM;EAC5B,AAAKW,MACDN,EAAW,IACbd,EAAK,8BAA8BE,GAAIM,EAAQe,CAAK,CAAC,IAC5CA,MAAU,KAAA,MACnB,EAAQ,eAAe,OAAOA,CAAK;CAEvC,CAAC;CAED,IAAMC,KAAgB,MAAiB;EACrC,IAAMC,IAASC,EAAM;EAErB,IADAjB,EAAQ,WAAWiB,CAAK,GACpBA,EAAM,kBAAkB;EAC5B,IAAMC,IAAanB,EAAQiB,EAAO,KAAK;EAEvC,AADKX,EAAW,KAAGH,EAAkBgB,CAAU,GAC/C3B,EAAK,kCAAkCE,GAAIyB,CAAU;CACvD;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,SAAS3B,EAAK;EACd;EACA,YAAagB,EAAS,IAAIhB,EAAK,OAAO,KAAA;EACtC,iBAAkBgB,EAAS,IAAI,KAAA,IAAY;EAC3C,wBACEY,EAAgB,MAAM,CAACb,EAAW,KAAKE,EAAO,KAAKD,EAAS,CAAC;EAC/D,mBAAmB;GACjB,gBAAgBhB,EAAK,QAAQ,KAAK,KAAA;GAClC,qBAAqB4B,EACnB,MACA,CAACb,EAAW,KAAKE,EAAO,KAAKD,EAAS,CACxC;GACA,cAAcF,EAAW,IAAI,KAAA,IAAYL,EAAQ,aAAa;GAC9D,UAAUM,EAAW;GACrB,MAAMC,EAAS,IAAI,KAAA,IAAY;GAC/B;GACA,MAAMA,EAAS,IAAIhB,EAAK,OAAO,KAAA;GAC/B,UAAUwB;GACV,MAAMf,EAAQ,KAAK;GACnB,OAAOK,EAAW,IAAIL,EAAQ,MAAM,IAAI,KAAA;EAC1C;CACF;AACF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { QuestionnaireItemContext as t } from "../questionnaire.context.js";
|
|
3
|
+
import { useQuestionnaireItem as n } from "../useQuestionnaireItem.js";
|
|
4
|
+
import { createComponent as r, insert as i, mergeProps as a, spread as o, template as s, use as c } from "solid-js/web";
|
|
5
|
+
import { createEffect as l, mergeProps as u, onCleanup as d, splitProps as f } from "solid-js";
|
|
6
|
+
//#region src/components/questionnaire/QuestionnaireItem/QuestionnaireItem.tsx
|
|
7
|
+
var p = /*#__PURE__*/ s("<fieldset>");
|
|
8
|
+
function m(s) {
|
|
9
|
+
let m = u({
|
|
10
|
+
required: !1,
|
|
11
|
+
multiple: !1,
|
|
12
|
+
disabled: !1,
|
|
13
|
+
invalid: !1
|
|
14
|
+
}, s), [h, g] = f(m, [
|
|
15
|
+
"name",
|
|
16
|
+
"required",
|
|
17
|
+
"multiple",
|
|
18
|
+
"disabled",
|
|
19
|
+
"invalid",
|
|
20
|
+
"onStatusChange",
|
|
21
|
+
"class",
|
|
22
|
+
"classList",
|
|
23
|
+
"children"
|
|
24
|
+
]), _ = n({
|
|
25
|
+
name: h.name,
|
|
26
|
+
required: () => h.required,
|
|
27
|
+
multiple: () => h.multiple,
|
|
28
|
+
disabled: () => h.disabled,
|
|
29
|
+
invalid: () => h.invalid,
|
|
30
|
+
onStatusChange: (e) => h.onStatusChange?.(e)
|
|
31
|
+
}), v;
|
|
32
|
+
return l(() => {
|
|
33
|
+
let e = _.context.status();
|
|
34
|
+
v !== void 0 && v !== e && h.onStatusChange?.(e), v = e;
|
|
35
|
+
}), r(t.Provider, {
|
|
36
|
+
get value() {
|
|
37
|
+
return _.context;
|
|
38
|
+
},
|
|
39
|
+
get children() {
|
|
40
|
+
var t = p();
|
|
41
|
+
return c((e) => {
|
|
42
|
+
d(_.registerElement(e));
|
|
43
|
+
}, t), o(t, a(g, {
|
|
44
|
+
get disabled() {
|
|
45
|
+
return _.context.disabled();
|
|
46
|
+
},
|
|
47
|
+
get hidden() {
|
|
48
|
+
return !_.context.active();
|
|
49
|
+
},
|
|
50
|
+
get inert() {
|
|
51
|
+
return !_.context.active();
|
|
52
|
+
},
|
|
53
|
+
tabIndex: -1,
|
|
54
|
+
get "aria-describedby"() {
|
|
55
|
+
return _.describedBy();
|
|
56
|
+
},
|
|
57
|
+
get "aria-invalid"() {
|
|
58
|
+
return _.context.invalid() || void 0;
|
|
59
|
+
},
|
|
60
|
+
get "aria-keyshortcuts"() {
|
|
61
|
+
return _.keyshortcuts();
|
|
62
|
+
},
|
|
63
|
+
"data-slot": "questionnaire-item",
|
|
64
|
+
get "data-active"() {
|
|
65
|
+
return _.context.active() ? "" : void 0;
|
|
66
|
+
},
|
|
67
|
+
get "data-status"() {
|
|
68
|
+
return _.context.status();
|
|
69
|
+
},
|
|
70
|
+
get "data-invalid"() {
|
|
71
|
+
return _.context.invalid() ? "" : void 0;
|
|
72
|
+
},
|
|
73
|
+
get "data-disabled"() {
|
|
74
|
+
return _.context.disabled() ? "" : void 0;
|
|
75
|
+
},
|
|
76
|
+
get class() {
|
|
77
|
+
return e("flex min-w-0 flex-col gap-4 border-0 p-0 outline-none", h.class);
|
|
78
|
+
},
|
|
79
|
+
get classList() {
|
|
80
|
+
return h.classList;
|
|
81
|
+
}
|
|
82
|
+
}), !1, !0), i(t, () => h.children), t;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
export { m as QuestionnaireItem };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=QuestionnaireItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionnaireItem.js","names":["createEffect","mergeProps","onCleanup","splitProps","clsx","QuestionnaireItemContext","useQuestionnaireItem","QuestionnaireItemStatus","QuestionnaireItemProps","QuestionnaireItem","props","merged","required","multiple","disabled","invalid","local","rest","engine","name","onStatusChange","status","lastStatus","context","undefined","_$createComponent","Provider","value","children","_el$","_tmpl$","_$use","el","registerElement","_$spread","_$mergeProps","hidden","active","inert","aria-describedby","describedBy","aria-invalid","aria-keyshortcuts","keyshortcuts","data-active","data-status","data-invalid","data-disabled","class","classList","_$insert","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","_tmpl$","QuestionnaireItem","merged","props","local","rest","splitProps","engine","useQuestionnaireItem","status","lastStatus","createEffect","createComponent","QuestionnaireItemContext","_el$","use","el","spread","mergeProps","\"tabIndex\"","\"class\"","clsx","insert"],"sources":["../../../../src/components/questionnaire/QuestionnaireItem/QuestionnaireItem.tsx"],"sourcesContent":["import { createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { QuestionnaireItemContext } from \"../questionnaire.context\";\nimport { useQuestionnaireItem } from \"../useQuestionnaireItem\";\nimport type { QuestionnaireItemStatus } from \"../questionnaire.types\";\nimport type { QuestionnaireItemProps } from \"../questionnaire.types\";\n\n/** 单个题目:fieldset,非激活时 hidden + inert,并向 Root 注册命令式句柄 */\nexport function QuestionnaireItem(props: QuestionnaireItemProps) {\n const merged = mergeProps(\n { required: false, multiple: false, disabled: false, invalid: false },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"name\",\n \"required\",\n \"multiple\",\n \"disabled\",\n \"invalid\",\n \"onStatusChange\",\n \"class\",\n \"classList\",\n \"children\",\n ]);\n\n const engine = useQuestionnaireItem({\n name: local.name,\n required: () => local.required,\n multiple: () => local.multiple,\n disabled: () => local.disabled,\n invalid: () => local.invalid,\n onStatusChange: (status) => local.onStatusChange?.(status),\n });\n\n let lastStatus: QuestionnaireItemStatus | undefined;\n createEffect(() => {\n const status = engine.context.status();\n if (lastStatus !== undefined && lastStatus !== status) {\n local.onStatusChange?.(status);\n }\n lastStatus = status;\n });\n\n return (\n <QuestionnaireItemContext.Provider value={engine.context}>\n <fieldset\n {...rest}\n ref={(el) => {\n onCleanup(engine.registerElement(el));\n }}\n disabled={engine.context.disabled()}\n hidden={!engine.context.active()}\n inert={!engine.context.active()}\n tabIndex={-1}\n aria-describedby={engine.describedBy()}\n aria-invalid={engine.context.invalid() || undefined}\n aria-keyshortcuts={engine.keyshortcuts()}\n data-slot=\"questionnaire-item\"\n data-active={engine.context.active() ? \"\" : undefined}\n data-status={engine.context.status()}\n data-invalid={engine.context.invalid() ? \"\" : undefined}\n data-disabled={engine.context.disabled() ? \"\" : undefined}\n class={clsx(\n \"flex min-w-0 flex-col gap-4 border-0 p-0 outline-none\",\n local.class,\n )}\n classList={local.classList}\n >\n {local.children}\n </fieldset>\n </QuestionnaireItemContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAQA,SAAgBS,EAAkBC,GAA+B;CAC/D,IAAMC,IAASV,EACb;EAAEW,UAAU;EAAOC,UAAU;EAAOC,UAAU;EAAOC,SAAS;CAAM,GACpEL,CACF,GACM,CAACM,GAAOC,KAAQd,EAAWQ,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKO,IAASZ,EAAqB;EAClCa,MAAMH,EAAMG;EACZP,gBAAgBI,EAAMJ;EACtBC,gBAAgBG,EAAMH;EACtBC,gBAAgBE,EAAMF;EACtBC,eAAeC,EAAMD;EACrBK,iBAAiBC,MAAWL,EAAMI,iBAAiBC,CAAM;CAC3D,CAAC,GAEGC;CASJ,OARAtB,QAAmB;EACjB,IAAMqB,IAASH,EAAOK,QAAQF,OAAO;EAIrCC,AAHIA,MAAeE,KAAAA,KAAaF,MAAeD,KAC7CL,EAAMI,iBAAiBC,CAAM,GAE/BC,IAAaD;CACf,CAAC,GAEDI,EACGpB,EAAyBqB,UAAQ;EAAA,IAACC,QAAK;GAAA,OAAET,EAAOK;EAAO;EAAA,IAAAK,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAwBrC,OAxBqCC,GAG9CC,MAAO;IACX9B,EAAUgB,EAAOe,gBAAgBD,CAAE,CAAC;GACtC,GAACH,CAAA,GAAAK,EAAAL,GAAAM,EAHGlB,GAAI;IAAA,IAIRH,WAAQ;KAAA,OAAEI,EAAOK,QAAQT,SAAS;IAAC;IAAA,IACnCsB,SAAM;KAAA,OAAE,CAAClB,EAAOK,QAAQc,OAAO;IAAC;IAAA,IAChCC,QAAK;KAAA,OAAE,CAACpB,EAAOK,QAAQc,OAAO;IAAC;IAAAqC,UAAA;IAAA,IAAA,qBAAA;KAAA,OAEbxD,EAAOsB,YAAY;IAAC;IAAA,IAAA,iBAAA;KAAA,OACxBtB,EAAOK,QAAQR,QAAQ,KAAKS,KAAAA;IAAS;IAAA,IAAA,sBAAA;KAAA,OAChCN,EAAOyB,aAAa;IAAC;IAAA,aAC9B;IAAoB,IAAA,gBAAA;KAAA,OACjBzB,EAAOK,QAAQc,OAAO,IAAI,KAAKb,KAAAA;IAAS;IAAA,IAAA,gBAAA;KAAA,OACxCN,EAAOK,QAAQF,OAAO;IAAC;IAAA,IAAA,iBAAA;KAAA,OACtBH,EAAOK,QAAQR,QAAQ,IAAI,KAAKS,KAAAA;IAAS;IAAA,IAAA,kBAAA;KAAA,OACxCN,EAAOK,QAAQT,SAAS,IAAI,KAAKU,KAAAA;IAAS;IAAA,IAAAmD,QAAA;KAAA,OAClDvE,EACL,yDACAY,EAAMgC,KACR;IAAC;IAAA,IACDC,YAAS;KAAA,OAAEjC,EAAMiC;IAAS;GAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAArB,SAEzBb,EAAMY,QAAQ,GAAAC;EAAA;CAAA,CAAA;AAIvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuestionnaireItem } from './QuestionnaireItem';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QuestionnaireNavigationProps } from '../questionnaire.types';
|
|
2
|
+
export declare const QuestionnairePrevious: (props: QuestionnaireNavigationProps) => import('solid-js').JSX.Element;
|
|
3
|
+
export declare const QuestionnaireSkip: (props: QuestionnaireNavigationProps) => import('solid-js').JSX.Element;
|
|
4
|
+
export declare const QuestionnaireNext: (props: QuestionnaireNavigationProps) => import('solid-js').JSX.Element;
|
|
5
|
+
export declare const QuestionnaireSubmit: (props: QuestionnaireNavigationProps) => import('solid-js').JSX.Element;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { Button as t } from "../../button/Button.js";
|
|
3
|
+
import { useQuestionnaireRootContext as n } from "../questionnaire.context.js";
|
|
4
|
+
import { createComponent as r, mergeProps as i } from "solid-js/web";
|
|
5
|
+
import { mergeProps as a, splitProps as o } from "solid-js";
|
|
6
|
+
//#region src/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.tsx
|
|
7
|
+
function s(e) {
|
|
8
|
+
switch (e) {
|
|
9
|
+
case "previous": return "Previous";
|
|
10
|
+
case "skip": return "Skip";
|
|
11
|
+
case "next": return "Next";
|
|
12
|
+
case "submit": return "Submit";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function c(c) {
|
|
16
|
+
let l = n("QuestionnaireNavigation"), u = a({
|
|
17
|
+
variant: void 0,
|
|
18
|
+
size: "md",
|
|
19
|
+
disabled: !1
|
|
20
|
+
}, c), [d, f] = o(u, [
|
|
21
|
+
"kind",
|
|
22
|
+
"class",
|
|
23
|
+
"classList",
|
|
24
|
+
"variant",
|
|
25
|
+
"size",
|
|
26
|
+
"disabled",
|
|
27
|
+
"onClick",
|
|
28
|
+
"children",
|
|
29
|
+
"type"
|
|
30
|
+
]), p = () => {
|
|
31
|
+
let e = l.state();
|
|
32
|
+
switch (d.kind) {
|
|
33
|
+
case "previous": return e.total > 1 && !e.first;
|
|
34
|
+
case "next": return e.total > 1 && !e.last;
|
|
35
|
+
case "skip": return l.activeItemRequired() === !1;
|
|
36
|
+
case "submit": return e.total > 0 && e.last;
|
|
37
|
+
}
|
|
38
|
+
}, m = () => p() && !d.disabled && (d.kind === "next" || d.kind === "submit") ? "Enter" : null;
|
|
39
|
+
return r(t, i(f, {
|
|
40
|
+
get type() {
|
|
41
|
+
return d.type ?? (d.kind === "submit" ? "submit" : "button");
|
|
42
|
+
},
|
|
43
|
+
get variant() {
|
|
44
|
+
return d.variant ?? (d.kind === "previous" || d.kind === "skip" ? "outline" : "primary");
|
|
45
|
+
},
|
|
46
|
+
get size() {
|
|
47
|
+
return d.size;
|
|
48
|
+
},
|
|
49
|
+
get disabled() {
|
|
50
|
+
return d.disabled;
|
|
51
|
+
},
|
|
52
|
+
onClick: (e) => {
|
|
53
|
+
let t = d.onClick;
|
|
54
|
+
Array.isArray(t) ? t[0](t[1], e) : t?.(e), !e?.defaultPrevented && (d.kind === "previous" ? l.goPrevious() : d.kind === "skip" ? l.skipCurrent() : d.kind === "next" && l.goNext());
|
|
55
|
+
},
|
|
56
|
+
get "data-slot"() {
|
|
57
|
+
return `questionnaire-${d.kind}`;
|
|
58
|
+
},
|
|
59
|
+
get "data-visible"() {
|
|
60
|
+
return p() ? "" : void 0;
|
|
61
|
+
},
|
|
62
|
+
get "data-hidden"() {
|
|
63
|
+
return p() ? void 0 : "";
|
|
64
|
+
},
|
|
65
|
+
get "data-status"() {
|
|
66
|
+
return l.activeItemStatus() ?? void 0;
|
|
67
|
+
},
|
|
68
|
+
get "data-shortcut"() {
|
|
69
|
+
return m() ?? void 0;
|
|
70
|
+
},
|
|
71
|
+
get "data-disabled"() {
|
|
72
|
+
return d.disabled ? "" : void 0;
|
|
73
|
+
},
|
|
74
|
+
get "aria-hidden"() {
|
|
75
|
+
return !p() || void 0;
|
|
76
|
+
},
|
|
77
|
+
get "aria-keyshortcuts"() {
|
|
78
|
+
return m() ?? void 0;
|
|
79
|
+
},
|
|
80
|
+
get hidden() {
|
|
81
|
+
return !p();
|
|
82
|
+
},
|
|
83
|
+
get inert() {
|
|
84
|
+
return !p();
|
|
85
|
+
},
|
|
86
|
+
get tabIndex() {
|
|
87
|
+
return p() ? 0 : -1;
|
|
88
|
+
},
|
|
89
|
+
get class() {
|
|
90
|
+
return e(d.kind === "previous" && "justify-self-start", d.kind !== "previous" && "justify-self-end", d.class);
|
|
91
|
+
},
|
|
92
|
+
get classList() {
|
|
93
|
+
return d.classList;
|
|
94
|
+
},
|
|
95
|
+
get children() {
|
|
96
|
+
return d.children ?? s(d.kind);
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
var l = (e) => r(c, i(e, { kind: "previous" })), u = (e) => r(c, i(e, { kind: "skip" })), d = (e) => r(c, i(e, { kind: "next" })), f = (e) => r(c, i(e, { kind: "submit" }));
|
|
101
|
+
//#endregion
|
|
102
|
+
export { d as QuestionnaireNext, l as QuestionnairePrevious, u as QuestionnaireSkip, f as QuestionnaireSubmit };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=QuestionnaireNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionnaireNavigation.js","names":["mergeProps","splitProps","Button","clsx","MouseEventHandler","useQuestionnaireRootContext","QuestionnaireNavigationProps","NavigationKind","NavButtonProps","kind","defaultLabel","NavButton","props","root","merged","variant","undefined","size","const","disabled","local","rest","visible","state","total","first","last","activeItemRequired","shortcut","handleClick","event","userOnClick","onClick","e","data","Array","isArray","defaultPrevented","goPrevious","skipCurrent","goNext","_$createComponent","_$mergeProps","type","data-slot","data-visible","data-hidden","data-status","activeItemStatus","data-shortcut","data-disabled","aria-hidden","aria-keyshortcuts","hidden","inert","tabIndex","class","classList","children","QuestionnairePrevious","QuestionnaireSkip","QuestionnaireNext","QuestionnaireSubmit","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","defaultLabel","kind","NavButton","root","useQuestionnaireRootContext","merged","props","local","rest","splitProps","visible","state","shortcut","createComponent","Button","mergeProps","userOnClick","event","\"class\"","clsx","QuestionnairePrevious","QuestionnaireSkip","QuestionnaireNext","QuestionnaireSubmit"],"sources":["../../../../src/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.tsx"],"sourcesContent":["import { mergeProps, splitProps } from \"solid-js\";\nimport { Button } from \"~/components/button\";\nimport { clsx } from \"~/utils\";\nimport type { MouseEventHandler } from \"~/types\";\nimport { useQuestionnaireRootContext } from \"../questionnaire.context\";\nimport type { QuestionnaireNavigationProps } from \"../questionnaire.types\";\n\ntype NavigationKind = \"previous\" | \"skip\" | \"next\" | \"submit\";\n\ninterface NavButtonProps extends QuestionnaireNavigationProps {\n kind: NavigationKind;\n}\n\nfunction defaultLabel(kind: NavigationKind) {\n switch (kind) {\n case \"previous\":\n return \"Previous\";\n case \"skip\":\n return \"Skip\";\n case \"next\":\n return \"Next\";\n case \"submit\":\n return \"Submit\";\n }\n}\n\nfunction NavButton(props: NavButtonProps) {\n const root = useQuestionnaireRootContext(\"QuestionnaireNavigation\");\n const merged = mergeProps(\n {\n variant: undefined,\n size: \"md\" as const,\n disabled: false,\n },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"kind\",\n \"class\",\n \"classList\",\n \"variant\",\n \"size\",\n \"disabled\",\n \"onClick\",\n \"children\",\n \"type\",\n ]);\n\n const visible = () => {\n const state = root.state();\n switch (local.kind) {\n case \"previous\":\n return state.total > 1 && !state.first;\n case \"next\":\n return state.total > 1 && !state.last;\n case \"skip\":\n return root.activeItemRequired() === false;\n case \"submit\":\n return state.total > 0 && state.last;\n }\n };\n\n const shortcut = () =>\n visible() &&\n !local.disabled &&\n (local.kind === \"next\" || local.kind === \"submit\")\n ? \"Enter\"\n : null;\n\n const handleClick: MouseEventHandler<\"button\"> = (event) => {\n const userOnClick = local.onClick as\n | ((e: typeof event) => void)\n | [(data: unknown, e: typeof event) => void, unknown]\n | undefined;\n if (Array.isArray(userOnClick)) userOnClick[0](userOnClick[1], event);\n else userOnClick?.(event);\n if (event?.defaultPrevented) return;\n if (local.kind === \"previous\") root.goPrevious();\n else if (local.kind === \"skip\") root.skipCurrent();\n else if (local.kind === \"next\") root.goNext();\n };\n\n return (\n <Button\n {...rest}\n type={local.type ?? (local.kind === \"submit\" ? \"submit\" : \"button\")}\n variant={\n local.variant ??\n (local.kind === \"previous\" || local.kind === \"skip\"\n ? \"outline\"\n : \"primary\")\n }\n size={local.size}\n disabled={local.disabled}\n onClick={handleClick}\n data-slot={`questionnaire-${local.kind}`}\n data-visible={visible() ? \"\" : undefined}\n data-hidden={visible() ? undefined : \"\"}\n data-status={root.activeItemStatus() ?? undefined}\n data-shortcut={shortcut() ?? undefined}\n data-disabled={local.disabled ? \"\" : undefined}\n aria-hidden={!visible() ? true : undefined}\n aria-keyshortcuts={shortcut() ?? undefined}\n hidden={!visible()}\n inert={!visible()}\n tabIndex={visible() ? 0 : -1}\n class={clsx(\n local.kind === \"previous\" && \"justify-self-start\",\n local.kind !== \"previous\" && \"justify-self-end\",\n local.class,\n )}\n classList={local.classList}\n >\n {local.children ?? defaultLabel(local.kind)}\n </Button>\n );\n}\n\nexport const QuestionnairePrevious = (props: QuestionnaireNavigationProps) => (\n <NavButton {...props} kind=\"previous\" />\n);\nexport const QuestionnaireSkip = (props: QuestionnaireNavigationProps) => (\n <NavButton {...props} kind=\"skip\" />\n);\nexport const QuestionnaireNext = (props: QuestionnaireNavigationProps) => (\n <NavButton {...props} kind=\"next\" />\n);\nexport const QuestionnaireSubmit = (props: QuestionnaireNavigationProps) => (\n <NavButton {...props} kind=\"submit\" />\n);\n"],"mappings":";;;;;;AAaA,SAASU,EAAaD,GAAsB;CAC1C,QAAQA,GAAR;EACE,KAAK,YACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,UACH,OAAO;CACX;AACF;AAEA,SAASE,EAAUC,GAAuB;CACxC,IAAMC,IAAOR,EAA4B,yBAAyB,GAC5DS,IAASd,EACb;EACEe,SAASC,KAAAA;EACTC,MAAM;EACNE,UAAU;CACZ,GACAP,CACF,GACM,CAACQ,GAAOC,KAAQpB,EAAWa,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAM,CACP,GAEKQ,UAAgB;EACpB,IAAMC,IAAQV,EAAKU,MAAM;EACzB,QAAQH,EAAMX,MAAd;GACE,KAAK,YACH,OAAOc,EAAMC,QAAQ,KAAK,CAACD,EAAME;GACnC,KAAK,QACH,OAAOF,EAAMC,QAAQ,KAAK,CAACD,EAAMG;GACnC,KAAK,QACH,OAAOb,EAAKc,mBAAmB,MAAM;GACvC,KAAK,UACH,OAAOJ,EAAMC,QAAQ,KAAKD,EAAMG;EACpC;CACF,GAEME,UACJN,EAAQ,KACR,CAACF,EAAMD,aACNC,EAAMX,SAAS,UAAUW,EAAMX,SAAS,YACrC,UACA;CAeN,OAAAgC,EACGvC,GAAMwC,EACDrB,GAAI;EAAA,IACRsB,OAAI;GAAA,OAAEvB,EAAMuB,SAASvB,EAAMX,SAAS,WAAW,WAAW;EAAS;EAAA,IACnEM,UAAO;GAAA,OACLK,EAAML,YACLK,EAAMX,SAAS,cAAcW,EAAMX,SAAS,SACzC,YACA;EAAU;EAAA,IAEhBQ,OAAI;GAAA,OAAEG,EAAMH;EAAI;EAAA,IAChBE,WAAQ;GAAA,OAAEC,EAAMD;EAAQ;EACxBa,UAzB8CF,MAAU;GAC1D,IAAMC,IAAcX,EAAMY;GAM1B,AAFIG,MAAMC,QAAQL,CAAW,IAAGA,EAAY,EAAE,CAACA,EAAY,IAAID,CAAK,IAC/DC,IAAcD,CAAK,GACpBA,IAAOO,qBACPjB,EAAMX,SAAS,aAAYI,EAAKyB,WAAW,IACtClB,EAAMX,SAAS,SAAQI,EAAK0B,YAAY,IACxCnB,EAAMX,SAAS,UAAQI,EAAK2B,OAAO;EAC9C;EAcwB,IAAA,cAAA;GAAA,OACT,iBAAiBpB,EAAMX;EAAM;EAAA,IAAA,iBAAA;GAAA,OAC1Ba,EAAQ,IAAI,KAAKN,KAAAA;EAAS;EAAA,IAAA,gBAAA;GAAA,OAC3BM,EAAQ,IAAIN,KAAAA,IAAY;EAAE;EAAA,IAAA,gBAAA;GAAA,OAC1BH,EAAKmC,iBAAiB,KAAKhC,KAAAA;EAAS;EAAA,IAAA,kBAAA;GAAA,OAClCY,EAAS,KAAKZ,KAAAA;EAAS;EAAA,IAAA,kBAAA;GAAA,OACvBI,EAAMD,WAAW,KAAKH,KAAAA;EAAS;EAAA,IAAA,gBAAA;GAAA,OACjC,CAACM,EAAQ,KAAWN,KAAAA;EAAS;EAAA,IAAA,sBAAA;GAAA,OACvBY,EAAS,KAAKZ,KAAAA;EAAS;EAAA,IAC1CqC,SAAM;GAAA,OAAE,CAAC/B,EAAQ;EAAC;EAAA,IAClBgC,QAAK;GAAA,OAAE,CAAChC,EAAQ;EAAC;EAAA,IACjBiC,WAAQ;GAAA,OAAEjC,EAAQ,IAAI,IAAI;EAAE;EAAA,IAAA+D,QAAA;GAAA,OACrBlF,EACLiB,EAAMX,SAAS,cAAc,sBAC7BW,EAAMX,SAAS,cAAc,oBAC7BW,EAAMoC,KACR;EAAC;EAAA,IACDC,YAAS;GAAA,OAAErC,EAAMqC;EAAS;EAAA,IAAAC,WAAA;GAAA,OAEzBtC,EAAMsC,YAAYhD,EAAaU,EAAMX,IAAI;EAAC;CAAA,CAAA,CAAA;AAGjD;AAEA,IAAakD,KAAyB/C,MAAmC6B,EACtE9B,GAAS+B,EAAK9B,GAAK,EAAEH,MAAI,WAAA,CAAA,CAAA,GAEfmD,KAAqBhD,MAAmC6B,EAClE9B,GAAS+B,EAAK9B,GAAK,EAAEH,MAAI,OAAA,CAAA,CAAA,GAEfoD,KAAqBjD,MAAmC6B,EAClE9B,GAAS+B,EAAK9B,GAAK,EAAEH,MAAI,OAAA,CAAA,CAAA,GAEfqD,KAAuBlD,MAAmC6B,EACpE9B,GAAS+B,EAAK9B,GAAK,EAAEH,MAAI,SAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuestionnairePrevious, QuestionnaireSkip, QuestionnaireNext, QuestionnaireSubmit, } from './QuestionnaireNavigation';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { useQuestionnaireRootContext as t } from "../questionnaire.context.js";
|
|
3
|
+
import { insert as n, memo as r, mergeProps as i, spread as a, template as o } from "solid-js/web";
|
|
4
|
+
import { splitProps as s } from "solid-js";
|
|
5
|
+
//#region src/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.tsx
|
|
6
|
+
var c = /*#__PURE__*/ o("<div>");
|
|
7
|
+
function l(o) {
|
|
8
|
+
let l = t("QuestionnaireProgress"), [u, d] = s(o, [
|
|
9
|
+
"class",
|
|
10
|
+
"classList",
|
|
11
|
+
"children"
|
|
12
|
+
]), f = l.state, p = () => {
|
|
13
|
+
let e = f();
|
|
14
|
+
return e.total ? `Question ${e.current} of ${e.total}` : void 0;
|
|
15
|
+
};
|
|
16
|
+
return (() => {
|
|
17
|
+
var t = c();
|
|
18
|
+
return a(t, i(d, {
|
|
19
|
+
"data-slot": "questionnaire-progress",
|
|
20
|
+
role: "progressbar",
|
|
21
|
+
"aria-label": "Questionnaire progress",
|
|
22
|
+
"aria-live": "polite",
|
|
23
|
+
get "aria-valuemax"() {
|
|
24
|
+
return f().total || void 0;
|
|
25
|
+
},
|
|
26
|
+
get "aria-valuemin"() {
|
|
27
|
+
return f().total ? 1 : void 0;
|
|
28
|
+
},
|
|
29
|
+
get "aria-valuenow"() {
|
|
30
|
+
return r(() => !!f().total)() ? f().current : void 0;
|
|
31
|
+
},
|
|
32
|
+
get "aria-valuetext"() {
|
|
33
|
+
return p();
|
|
34
|
+
},
|
|
35
|
+
get "data-current"() {
|
|
36
|
+
return f().current;
|
|
37
|
+
},
|
|
38
|
+
get "data-total"() {
|
|
39
|
+
return f().total;
|
|
40
|
+
},
|
|
41
|
+
get "data-first"() {
|
|
42
|
+
return f().first ? "" : void 0;
|
|
43
|
+
},
|
|
44
|
+
get "data-last"() {
|
|
45
|
+
return f().last ? "" : void 0;
|
|
46
|
+
},
|
|
47
|
+
get class() {
|
|
48
|
+
return e("min-h-[1lh] w-fit min-w-[14ch] font-medium text-xs text-muted-foreground tabular-nums", u.class);
|
|
49
|
+
},
|
|
50
|
+
get classList() {
|
|
51
|
+
return u.classList;
|
|
52
|
+
}
|
|
53
|
+
}), !1, !0), n(t, (() => {
|
|
54
|
+
var e = r(() => typeof u.children == "function");
|
|
55
|
+
return () => e() ? u.children(f()) : u.children ?? p();
|
|
56
|
+
})()), t;
|
|
57
|
+
})();
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { l as QuestionnaireProgress };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=QuestionnaireProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionnaireProgress.js","names":["splitProps","JSX","clsx","useQuestionnaireRootContext","QuestionnaireProgressProps","QuestionnaireRootState","QuestionnaireProgress","props","root","local","rest","state","label","value","total","current","undefined","_el$","_tmpl$","_$spread","_$mergeProps","aria-valuemax","aria-valuemin","aria-valuenow","_$memo","aria-valuetext","data-current","data-total","data-first","first","data-last","last","class","classList","_$insert","_c$","children","Element","_$mergeProps","_$memo","_tmpl$","QuestionnaireProgress","root","useQuestionnaireRootContext","local","rest","splitProps","props","state","label","value","_el$","spread","mergeProps","\"role\"","memo","\"class\"","clsx","insert","_c$"],"sources":["../../../../src/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.tsx"],"sourcesContent":["import { splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireRootContext } from \"../questionnaire.context\";\nimport type {\n QuestionnaireProgressProps,\n QuestionnaireRootState,\n} from \"../questionnaire.types\";\n\n/** 进度(默认显示 \"Question X of Y\");children 传函数可拿到 render state 自绘 */\nexport function QuestionnaireProgress(props: QuestionnaireProgressProps) {\n const root = useQuestionnaireRootContext(\"QuestionnaireProgress\");\n const [local, rest] = splitProps(props, [\"class\", \"classList\", \"children\"]);\n const state = root.state;\n const label = () => {\n const value = state();\n return value.total\n ? `Question ${value.current} of ${value.total}`\n : undefined;\n };\n\n return (\n <div\n {...rest}\n data-slot=\"questionnaire-progress\"\n role=\"progressbar\"\n aria-label=\"Questionnaire progress\"\n aria-live=\"polite\"\n aria-valuemax={state().total || undefined}\n aria-valuemin={state().total ? 1 : undefined}\n aria-valuenow={state().total ? state().current : undefined}\n aria-valuetext={label()}\n data-current={state().current}\n data-total={state().total}\n data-first={state().first ? \"\" : undefined}\n data-last={state().last ? \"\" : undefined}\n class={clsx(\n \"min-h-[1lh] w-fit min-w-[14ch] font-medium text-xs text-muted-foreground tabular-nums\",\n local.class,\n )}\n classList={local.classList}\n >\n {typeof local.children === \"function\"\n ? (local.children as (state: QuestionnaireRootState) => JSX.Element)(\n state(),\n )\n : (local.children ?? label())}\n </div>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgBM,EAAsBC,GAAmC;CACvE,IAAMC,IAAOL,EAA4B,uBAAuB,GAC1D,CAACM,GAAOC,KAAQV,EAAWO,GAAO;EAAC;EAAS;EAAa;CAAU,CAAC,GACpEI,IAAQH,EAAKG,OACbC,UAAc;EAClB,IAAMC,IAAQF,EAAM;EACpB,OAAOE,EAAMC,QACT,YAAYD,EAAME,QAAO,MAAOF,EAAMC,UACtCE,KAAAA;CACN;CAEA,cAAA;EAAA,IAAAC,IAAAC,EAAA;EAyBmC,OAzBnCC,EAAAF,GAAAG,EAEQV,GAAI;GAAA,aACE;GAAwB4C,MAC7B;GAAa,cACP;GAAwB,aACzB;GAAQ,IAAA,kBAAA;IAAA,OACH3C,EAAM,CAAC,CAACG,SAASE,KAAAA;GAAS;GAAA,IAAA,kBAAA;IAAA,OAC1BL,EAAM,CAAC,CAACG,QAAQ,IAAIE,KAAAA;GAAS;GAAA,IAAA,kBAAA;IAAA,OAC7BQ,QAAA,CAAA,CAAAb,EAAM,CAAC,CAACG,KAAK,CAAA,CAAA,IAAGH,EAAM,CAAC,CAACI,UAAUC,KAAAA;GAAS;GAAA,IAAA,mBAAA;IAAA,OAC1CJ,EAAM;GAAC;GAAA,IAAA,iBAAA;IAAA,OACTD,EAAM,CAAC,CAACI;GAAO;GAAA,IAAA,eAAA;IAAA,OACjBJ,EAAM,CAAC,CAACG;GAAK;GAAA,IAAA,eAAA;IAAA,OACbH,EAAM,CAAC,CAACkB,QAAQ,KAAKb,KAAAA;GAAS;GAAA,IAAA,cAAA;IAAA,OAC/BL,EAAM,CAAC,CAACoB,OAAO,KAAKf,KAAAA;GAAS;GAAA,IAAAwC,QAAA;IAAA,OACjCtD,EACL,yFACAO,EAAMuB,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAExB,EAAMwB;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAjB,UAAA;GAAA,IAAAkB,IAAAX,QAEzB,OAAOf,EAAM2B,YAAa,UAAU;GAAA,aAApCD,EAAA,IACI1B,EAAM2B,SACLzB,EAAM,CACR,IACCF,EAAM2B,YAAYxB,EAAM;EAAE,EAAA,CAAA,CAAA,GAAAK;CAAA,EAAA,CAAA;AAGrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuestionnaireProgress } from './QuestionnaireProgress';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ValidComponent } from 'solid-js';
|
|
2
|
+
import { QuestionnaireTitleProps } from '../questionnaire.types';
|
|
3
|
+
/** 题目标题(legend);可用 component 换成 CardTitle / DialogTitle 等 */
|
|
4
|
+
export declare function QuestionnaireTitle<T extends ValidComponent = "legend">(props: QuestionnaireTitleProps<T>): import('solid-js').JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { Dynamic as t, createComponent as n, mergeProps as r } from "solid-js/web";
|
|
3
|
+
import { splitProps as i } from "solid-js";
|
|
4
|
+
//#region src/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.tsx
|
|
5
|
+
function a(a) {
|
|
6
|
+
let [o, s] = i(a, [
|
|
7
|
+
"class",
|
|
8
|
+
"classList",
|
|
9
|
+
"component"
|
|
10
|
+
]);
|
|
11
|
+
return n(t, r(s, {
|
|
12
|
+
get component() {
|
|
13
|
+
return o.component ?? "legend";
|
|
14
|
+
},
|
|
15
|
+
"data-slot": "questionnaire-title",
|
|
16
|
+
get class() {
|
|
17
|
+
return e("text-base leading-snug font-medium text-pretty [&:not(:has(~[data-slot=questionnaire-description]))]:mb-4", o.class);
|
|
18
|
+
},
|
|
19
|
+
get classList() {
|
|
20
|
+
return o.classList;
|
|
21
|
+
}
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { a as QuestionnaireTitle };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=QuestionnaireTitle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionnaireTitle.js","names":["splitProps","ValidComponent","Dynamic","clsx","QuestionnaireTitleProps","QuestionnaireTitle","props","T","local","rest","_$createComponent","_$mergeProps","component","class","classList","_$createComponent","_$mergeProps","QuestionnaireTitle","local","rest","splitProps","props","createComponent","Dynamic","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.tsx"],"sourcesContent":["import { splitProps, type ValidComponent } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { clsx } from \"~/utils\";\nimport type { QuestionnaireTitleProps } from \"../questionnaire.types\";\n\n/** 题目标题(legend);可用 component 换成 CardTitle / DialogTitle 等 */\nexport function QuestionnaireTitle<T extends ValidComponent = \"legend\">(\n props: QuestionnaireTitleProps<T>,\n) {\n const [local, rest] = splitProps(props, [\"class\", \"classList\", \"component\"]);\n return (\n <Dynamic\n {...rest}\n component={(local.component as ValidComponent) ?? \"legend\"}\n data-slot=\"questionnaire-title\"\n class={clsx(\n \"text-base leading-snug font-medium text-pretty [&:not(:has(~[data-slot=questionnaire-description]))]:mb-4\",\n local.class,\n )}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;AAMA,SAAgBK,EACdC,GACA;CACA,IAAM,CAACE,GAAOC,KAAQT,EAAWM,GAAO;EAAC;EAAS;EAAa;CAAW,CAAC;CAC3E,OAAAI,EACGR,GAAOS,EACFF,GAAI;EAAA,IACRG,YAAS;GAAA,OAAGJ,EAAMI,aAAgC;EAAQ;EAAA,aAAA;EAAA,IAAAa,QAAA;GAAA,OAEnDtB,EACL,6GACAK,EAAMK,KACR;EAAC;EAAA,IACDC,YAAS;GAAA,OAAEN,EAAMM;EAAS;CAAA,CAAA,CAAA;AAGhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuestionnaireTitle } from './QuestionnaireTitle';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { Questionnaire } from './Questionnaire';
|
|
2
|
+
export { QuestionnaireProgress } from './QuestionnaireProgress';
|
|
3
|
+
export { QuestionnaireItem } from './QuestionnaireItem';
|
|
4
|
+
export { QuestionnaireTitle } from './QuestionnaireTitle';
|
|
5
|
+
export { QuestionnaireDescription } from './QuestionnaireDescription';
|
|
6
|
+
export { QuestionnaireChoices } from './QuestionnaireChoices';
|
|
7
|
+
export { QuestionnaireChoice } from './QuestionnaireChoice';
|
|
8
|
+
export { QuestionnaireInput } from './QuestionnaireInput';
|
|
9
|
+
export { QuestionnaireError } from './QuestionnaireError';
|
|
10
|
+
export { QuestionnaireActions } from './QuestionnaireActions';
|
|
11
|
+
export { QuestionnairePrevious, QuestionnaireSkip, QuestionnaireNext, QuestionnaireSubmit, } from './QuestionnaireNavigation';
|
|
12
|
+
export type { QuestionnaireItemStatus, QuestionnaireShortcutMode, QuestionnaireChoiceDefinition, QuestionnaireItemDefinition, QuestionnaireRootState, QuestionnaireProps, QuestionnaireProgressProps, QuestionnaireItemProps, QuestionnaireTitleProps, QuestionnaireDescriptionProps, QuestionnaireChoicesProps, QuestionnaireChoiceProps, QuestionnaireInputProps, QuestionnaireInputType, QuestionnaireErrorProps, QuestionnaireNavigationProps, } from './questionnaire.types';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Questionnaire as e } from "./Questionnaire/Questionnaire.js";
|
|
2
|
+
import { QuestionnaireProgress as t } from "./QuestionnaireProgress/QuestionnaireProgress.js";
|
|
3
|
+
import { QuestionnaireItem as n } from "./QuestionnaireItem/QuestionnaireItem.js";
|
|
4
|
+
import { QuestionnaireTitle as r } from "./QuestionnaireTitle/QuestionnaireTitle.js";
|
|
5
|
+
import { QuestionnaireDescription as i } from "./QuestionnaireDescription/QuestionnaireDescription.js";
|
|
6
|
+
import { QuestionnaireChoices as a } from "./QuestionnaireChoices/QuestionnaireChoices.js";
|
|
7
|
+
import { QuestionnaireChoice as o } from "./QuestionnaireChoice/QuestionnaireChoice.js";
|
|
8
|
+
import { QuestionnaireInput as s } from "./QuestionnaireInput/QuestionnaireInput.js";
|
|
9
|
+
import { QuestionnaireError as c } from "./QuestionnaireError/QuestionnaireError.js";
|
|
10
|
+
import { QuestionnaireActions as l } from "./QuestionnaireActions/QuestionnaireActions.js";
|
|
11
|
+
import { QuestionnaireNext as u, QuestionnairePrevious as d, QuestionnaireSkip as f, QuestionnaireSubmit as p } from "./QuestionnaireNavigation/QuestionnaireNavigation.js";
|
|
12
|
+
export { e as Questionnaire, l as QuestionnaireActions, o as QuestionnaireChoice, a as QuestionnaireChoices, i as QuestionnaireDescription, c as QuestionnaireError, s as QuestionnaireInput, n as QuestionnaireItem, u as QuestionnaireNext, d as QuestionnairePrevious, t as QuestionnaireProgress, f as QuestionnaireSkip, p as QuestionnaireSubmit, r as QuestionnaireTitle };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { QuestionnaireItemDefinition, QuestionnaireItemStatus, QuestionnaireRootState, QuestionnaireShortcutMode } from './questionnaire.types';
|
|
3
|
+
export interface QuestionnaireAnswerEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
6
|
+
type: "choice" | "input";
|
|
7
|
+
value?: string;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
ownDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface QuestionnaireItemHandle {
|
|
12
|
+
name: string;
|
|
13
|
+
element: HTMLElement;
|
|
14
|
+
disabled: Accessor<boolean>;
|
|
15
|
+
required: Accessor<boolean>;
|
|
16
|
+
status: Accessor<QuestionnaireItemStatus>;
|
|
17
|
+
validate: () => boolean;
|
|
18
|
+
focus: () => void;
|
|
19
|
+
focusInvalid: () => void;
|
|
20
|
+
skip: () => void;
|
|
21
|
+
reset: () => void;
|
|
22
|
+
getAnswerByElement: (element: Element) => QuestionnaireAnswerEntry | null;
|
|
23
|
+
getAnswerByShortcut: (shortcut: string) => QuestionnaireAnswerEntry | null;
|
|
24
|
+
moveAnswerFocus: (target: Element, direction: "next" | "previous") => boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface QuestionnaireRootContextValue {
|
|
27
|
+
state: Accessor<QuestionnaireRootState>;
|
|
28
|
+
activeItemName: Accessor<string | null>;
|
|
29
|
+
activeItemRequired: Accessor<boolean | null>;
|
|
30
|
+
activeItemStatus: Accessor<QuestionnaireItemStatus | null>;
|
|
31
|
+
shortcuts: Accessor<QuestionnaireShortcutMode | null>;
|
|
32
|
+
nativeValidation: Accessor<boolean>;
|
|
33
|
+
itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;
|
|
34
|
+
registerItem: (item: QuestionnaireItemHandle) => () => void;
|
|
35
|
+
goNext: () => void;
|
|
36
|
+
goPrevious: () => void;
|
|
37
|
+
skipCurrent: () => void;
|
|
38
|
+
requestSubmit: () => void;
|
|
39
|
+
}
|
|
40
|
+
export interface QuestionnaireItemContextValue {
|
|
41
|
+
name: string;
|
|
42
|
+
active: Accessor<boolean>;
|
|
43
|
+
disabled: Accessor<boolean>;
|
|
44
|
+
invalid: Accessor<boolean>;
|
|
45
|
+
multiple: Accessor<boolean>;
|
|
46
|
+
required: Accessor<boolean>;
|
|
47
|
+
status: Accessor<QuestionnaireItemStatus>;
|
|
48
|
+
hasInputAnswer: Accessor<boolean>;
|
|
49
|
+
selectedAnswerIds: Accessor<string[]>;
|
|
50
|
+
resetVersion: Accessor<number>;
|
|
51
|
+
shortcutByAnswerId: Accessor<Map<string, string>>;
|
|
52
|
+
shortcutByChoiceValue: Accessor<Map<string, string> | null>;
|
|
53
|
+
shortcuts: Accessor<QuestionnaireShortcutMode | null>;
|
|
54
|
+
registerAnswerControl: (entry: QuestionnaireAnswerEntry) => () => void;
|
|
55
|
+
registerAnswerSelection: (id: string, initialSelected: boolean) => () => void;
|
|
56
|
+
registerDescription: (id: string) => () => void;
|
|
57
|
+
registerError: (id: string) => () => void;
|
|
58
|
+
setAnswerDefault: (id: string, selected: boolean) => void;
|
|
59
|
+
setAnswerSelectionFromInteraction: (id: string, selected: boolean) => void;
|
|
60
|
+
syncControlledAnswerSelection: (id: string, selected: boolean) => void;
|
|
61
|
+
}
|
|
62
|
+
export declare const QuestionnaireRootContext: import('solid-js').Context<QuestionnaireRootContextValue | undefined>;
|
|
63
|
+
export declare function useQuestionnaireRootContext(component: string): QuestionnaireRootContextValue;
|
|
64
|
+
export declare const QuestionnaireItemContext: import('solid-js').Context<QuestionnaireItemContextValue | undefined>;
|
|
65
|
+
export declare function useQuestionnaireItemContext(component: string): QuestionnaireItemContextValue;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "solid-js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.context.ts
|
|
3
|
+
var n = e();
|
|
4
|
+
function r(e) {
|
|
5
|
+
let r = t(n);
|
|
6
|
+
if (!r) throw Error(`<${e}> 必须渲染在 <Questionnaire> 内部`);
|
|
7
|
+
return r;
|
|
8
|
+
}
|
|
9
|
+
var i = e();
|
|
10
|
+
function a(e) {
|
|
11
|
+
let n = t(i);
|
|
12
|
+
if (!n) throw Error(`<${e}> 必须渲染在 <QuestionnaireItem> 内部`);
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { i as QuestionnaireItemContext, n as QuestionnaireRootContext, a as useQuestionnaireItemContext, r as useQuestionnaireRootContext };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=questionnaire.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.context.js","names":["QuestionnaireRootContext","createContext","useQuestionnaireRootContext","ctx","useContext","component","QuestionnaireItemContext","useQuestionnaireItemContext"],"sources":["../../../src/components/questionnaire/questionnaire.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type {\n QuestionnaireItemDefinition,\n QuestionnaireItemStatus,\n QuestionnaireRootState,\n QuestionnaireShortcutMode,\n} from \"./questionnaire.types\";\n\nexport interface QuestionnaireAnswerEntry {\n id: string;\n element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n type: \"choice\" | \"input\";\n value?: string;\n disabled: boolean;\n ownDisabled?: boolean;\n}\n\nexport interface QuestionnaireItemHandle {\n name: string;\n element: HTMLElement;\n disabled: Accessor<boolean>;\n required: Accessor<boolean>;\n status: Accessor<QuestionnaireItemStatus>;\n validate: () => boolean;\n focus: () => void;\n focusInvalid: () => void;\n skip: () => void;\n reset: () => void;\n getAnswerByElement: (element: Element) => QuestionnaireAnswerEntry | null;\n getAnswerByShortcut: (shortcut: string) => QuestionnaireAnswerEntry | null;\n moveAnswerFocus: (target: Element, direction: \"next\" | \"previous\") => boolean;\n}\n\nexport interface QuestionnaireRootContextValue {\n state: Accessor<QuestionnaireRootState>;\n activeItemName: Accessor<string | null>;\n activeItemRequired: Accessor<boolean | null>;\n activeItemStatus: Accessor<QuestionnaireItemStatus | null>;\n shortcuts: Accessor<QuestionnaireShortcutMode | null>;\n nativeValidation: Accessor<boolean>;\n itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;\n registerItem: (item: QuestionnaireItemHandle) => () => void;\n goNext: () => void;\n goPrevious: () => void;\n skipCurrent: () => void;\n requestSubmit: () => void;\n}\n\nexport interface QuestionnaireItemContextValue {\n name: string;\n active: Accessor<boolean>;\n disabled: Accessor<boolean>;\n invalid: Accessor<boolean>;\n multiple: Accessor<boolean>;\n required: Accessor<boolean>;\n status: Accessor<QuestionnaireItemStatus>;\n hasInputAnswer: Accessor<boolean>;\n selectedAnswerIds: Accessor<string[]>;\n resetVersion: Accessor<number>;\n shortcutByAnswerId: Accessor<Map<string, string>>;\n shortcutByChoiceValue: Accessor<Map<string, string> | null>;\n shortcuts: Accessor<QuestionnaireShortcutMode | null>;\n registerAnswerControl: (entry: QuestionnaireAnswerEntry) => () => void;\n registerAnswerSelection: (id: string, initialSelected: boolean) => () => void;\n registerDescription: (id: string) => () => void;\n registerError: (id: string) => () => void;\n setAnswerDefault: (id: string, selected: boolean) => void;\n setAnswerSelectionFromInteraction: (id: string, selected: boolean) => void;\n syncControlledAnswerSelection: (id: string, selected: boolean) => void;\n}\n\nexport const QuestionnaireRootContext =\n createContext<QuestionnaireRootContextValue>();\n\nexport function useQuestionnaireRootContext(\n component: string,\n): QuestionnaireRootContextValue {\n const ctx = useContext(QuestionnaireRootContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <Questionnaire> 内部`);\n }\n return ctx;\n}\n\nexport const QuestionnaireItemContext =\n createContext<QuestionnaireItemContextValue>();\n\nexport function useQuestionnaireItemContext(\n component: string,\n): QuestionnaireItemContextValue {\n const ctx = useContext(QuestionnaireItemContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <QuestionnaireItem> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuEA,IAAaA,IACXC,EAA6C;AAE/C,SAAgBC,EACd,GAC+B;CAC/B,IAAMC,IAAMC,EAAWJ,CAAwB;CAC/C,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,2BAA2B;CAE3D,OAAOF;AACT;AAEA,IAAaG,IACXL,EAA6C;AAE/C,SAAgBM,EACd,GAC+B;CAC/B,IAAMJ,IAAMC,EAAWE,CAAwB;CAC/C,IAAI,CAACH,GACH,MAAU,MAAM,IAAIE,EAAU,+BAA+B;CAE/D,OAAOF;AACT"}
|