@neut/ui 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/dist/components/bubble/Bubble/Bubble.d.ts +3 -0
  2. package/dist/components/bubble/Bubble/Bubble.js +39 -0
  3. package/dist/components/bubble/Bubble/Bubble.js.map +1 -0
  4. package/dist/components/bubble/Bubble/Bubble.styles.d.ts +7 -0
  5. package/dist/components/bubble/Bubble/Bubble.styles.js +18 -0
  6. package/dist/components/bubble/Bubble/Bubble.styles.js.map +1 -0
  7. package/dist/components/bubble/Bubble/Bubble.types.d.ts +8 -0
  8. package/dist/components/bubble/Bubble/index.d.ts +2 -0
  9. package/dist/components/bubble/BubbleContent/BubbleContent.d.ts +7 -0
  10. package/dist/components/bubble/BubbleContent/BubbleContent.js +17 -0
  11. package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -0
  12. package/dist/components/bubble/BubbleContent/BubbleContent.styles.d.ts +1 -0
  13. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js +6 -0
  14. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js.map +1 -0
  15. package/dist/components/bubble/BubbleContent/BubbleContent.types.d.ts +3 -0
  16. package/dist/components/bubble/BubbleContent/index.d.ts +2 -0
  17. package/dist/components/bubble/BubbleGroup/BubbleGroup.d.ts +3 -0
  18. package/dist/components/bubble/BubbleGroup/BubbleGroup.js +24 -0
  19. package/dist/components/bubble/BubbleGroup/BubbleGroup.js.map +1 -0
  20. package/dist/components/bubble/BubbleGroup/BubbleGroup.types.d.ts +2 -0
  21. package/dist/components/bubble/BubbleGroup/index.d.ts +2 -0
  22. package/dist/components/bubble/BubbleReactions/BubbleReactions.d.ts +6 -0
  23. package/dist/components/bubble/BubbleReactions/BubbleReactions.js +42 -0
  24. package/dist/components/bubble/BubbleReactions/BubbleReactions.js.map +1 -0
  25. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.d.ts +4 -0
  26. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js +22 -0
  27. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js.map +1 -0
  28. package/dist/components/bubble/BubbleReactions/BubbleReactions.types.d.ts +4 -0
  29. package/dist/components/bubble/BubbleReactions/index.d.ts +2 -0
  30. package/dist/components/bubble/index.d.ts +8 -0
  31. package/dist/components/bubble/index.js +5 -0
  32. package/dist/components/drawer/Drawer/Drawer.context.d.ts +3 -0
  33. package/dist/components/drawer/Drawer/Drawer.context.js +12 -0
  34. package/dist/components/drawer/Drawer/Drawer.context.js.map +1 -0
  35. package/dist/components/drawer/Drawer/Drawer.d.ts +7 -0
  36. package/dist/components/drawer/Drawer/Drawer.js +63 -0
  37. package/dist/components/drawer/Drawer/Drawer.js.map +1 -0
  38. package/dist/components/drawer/Drawer/Drawer.types.d.ts +50 -0
  39. package/dist/components/drawer/Drawer/create-change-event-details.d.ts +3 -0
  40. package/dist/components/drawer/Drawer/create-change-event-details.js +25 -0
  41. package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -0
  42. package/dist/components/drawer/Drawer/index.d.ts +3 -0
  43. package/dist/components/drawer/DrawerClose/DrawerClose.d.ts +5 -0
  44. package/dist/components/drawer/DrawerClose/DrawerClose.js +26 -0
  45. package/dist/components/drawer/DrawerClose/DrawerClose.js.map +1 -0
  46. package/dist/components/drawer/DrawerClose/index.d.ts +1 -0
  47. package/dist/components/drawer/DrawerContent/DrawerContent.d.ts +6 -0
  48. package/dist/components/drawer/DrawerContent/DrawerContent.js +103 -0
  49. package/dist/components/drawer/DrawerContent/DrawerContent.js.map +1 -0
  50. package/dist/components/drawer/DrawerContent/DrawerContent.styles.d.ts +10 -0
  51. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js +25 -0
  52. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js.map +1 -0
  53. package/dist/components/drawer/DrawerContent/DrawerContent.types.d.ts +2 -0
  54. package/dist/components/drawer/DrawerContent/index.d.ts +2 -0
  55. package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +11 -0
  56. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +56 -0
  57. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -0
  58. package/dist/components/drawer/DrawerDescription/DrawerDescription.d.ts +2 -0
  59. package/dist/components/drawer/DrawerDescription/DrawerDescription.js +28 -0
  60. package/dist/components/drawer/DrawerDescription/DrawerDescription.js.map +1 -0
  61. package/dist/components/drawer/DrawerDescription/DrawerDescription.types.d.ts +2 -0
  62. package/dist/components/drawer/DrawerDescription/index.d.ts +2 -0
  63. package/dist/components/drawer/DrawerFooter/DrawerFooter.d.ts +2 -0
  64. package/dist/components/drawer/DrawerFooter/DrawerFooter.js +24 -0
  65. package/dist/components/drawer/DrawerFooter/DrawerFooter.js.map +1 -0
  66. package/dist/components/drawer/DrawerFooter/DrawerFooter.types.d.ts +2 -0
  67. package/dist/components/drawer/DrawerFooter/index.d.ts +2 -0
  68. package/dist/components/drawer/DrawerHeader/DrawerHeader.d.ts +2 -0
  69. package/dist/components/drawer/DrawerHeader/DrawerHeader.js +24 -0
  70. package/dist/components/drawer/DrawerHeader/DrawerHeader.js.map +1 -0
  71. package/dist/components/drawer/DrawerHeader/DrawerHeader.types.d.ts +2 -0
  72. package/dist/components/drawer/DrawerHeader/index.d.ts +2 -0
  73. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.d.ts +3 -0
  74. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +43 -0
  75. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -0
  76. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.types.d.ts +2 -0
  77. package/dist/components/drawer/DrawerOverlay/index.d.ts +2 -0
  78. package/dist/components/drawer/DrawerPortal/DrawerPortal.d.ts +2 -0
  79. package/dist/components/drawer/DrawerPortal/DrawerPortal.js +10 -0
  80. package/dist/components/drawer/DrawerPortal/DrawerPortal.js.map +1 -0
  81. package/dist/components/drawer/DrawerPortal/DrawerPortal.types.d.ts +2 -0
  82. package/dist/components/drawer/DrawerPortal/index.d.ts +2 -0
  83. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.d.ts +6 -0
  84. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js +27 -0
  85. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js.map +1 -0
  86. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.types.d.ts +2 -0
  87. package/dist/components/drawer/DrawerSwipeHandle/index.d.ts +2 -0
  88. package/dist/components/drawer/DrawerTitle/DrawerTitle.d.ts +2 -0
  89. package/dist/components/drawer/DrawerTitle/DrawerTitle.js +28 -0
  90. package/dist/components/drawer/DrawerTitle/DrawerTitle.js.map +1 -0
  91. package/dist/components/drawer/DrawerTitle/DrawerTitle.types.d.ts +2 -0
  92. package/dist/components/drawer/DrawerTitle/index.d.ts +2 -0
  93. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.d.ts +5 -0
  94. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js +38 -0
  95. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js.map +1 -0
  96. package/dist/components/drawer/DrawerTrigger/index.d.ts +1 -0
  97. package/dist/components/drawer/index.d.ts +20 -0
  98. package/dist/components/drawer/index.js +13 -0
  99. package/dist/components/hover-card/HoverCard/HoverCard.d.ts +7 -0
  100. package/dist/components/hover-card/HoverCard/HoverCard.js +47 -0
  101. package/dist/components/hover-card/HoverCard/HoverCard.js.map +1 -0
  102. package/dist/components/hover-card/HoverCard/index.d.ts +1 -0
  103. package/dist/components/hover-card/HoverCardContent/HoverCardContent.d.ts +6 -0
  104. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js +74 -0
  105. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js.map +1 -0
  106. package/dist/components/hover-card/HoverCardContent/index.d.ts +1 -0
  107. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.d.ts +16 -0
  108. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js +58 -0
  109. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js.map +1 -0
  110. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.d.ts +4 -0
  111. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js +40 -0
  112. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js.map +1 -0
  113. package/dist/components/hover-card/HoverCardTrigger/index.d.ts +1 -0
  114. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.d.ts +18 -0
  115. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js +34 -0
  116. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js.map +1 -0
  117. package/dist/components/hover-card/hover-card.context.d.ts +3 -0
  118. package/dist/components/hover-card/hover-card.context.js +12 -0
  119. package/dist/components/hover-card/hover-card.context.js.map +1 -0
  120. package/dist/components/hover-card/hover-card.types.d.ts +50 -0
  121. package/dist/components/hover-card/hover-card.utils.d.ts +6 -0
  122. package/dist/components/hover-card/index.d.ts +4 -0
  123. package/dist/components/hover-card/index.js +4 -0
  124. package/dist/components/marker/Marker/Marker.d.ts +7 -0
  125. package/dist/components/marker/Marker/Marker.js +35 -0
  126. package/dist/components/marker/Marker/Marker.js.map +1 -0
  127. package/dist/components/marker/Marker/Marker.styles.d.ts +3 -0
  128. package/dist/components/marker/Marker/Marker.styles.js +14 -0
  129. package/dist/components/marker/Marker/Marker.styles.js.map +1 -0
  130. package/dist/components/marker/Marker/Marker.types.d.ts +5 -0
  131. package/dist/components/marker/Marker/index.d.ts +3 -0
  132. package/dist/components/marker/MarkerContent/MarkerContent.d.ts +2 -0
  133. package/dist/components/marker/MarkerContent/MarkerContent.js +24 -0
  134. package/dist/components/marker/MarkerContent/MarkerContent.js.map +1 -0
  135. package/dist/components/marker/MarkerContent/MarkerContent.types.d.ts +2 -0
  136. package/dist/components/marker/MarkerContent/index.d.ts +2 -0
  137. package/dist/components/marker/MarkerIcon/MarkerIcon.d.ts +3 -0
  138. package/dist/components/marker/MarkerIcon/MarkerIcon.js +25 -0
  139. package/dist/components/marker/MarkerIcon/MarkerIcon.js.map +1 -0
  140. package/dist/components/marker/MarkerIcon/MarkerIcon.types.d.ts +2 -0
  141. package/dist/components/marker/MarkerIcon/index.d.ts +2 -0
  142. package/dist/components/marker/index.d.ts +6 -0
  143. package/dist/components/marker/index.js +5 -0
  144. package/dist/components/message/Message/Message.d.ts +3 -0
  145. package/dist/components/message/Message/Message.js +31 -0
  146. package/dist/components/message/Message/Message.js.map +1 -0
  147. package/dist/components/message/Message/Message.types.d.ts +5 -0
  148. package/dist/components/message/Message/index.d.ts +2 -0
  149. package/dist/components/message/MessageAvatar/MessageAvatar.d.ts +5 -0
  150. package/dist/components/message/MessageAvatar/MessageAvatar.js +24 -0
  151. package/dist/components/message/MessageAvatar/MessageAvatar.js.map +1 -0
  152. package/dist/components/message/MessageAvatar/MessageAvatar.types.d.ts +2 -0
  153. package/dist/components/message/MessageAvatar/index.d.ts +2 -0
  154. package/dist/components/message/MessageContent/MessageContent.d.ts +3 -0
  155. package/dist/components/message/MessageContent/MessageContent.js +24 -0
  156. package/dist/components/message/MessageContent/MessageContent.js.map +1 -0
  157. package/dist/components/message/MessageContent/MessageContent.types.d.ts +2 -0
  158. package/dist/components/message/MessageContent/index.d.ts +2 -0
  159. package/dist/components/message/MessageFooter/MessageFooter.d.ts +3 -0
  160. package/dist/components/message/MessageFooter/MessageFooter.js +24 -0
  161. package/dist/components/message/MessageFooter/MessageFooter.js.map +1 -0
  162. package/dist/components/message/MessageFooter/MessageFooter.types.d.ts +2 -0
  163. package/dist/components/message/MessageFooter/index.d.ts +2 -0
  164. package/dist/components/message/MessageGroup/MessageGroup.d.ts +3 -0
  165. package/dist/components/message/MessageGroup/MessageGroup.js +24 -0
  166. package/dist/components/message/MessageGroup/MessageGroup.js.map +1 -0
  167. package/dist/components/message/MessageGroup/MessageGroup.types.d.ts +2 -0
  168. package/dist/components/message/MessageGroup/index.d.ts +2 -0
  169. package/dist/components/message/MessageHeader/MessageHeader.d.ts +3 -0
  170. package/dist/components/message/MessageHeader/MessageHeader.js +24 -0
  171. package/dist/components/message/MessageHeader/MessageHeader.js.map +1 -0
  172. package/dist/components/message/MessageHeader/MessageHeader.types.d.ts +2 -0
  173. package/dist/components/message/MessageHeader/index.d.ts +2 -0
  174. package/dist/components/message/index.d.ts +12 -0
  175. package/dist/components/message/index.js +7 -0
  176. package/dist/components/message-scroller/MessageScroller/MessageScroller.d.ts +3 -0
  177. package/dist/components/message-scroller/MessageScroller/MessageScroller.js +35 -0
  178. package/dist/components/message-scroller/MessageScroller/MessageScroller.js.map +1 -0
  179. package/dist/components/message-scroller/MessageScroller/index.d.ts +1 -0
  180. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.d.ts +6 -0
  181. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js +90 -0
  182. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js.map +1 -0
  183. package/dist/components/message-scroller/MessageScrollerButton/index.d.ts +1 -0
  184. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.d.ts +6 -0
  185. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js +46 -0
  186. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js.map +1 -0
  187. package/dist/components/message-scroller/MessageScrollerContent/index.d.ts +1 -0
  188. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.d.ts +6 -0
  189. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js +42 -0
  190. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js.map +1 -0
  191. package/dist/components/message-scroller/MessageScrollerItem/index.d.ts +1 -0
  192. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.d.ts +4 -0
  193. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js +37 -0
  194. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map +1 -0
  195. package/dist/components/message-scroller/MessageScrollerProvider/index.d.ts +1 -0
  196. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.d.ts +6 -0
  197. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js +55 -0
  198. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map +1 -0
  199. package/dist/components/message-scroller/MessageScrollerViewport/index.d.ts +1 -0
  200. package/dist/components/message-scroller/index.d.ts +10 -0
  201. package/dist/components/message-scroller/index.js +10 -0
  202. package/dist/components/message-scroller/message-scroller.context.d.ts +3 -0
  203. package/dist/components/message-scroller/message-scroller.context.js +12 -0
  204. package/dist/components/message-scroller/message-scroller.context.js.map +1 -0
  205. package/dist/components/message-scroller/message-scroller.types.d.ts +92 -0
  206. package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
  207. package/dist/components/message-scroller/message-scroller.utils.js +9 -0
  208. package/dist/components/message-scroller/message-scroller.utils.js.map +1 -0
  209. package/dist/components/message-scroller/useMessageScroller.d.ts +6 -0
  210. package/dist/components/message-scroller/useMessageScroller.js +14 -0
  211. package/dist/components/message-scroller/useMessageScroller.js.map +1 -0
  212. package/dist/components/message-scroller/useMessageScrollerEngine.d.ts +15 -0
  213. package/dist/components/message-scroller/useMessageScrollerEngine.js +375 -0
  214. package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -0
  215. package/dist/components/message-scroller/useMessageScrollerScrollable.d.ts +5 -0
  216. package/dist/components/message-scroller/useMessageScrollerScrollable.js +13 -0
  217. package/dist/components/message-scroller/useMessageScrollerScrollable.js.map +1 -0
  218. package/dist/components/message-scroller/useMessageScrollerVisibility.d.ts +7 -0
  219. package/dist/components/message-scroller/useMessageScrollerVisibility.js +17 -0
  220. package/dist/components/message-scroller/useMessageScrollerVisibility.js.map +1 -0
  221. package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +6 -13
  222. package/dist/components/popover/PopoverContent/PopoverContent.utils.js +7 -30
  223. package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
  224. package/dist/components/questionnaire/Questionnaire/Questionnaire.d.ts +3 -0
  225. package/dist/components/questionnaire/Questionnaire/Questionnaire.js +68 -0
  226. package/dist/components/questionnaire/Questionnaire/Questionnaire.js.map +1 -0
  227. package/dist/components/questionnaire/Questionnaire/index.d.ts +1 -0
  228. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.d.ts +3 -0
  229. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js +24 -0
  230. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js.map +1 -0
  231. package/dist/components/questionnaire/QuestionnaireActions/index.d.ts +1 -0
  232. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.d.ts +3 -0
  233. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js +99 -0
  234. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js.map +1 -0
  235. package/dist/components/questionnaire/QuestionnaireChoice/index.d.ts +1 -0
  236. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.d.ts +38 -0
  237. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +67 -0
  238. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -0
  239. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.d.ts +3 -0
  240. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js +28 -0
  241. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js.map +1 -0
  242. package/dist/components/questionnaire/QuestionnaireChoices/index.d.ts +1 -0
  243. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.d.ts +4 -0
  244. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js +30 -0
  245. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js.map +1 -0
  246. package/dist/components/questionnaire/QuestionnaireDescription/index.d.ts +1 -0
  247. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.d.ts +4 -0
  248. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js +43 -0
  249. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js.map +1 -0
  250. package/dist/components/questionnaire/QuestionnaireError/index.d.ts +1 -0
  251. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.d.ts +3 -0
  252. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js +78 -0
  253. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js.map +1 -0
  254. package/dist/components/questionnaire/QuestionnaireInput/index.d.ts +1 -0
  255. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.d.ts +37 -0
  256. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +58 -0
  257. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -0
  258. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.d.ts +3 -0
  259. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +89 -0
  260. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -0
  261. package/dist/components/questionnaire/QuestionnaireItem/index.d.ts +1 -0
  262. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.d.ts +5 -0
  263. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js +104 -0
  264. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js.map +1 -0
  265. package/dist/components/questionnaire/QuestionnaireNavigation/index.d.ts +1 -0
  266. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.d.ts +4 -0
  267. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js +62 -0
  268. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js.map +1 -0
  269. package/dist/components/questionnaire/QuestionnaireProgress/index.d.ts +1 -0
  270. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.d.ts +4 -0
  271. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js +27 -0
  272. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js.map +1 -0
  273. package/dist/components/questionnaire/QuestionnaireTitle/index.d.ts +1 -0
  274. package/dist/components/questionnaire/index.d.ts +12 -0
  275. package/dist/components/questionnaire/index.js +12 -0
  276. package/dist/components/questionnaire/questionnaire.context.d.ts +65 -0
  277. package/dist/components/questionnaire/questionnaire.context.js +18 -0
  278. package/dist/components/questionnaire/questionnaire.context.js.map +1 -0
  279. package/dist/components/questionnaire/questionnaire.types.d.ts +82 -0
  280. package/dist/components/questionnaire/questionnaire.utils.d.ts +24 -0
  281. package/dist/components/questionnaire/questionnaire.utils.js +38 -0
  282. package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
  283. package/dist/components/questionnaire/useQuestionnaireItem.d.ts +34 -0
  284. package/dist/components/questionnaire/useQuestionnaireItem.js +141 -0
  285. package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -0
  286. package/dist/components/questionnaire/useQuestionnaireRoot.d.ts +30 -0
  287. package/dist/components/questionnaire/useQuestionnaireRoot.js +144 -0
  288. package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
  289. package/dist/components/resizable/ResizableHandle/ResizableHandle.d.ts +6 -0
  290. package/dist/components/resizable/ResizableHandle/ResizableHandle.js +92 -0
  291. package/dist/components/resizable/ResizableHandle/ResizableHandle.js.map +1 -0
  292. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.d.ts +3 -0
  293. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js +6 -0
  294. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js.map +1 -0
  295. package/dist/components/resizable/ResizableHandle/index.d.ts +1 -0
  296. package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +17 -0
  297. package/dist/components/resizable/ResizableHandle/useResizableHandle.js +72 -0
  298. package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
  299. package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +6 -0
  300. package/dist/components/resizable/ResizablePanel/ResizablePanel.js +91 -0
  301. package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -0
  302. package/dist/components/resizable/ResizablePanel/index.d.ts +1 -0
  303. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +6 -0
  304. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +66 -0
  305. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -0
  306. package/dist/components/resizable/ResizablePanelGroup/index.d.ts +1 -0
  307. package/dist/components/resizable/index.d.ts +4 -0
  308. package/dist/components/resizable/index.js +4 -0
  309. package/dist/components/resizable/resizable.context.d.ts +38 -0
  310. package/dist/components/resizable/resizable.context.js +12 -0
  311. package/dist/components/resizable/resizable.context.js.map +1 -0
  312. package/dist/components/resizable/resizable.types.d.ts +76 -0
  313. package/dist/components/resizable/resizable.utils.d.ts +16 -0
  314. package/dist/components/resizable/resizable.utils.js +45 -0
  315. package/dist/components/resizable/resizable.utils.js.map +1 -0
  316. package/dist/components/resizable/useResizablePanelGroup.d.ts +22 -0
  317. package/dist/components/resizable/useResizablePanelGroup.js +176 -0
  318. package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
  319. package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +7 -4
  320. package/dist/components/scroll-arrows/ScrollArrowButton.js +28 -19
  321. package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
  322. package/dist/components/scroll-arrows/ScrollArrows.d.ts +5 -2
  323. package/dist/components/scroll-arrows/ScrollArrows.js +6 -0
  324. package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
  325. package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +7 -0
  326. package/dist/components/sheet/Sheet/Sheet.d.ts +6 -0
  327. package/dist/components/sheet/Sheet/Sheet.js +10 -0
  328. package/dist/components/sheet/Sheet/Sheet.js.map +1 -0
  329. package/dist/components/sheet/Sheet/index.d.ts +1 -0
  330. package/dist/components/sheet/SheetClose/SheetClose.d.ts +6 -0
  331. package/dist/components/sheet/SheetClose/SheetClose.js +39 -0
  332. package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -0
  333. package/dist/components/sheet/SheetClose/index.d.ts +1 -0
  334. package/dist/components/sheet/SheetContent/SheetContent.d.ts +6 -0
  335. package/dist/components/sheet/SheetContent/SheetContent.js +48 -0
  336. package/dist/components/sheet/SheetContent/SheetContent.js.map +1 -0
  337. package/dist/components/sheet/SheetContent/SheetContent.styles.d.ts +10 -0
  338. package/dist/components/sheet/SheetContent/SheetContent.styles.js +17 -0
  339. package/dist/components/sheet/SheetContent/SheetContent.styles.js.map +1 -0
  340. package/dist/components/sheet/SheetContent/index.d.ts +1 -0
  341. package/dist/components/sheet/SheetDescription/SheetDescription.d.ts +2 -0
  342. package/dist/components/sheet/SheetDescription/SheetDescription.js +25 -0
  343. package/dist/components/sheet/SheetDescription/SheetDescription.js.map +1 -0
  344. package/dist/components/sheet/SheetDescription/SheetDescription.styles.d.ts +1 -0
  345. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js +6 -0
  346. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js.map +1 -0
  347. package/dist/components/sheet/SheetDescription/index.d.ts +1 -0
  348. package/dist/components/sheet/SheetFooter/SheetFooter.d.ts +2 -0
  349. package/dist/components/sheet/SheetFooter/SheetFooter.js +24 -0
  350. package/dist/components/sheet/SheetFooter/SheetFooter.js.map +1 -0
  351. package/dist/components/sheet/SheetFooter/index.d.ts +1 -0
  352. package/dist/components/sheet/SheetHeader/SheetHeader.d.ts +2 -0
  353. package/dist/components/sheet/SheetHeader/SheetHeader.js +24 -0
  354. package/dist/components/sheet/SheetHeader/SheetHeader.js.map +1 -0
  355. package/dist/components/sheet/SheetHeader/index.d.ts +1 -0
  356. package/dist/components/sheet/SheetTitle/SheetTitle.d.ts +3 -0
  357. package/dist/components/sheet/SheetTitle/SheetTitle.js +25 -0
  358. package/dist/components/sheet/SheetTitle/SheetTitle.js.map +1 -0
  359. package/dist/components/sheet/SheetTitle/SheetTitle.styles.d.ts +1 -0
  360. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js +6 -0
  361. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js.map +1 -0
  362. package/dist/components/sheet/SheetTitle/index.d.ts +1 -0
  363. package/dist/components/sheet/SheetTrigger/SheetTrigger.d.ts +8 -0
  364. package/dist/components/sheet/SheetTrigger/SheetTrigger.js +32 -0
  365. package/dist/components/sheet/SheetTrigger/SheetTrigger.js.map +1 -0
  366. package/dist/components/sheet/SheetTrigger/index.d.ts +1 -0
  367. package/dist/components/sheet/index.d.ts +9 -0
  368. package/dist/components/sheet/index.js +9 -0
  369. package/dist/components/sheet/sheet.types.d.ts +19 -0
  370. package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
  371. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +5 -49
  372. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +10 -39
  373. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
  374. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +6 -5
  375. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  376. package/dist/hooks/useScrollEdges.d.ts +3 -0
  377. package/dist/hooks/useScrollEdges.js +18 -16
  378. package/dist/hooks/useScrollEdges.js.map +1 -1
  379. package/dist/index.d.ts +9 -0
  380. package/dist/index.js +253 -193
  381. package/dist/lib/positioner/index.d.ts +1 -0
  382. package/dist/lib/positioner/utils/floating.d.ts +25 -0
  383. package/dist/lib/positioner/utils/floating.js +42 -0
  384. package/dist/lib/positioner/utils/floating.js.map +1 -0
  385. package/dist/ui.css +1 -1
  386. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"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,3 @@
1
+ import { QuestionnaireItemProps } from '../questionnaire.types';
2
+ /** 单个题目:fieldset,非激活时 hidden + inert,并向 Root 注册命令式句柄 */
3
+ export declare function QuestionnaireItem(props: QuestionnaireItemProps): import('solid-js').JSX.Element;
@@ -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,4 @@
1
+ import { JSX } from 'solid-js';
2
+ import { QuestionnaireProgressProps } from '../questionnaire.types';
3
+ /** 进度(默认显示 "Question X of Y");children 传函数可拿到 render state 自绘 */
4
+ export declare function QuestionnaireProgress(props: QuestionnaireProgressProps): JSX.Element;
@@ -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"}