@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,68 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { QuestionnaireRootContext as t } from "../questionnaire.context.js";
3
+ import { useQuestionnaireRoot as n } from "../useQuestionnaireRoot.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 { createSignal as l, mergeProps as u, onCleanup as d, splitProps as f } from "solid-js";
6
+ //#region src/components/questionnaire/Questionnaire/Questionnaire.tsx
7
+ var p = /*#__PURE__*/ s("<form>");
8
+ function m(s) {
9
+ let m = u({ noValidate: !0 }, s), [h, g] = f(m, [
10
+ "class",
11
+ "classList",
12
+ "children",
13
+ "defaultItem",
14
+ "item",
15
+ "items",
16
+ "onItemChange",
17
+ "shortcuts",
18
+ "noValidate",
19
+ "onReset",
20
+ "onSubmit"
21
+ ]), [_, v] = l(), { context: y, formProps: b } = n({
22
+ item: () => h.item,
23
+ defaultItem: () => h.defaultItem,
24
+ items: () => h.items,
25
+ shortcuts: () => h.shortcuts,
26
+ noValidate: () => h.noValidate,
27
+ onItemChange: (e) => h.onItemChange?.(e),
28
+ onReset: (e) => h.onReset?.(e),
29
+ onSubmit: (e) => h.onSubmit?.(e),
30
+ formRef: _
31
+ });
32
+ return r(t.Provider, {
33
+ value: y,
34
+ get children() {
35
+ var t = p();
36
+ return c((e) => {
37
+ v(e), d(() => v(void 0));
38
+ }, t), o(t, a(g, {
39
+ get noValidate() {
40
+ return h.noValidate;
41
+ },
42
+ "data-slot": "questionnaire",
43
+ get "data-shortcuts"() {
44
+ return b["data-shortcuts"];
45
+ },
46
+ get onKeyDown() {
47
+ return b.onKeyDown;
48
+ },
49
+ get onSubmit() {
50
+ return b.onSubmit;
51
+ },
52
+ get onReset() {
53
+ return b.onReset;
54
+ },
55
+ get class() {
56
+ return e("flex w-full min-w-0 flex-col gap-4", h.class);
57
+ },
58
+ get classList() {
59
+ return h.classList;
60
+ }
61
+ }), !1, !0), i(t, () => h.children), t;
62
+ }
63
+ });
64
+ }
65
+ //#endregion
66
+ export { m as Questionnaire };
67
+
68
+ //# sourceMappingURL=Questionnaire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Questionnaire.js","names":["createSignal","mergeProps","onCleanup","splitProps","clsx","QuestionnaireRootContext","useQuestionnaireRoot","QuestionnaireProps","Questionnaire","props","merged","noValidate","local","rest","form","setForm","HTMLFormElement","context","formProps","item","defaultItem","items","shortcuts","onItemChange","onReset","event","onSubmit","formRef","_$createComponent","Provider","value","children","_el$","_tmpl$","_$use","el","undefined","_$spread","_$mergeProps","data-shortcuts","onKeyDown","class","classList","_$insert","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","_tmpl$","Questionnaire","merged","props","local","rest","splitProps","form","setForm","createSignal","useQuestionnaireRoot","item","event","createComponent","QuestionnaireRootContext","context","_el$","use","el","onCleanup","spread","mergeProps","formProps","\"class\"","clsx","insert"],"sources":["../../../../src/components/questionnaire/Questionnaire/Questionnaire.tsx"],"sourcesContent":["import { createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { QuestionnaireRootContext } from \"../questionnaire.context\";\nimport { useQuestionnaireRoot } from \"../useQuestionnaireRoot\";\nimport type { QuestionnaireProps } from \"../questionnaire.types\";\n\n/** Questionnaire 根:渲染 form,持有进度、激活项、校验与导航状态 */\nexport function Questionnaire(props: QuestionnaireProps) {\n const merged = mergeProps({ noValidate: true }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"children\",\n \"defaultItem\",\n \"item\",\n \"items\",\n \"onItemChange\",\n \"shortcuts\",\n \"noValidate\",\n \"onReset\",\n \"onSubmit\",\n ]);\n\n const [form, setForm] = createSignal<HTMLFormElement>();\n const { context, formProps } = useQuestionnaireRoot({\n item: () => local.item,\n defaultItem: () => local.defaultItem,\n items: () => local.items,\n shortcuts: () => local.shortcuts,\n noValidate: () => local.noValidate,\n onItemChange: (item) => local.onItemChange?.(item),\n onReset: (event) => local.onReset?.(event),\n onSubmit: (event) => local.onSubmit?.(event),\n formRef: form,\n });\n\n return (\n <QuestionnaireRootContext.Provider value={context}>\n <form\n {...rest}\n ref={(el) => {\n setForm(el);\n onCleanup(() => setForm(undefined));\n }}\n noValidate={local.noValidate}\n data-slot=\"questionnaire\"\n data-shortcuts={formProps[\"data-shortcuts\"]}\n onKeyDown={formProps.onKeyDown}\n onSubmit={formProps.onSubmit}\n onReset={formProps.onReset}\n class={clsx(\"flex w-full min-w-0 flex-col gap-4\", local.class)}\n classList={local.classList}\n >\n {local.children}\n </form>\n </QuestionnaireRootContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAOA,SAAgBQ,EAAcC,GAA2B;CACvD,IAAMC,IAAST,EAAW,EAAEU,YAAY,GAAK,GAAGF,CAAK,GAC/C,CAACG,GAAOC,KAAQV,EAAWO,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEK,CAACI,GAAMC,KAAWf,EAA8B,GAChD,EAAEiB,YAASC,iBAAcZ,EAAqB;EAClDa,YAAYP,EAAMO;EAClBC,mBAAmBR,EAAMQ;EACzBC,aAAaT,EAAMS;EACnBC,iBAAiBV,EAAMU;EACvBX,kBAAkBC,EAAMD;EACxBY,eAAeJ,MAASP,EAAMW,eAAeJ,CAAI;EACjDK,UAAUC,MAAUb,EAAMY,UAAUC,CAAK;EACzCC,WAAWD,MAAUb,EAAMc,WAAWD,CAAK;EAC3CE,SAASb;CACX,CAAC;CAED,OAAAc,EACGvB,EAAyBwB,UAAQ;EAACC,OAAOb;EAAO,IAAAc,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAgB9B,OAhB8BC,GAGvCC,MAAO;IAEXjC,AADAa,EAAQoB,CAAE,GACVjC,QAAgBa,EAAQqB,KAAAA,CAAS,CAAC;GACpC,GAACJ,CAAA,GAAAK,EAAAL,GAAAM,EAJGzB,GAAI;IAAA,IAKRF,aAAU;KAAA,OAAEC,EAAMD;IAAU;IAAA,aAClB;IAAe,IAAA,mBAAA;KAAA,OACTO,EAAU;IAAiB;IAAA,IAC3CsB,YAAS;KAAA,OAAEtB,EAAUsB;IAAS;IAAA,IAC9Bd,WAAQ;KAAA,OAAER,EAAUQ;IAAQ;IAAA,IAC5BF,UAAO;KAAA,OAAEN,EAAUM;IAAO;IAAA,IAAA+C,QAAA;KAAA,OACnBnE,EAAK,sCAAsCQ,EAAM6B,KAAK;IAAC;IAAA,IAC9DC,YAAS;KAAA,OAAE9B,EAAM8B;IAAS;GAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAX,SAEzBpB,EAAMmB,QAAQ,GAAAC;EAAA;CAAA,CAAA;AAIvB"}
@@ -0,0 +1 @@
1
+ export { Questionnaire } from './Questionnaire';
@@ -0,0 +1,3 @@
1
+ import { QuestionnaireChoicesProps } from '../questionnaire.types';
2
+ /** 底部操作区:Previous 左对齐,Skip/Next/Submit 右对齐 */
3
+ export declare function QuestionnaireActions(props: QuestionnaireChoicesProps): import('solid-js').JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { mergeProps as t, spread as n, template as r } from "solid-js/web";
3
+ import { splitProps as i } from "solid-js";
4
+ //#region src/components/questionnaire/QuestionnaireActions/QuestionnaireActions.tsx
5
+ var a = /*#__PURE__*/ r("<div>");
6
+ function o(r) {
7
+ let [o, s] = i(r, ["class", "classList"]);
8
+ return (() => {
9
+ var r = a();
10
+ return n(r, t(s, {
11
+ "data-slot": "questionnaire-actions",
12
+ get class() {
13
+ return e("grid min-h-11 w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2 sm:min-h-8", o.class);
14
+ },
15
+ get classList() {
16
+ return o.classList;
17
+ }
18
+ }), !1, !1), r;
19
+ })();
20
+ }
21
+ //#endregion
22
+ export { o as QuestionnaireActions };
23
+
24
+ //# sourceMappingURL=QuestionnaireActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionnaireActions.js","names":["splitProps","clsx","QuestionnaireChoicesProps","QuestionnaireActions","props","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","class","classList","_$mergeProps","_tmpl$","QuestionnaireActions","local","rest","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireActions/QuestionnaireActions.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { QuestionnaireChoicesProps } from \"../questionnaire.types\";\n\n/** 底部操作区:Previous 左对齐,Skip/Next/Submit 右对齐 */\nexport function QuestionnaireActions(props: QuestionnaireChoicesProps) {\n const [local, rest] = splitProps(props, [\"class\", \"classList\"]);\n return (\n <div\n {...rest}\n data-slot=\"questionnaire-actions\"\n class={clsx(\n \"grid min-h-11 w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2 sm:min-h-8\",\n local.class,\n )}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;;AAKA,SAAgBG,EAAqBC,GAAkC;CACrE,IAAM,CAACC,GAAOC,KAAQN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAC9D,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQ8B,OAR9BC,EAAAF,GAAAG,EAEQJ,GAAI;GAAA,aACE;GAAuB,IAAAiB,QAAA;IAAA,OAC1BtB,EACL,0FACAI,EAAMM,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAEP,EAAMO;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAL;CAAA,EAAA,CAAA;AAGhC"}
@@ -0,0 +1 @@
1
+ export { QuestionnaireActions } from './QuestionnaireActions';
@@ -0,0 +1,3 @@
1
+ import { QuestionnaireChoiceProps } from '../questionnaire.types';
2
+ /** 固定选项:原生 radio/checkbox(视觉隐藏) + 自绘指示器 + 文字 + 快捷键徽标 */
3
+ export declare function QuestionnaireChoice(props: QuestionnaireChoiceProps): import('solid-js').JSX.Element;
@@ -0,0 +1,99 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useQuestionnaireItemContext as t } from "../questionnaire.context.js";
3
+ import { useQuestionnaireChoice as n } from "./useQuestionnaireChoice.js";
4
+ import { addEventListener as r, className as i, createComponent as a, effect as o, insert as s, mergeProps as c, setAttribute as l, spread as u, template as d, use as f } from "solid-js/web";
5
+ import { Show as p, splitProps as m } from "solid-js";
6
+ import { Check as h } from "lucide-solid";
7
+ //#region src/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.tsx
8
+ var g = /*#__PURE__*/ d("<label><input data-slot=questionnaire-choice-input class=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0\"><span aria-hidden=true data-slot=questionnaire-choice-indicator></span><span data-slot=questionnaire-choice-content class=\"flex min-w-0 flex-1 flex-col gap-0.5 leading-snug\">"), _ = /*#__PURE__*/ d("<span data-slot=questionnaire-choice-indicator-dot class=\"size-2 rounded-full bg-primary-foreground\">"), v = /*#__PURE__*/ d("<span aria-hidden=true data-slot=questionnaire-shortcut class=\"pointer-events-none ms-auto inline-flex size-5 shrink-0 translate-y-[calc(var(--spacing)*0.45)] items-center justify-center rounded-md border border-input bg-background font-mono text-[0.625rem] leading-none font-medium text-muted-foreground\">"), y = "group/questionnaire-choice relative flex min-h-11 cursor-pointer items-start gap-2.5 rounded-lg border border-input bg-transparent px-3 py-2.5 text-sm text-start transition-colors outline-none select-none hover:bg-muted/50 data-[checked]:border-primary/40 data-[checked]:bg-muted data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[invalid]:border-destructive has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50 dark:bg-input/20 dark:data-[checked]:bg-muted";
9
+ function b(d) {
10
+ let b = t("QuestionnaireChoice"), [x, S] = m(d, [
11
+ "value",
12
+ "checked",
13
+ "defaultChecked",
14
+ "disabled",
15
+ "onChange",
16
+ "class",
17
+ "classList",
18
+ "children"
19
+ ]), C = n({
20
+ value: x.value,
21
+ checked: () => x.checked,
22
+ defaultChecked: () => x.defaultChecked ?? !1,
23
+ disabled: () => !!x.disabled,
24
+ onChange: (e) => x.onChange?.(e)
25
+ }), w = () => C.checkedResolved();
26
+ return (() => {
27
+ var t = g(), n = t.firstChild, d = n.nextSibling, m = d.nextSibling;
28
+ u(t, c(S, {
29
+ "data-slot": "questionnaire-choice",
30
+ get "data-checked"() {
31
+ return w() ? "" : void 0;
32
+ },
33
+ get "data-unchecked"() {
34
+ return w() ? void 0 : "";
35
+ },
36
+ get "data-disabled"() {
37
+ return C.isDisabled() ? "" : void 0;
38
+ },
39
+ get "data-invalid"() {
40
+ return b.invalid() ? "" : void 0;
41
+ },
42
+ get "data-type"() {
43
+ return C.type();
44
+ },
45
+ get "data-shortcut"() {
46
+ return C.shortcut() ?? void 0;
47
+ },
48
+ get class() {
49
+ return e(y, x.class);
50
+ },
51
+ get classList() {
52
+ return x.classList;
53
+ }
54
+ }), !1, !0), r(n, "change", C.handleChange);
55
+ var T = C.setInput;
56
+ return typeof T == "function" ? f(T, n) : C.setInput = n, s(d, a(p, {
57
+ get when() {
58
+ return w();
59
+ },
60
+ get children() {
61
+ return a(p, {
62
+ get when() {
63
+ return C.type() === "checkbox";
64
+ },
65
+ get fallback() {
66
+ return _();
67
+ },
68
+ get children() {
69
+ return a(h, { class: "size-3.5" });
70
+ }
71
+ });
72
+ }
73
+ })), s(m, () => x.children), s(t, a(p, {
74
+ get when() {
75
+ return C.shortcut();
76
+ },
77
+ children: (e) => (() => {
78
+ var t = v();
79
+ return s(t, e), t;
80
+ })()
81
+ }), null), o((t) => {
82
+ var r = C.id, a = C.type(), o = C.name(), s = C.isDisabled(), c = C.required(), u = b.invalid() || void 0, f = C.ariaKeyShortcuts(), p = e("pointer-events-none relative flex size-4 shrink-0 translate-y-[calc(var(--spacing)*0.45)] items-center justify-center border group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5", C.type() === "radio" ? "rounded-full" : "rounded-[4px]", w() ? "border-primary bg-primary text-primary-foreground" : "border-input dark:bg-input/30");
83
+ return r !== t.e && l(n, "id", t.e = r), a !== t.t && l(n, "type", t.t = a), o !== t.a && l(n, "name", t.a = o), s !== t.o && (n.disabled = t.o = s), c !== t.i && (n.required = t.i = c), u !== t.n && l(n, "aria-invalid", t.n = u), f !== t.s && l(n, "aria-keyshortcuts", t.s = f), p !== t.h && i(d, t.h = p), t;
84
+ }, {
85
+ e: void 0,
86
+ t: void 0,
87
+ a: void 0,
88
+ o: void 0,
89
+ i: void 0,
90
+ n: void 0,
91
+ s: void 0,
92
+ h: void 0
93
+ }), o(() => n.value = x.value), o(() => n.checked = w()), t;
94
+ })();
95
+ }
96
+ //#endregion
97
+ export { b as QuestionnaireChoice };
98
+
99
+ //# sourceMappingURL=QuestionnaireChoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionnaireChoice.js","names":["Show","splitProps","Check","clsx","useQuestionnaireItemContext","useQuestionnaireChoice","QuestionnaireChoiceProps","labelClasses","shortcutClasses","QuestionnaireChoice","props","item","local","rest","choice","value","checked","defaultChecked","disabled","onChange","event","checkedResolved","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_$spread","_$mergeProps","data-checked","undefined","data-unchecked","data-disabled","isDisabled","data-invalid","invalid","data-type","type","data-shortcut","shortcut","class","classList","_$addEventListener","handleChange","_ref$","setInput","_$use","_$insert","_$createComponent","when","children","fallback","_tmpl$2","_el$6","_tmpl$3","_$effect","_p$","_v$","id","_v$2","_v$3","name","_v$4","_v$5","required","_v$6","_v$7","ariaKeyShortcuts","_v$8","e","_$setAttribute","t","a","o","i","n","s","h","_$className","_$mergeProps","_$use","_$createComponent","_$setAttribute","_$className","_tmpl$","_tmpl$2","_tmpl$3","labelClasses","QuestionnaireChoice","item","useQuestionnaireItemContext","local","rest","splitProps","props","choice","useQuestionnaireChoice","event","checked","_el$","_el$2","_el$3","_el$4","spread","mergeProps","\"class\"","clsx","addEventListener","_ref$","use","insert","createComponent","Show","Check","_el$6","shortcut","effect","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","_v$7","_v$8","_p$","setAttribute","className"],"sources":["../../../../src/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.tsx"],"sourcesContent":["import { Show, splitProps } from \"solid-js\";\nimport { Check } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport { useQuestionnaireChoice } from \"./useQuestionnaireChoice\";\nimport type { QuestionnaireChoiceProps } from \"../questionnaire.types\";\n\n// 类名来自 shadcn base/nova 的 cn-questionnaire-choice 等 token(见 style-nova.css)\nconst labelClasses =\n \"group/questionnaire-choice relative flex min-h-11 cursor-pointer items-start gap-2.5 rounded-lg border border-input bg-transparent px-3 py-2.5 text-sm text-start transition-colors outline-none select-none hover:bg-muted/50 data-[checked]:border-primary/40 data-[checked]:bg-muted data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[invalid]:border-destructive has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50 dark:bg-input/20 dark:data-[checked]:bg-muted\";\n\nconst shortcutClasses =\n \"pointer-events-none ms-auto inline-flex size-5 shrink-0 translate-y-[calc(var(--spacing)*0.45)] items-center justify-center rounded-md border border-input bg-background font-mono text-[0.625rem] leading-none font-medium text-muted-foreground\";\n\n/** 固定选项:原生 radio/checkbox(视觉隐藏) + 自绘指示器 + 文字 + 快捷键徽标 */\nexport function QuestionnaireChoice(props: QuestionnaireChoiceProps) {\n const item = useQuestionnaireItemContext(\"QuestionnaireChoice\");\n const [local, rest] = splitProps(props, [\n \"value\",\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"onChange\",\n \"class\",\n \"classList\",\n \"children\",\n ]);\n\n const choice = useQuestionnaireChoice({\n value: local.value,\n checked: () => local.checked,\n defaultChecked: () => local.defaultChecked ?? false,\n disabled: () => !!local.disabled,\n onChange: (event) => local.onChange?.(event),\n });\n\n const checked = () => choice.checkedResolved();\n\n return (\n <label\n {...rest}\n data-slot=\"questionnaire-choice\"\n data-checked={checked() ? \"\" : undefined}\n data-unchecked={checked() ? undefined : \"\"}\n data-disabled={choice.isDisabled() ? \"\" : undefined}\n data-invalid={item.invalid() ? \"\" : undefined}\n data-type={choice.type()}\n data-shortcut={choice.shortcut() ?? undefined}\n class={clsx(labelClasses, local.class)}\n classList={local.classList}\n >\n <input\n ref={choice.setInput}\n id={choice.id}\n type={choice.type()}\n name={choice.name()}\n value={local.value}\n checked={checked()}\n disabled={choice.isDisabled()}\n required={choice.required()}\n aria-invalid={item.invalid() || undefined}\n aria-keyshortcuts={choice.ariaKeyShortcuts()}\n onChange={choice.handleChange}\n data-slot=\"questionnaire-choice-input\"\n class=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0\"\n />\n <span\n aria-hidden=\"true\"\n data-slot=\"questionnaire-choice-indicator\"\n class={clsx(\n \"pointer-events-none relative flex size-4 shrink-0 translate-y-[calc(var(--spacing)*0.45)] items-center justify-center border group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5\",\n choice.type() === \"radio\" ? \"rounded-full\" : \"rounded-[4px]\",\n checked()\n ? \"border-primary bg-primary text-primary-foreground\"\n : \"border-input dark:bg-input/30\",\n )}\n >\n <Show when={checked()}>\n <Show\n when={choice.type() === \"checkbox\"}\n fallback={\n <span\n data-slot=\"questionnaire-choice-indicator-dot\"\n class=\"size-2 rounded-full bg-primary-foreground\"\n />\n }\n >\n <Check class=\"size-3.5\" />\n </Show>\n </Show>\n </span>\n <span\n data-slot=\"questionnaire-choice-content\"\n class=\"flex min-w-0 flex-1 flex-col gap-0.5 leading-snug\"\n >\n {local.children}\n </span>\n <Show when={choice.shortcut()}>\n {(shortcut) => (\n <span\n aria-hidden=\"true\"\n data-slot=\"questionnaire-shortcut\"\n class={shortcutClasses}\n >\n {shortcut()}\n </span>\n )}\n </Show>\n </label>\n );\n}\n"],"mappings":";;;;;;;gxBAQMO,IACJ;AAMF,SAAgBE,EAAoBC,GAAiC;CACnE,IAAMC,IAAOP,EAA4B,qBAAqB,GACxD,CAACQ,GAAOC,KAAQZ,EAAWS,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKI,IAAST,EAAuB;EACpCU,OAAOH,EAAMG;EACbC,eAAeJ,EAAMI;EACrBC,sBAAsBL,EAAMK,kBAAkB;EAC9CC,gBAAgB,CAAC,CAACN,EAAMM;EACxBC,WAAWC,MAAUR,EAAMO,WAAWC,CAAK;CAC7C,CAAC,GAEKJ,UAAgBF,EAAOO,gBAAgB;CAE7C,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAG,aAAAC,IAAAF,EAAAC;EAW8BiB,AAX9Bf,EAAAP,GAAAQ,EAEQjB,GAAI;GAAA,aACE;GAAsB,IAAA,iBAAA;IAAA,OAClBG,EAAQ,IAAI,KAAKgB,KAAAA;GAAS;GAAA,IAAA,mBAAA;IAAA,OACxBhB,EAAQ,IAAIgB,KAAAA,IAAY;GAAE;GAAA,IAAA,kBAAA;IAAA,OAC3BlB,EAAOqB,WAAW,IAAI,KAAKH,KAAAA;GAAS;GAAA,IAAA,iBAAA;IAAA,OACrCrB,EAAK0B,QAAQ,IAAI,KAAKL,KAAAA;GAAS;GAAA,IAAA,cAAA;IAAA,OAClClB,EAAOyB,KAAK;GAAC;GAAA,IAAA,kBAAA;IAAA,OACTzB,EAAO2B,SAAS,KAAKT,KAAAA;GAAS;GAAA,IAAA2E,QAAA;IAAA,OACtCxG,EAAKI,GAAcK,EAAM8B,KAAK;GAAC;GAAA,IACtCC,YAAS;IAAA,OAAE/B,EAAM+B;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAApB,GAAA,UAadV,EAAO+B,YAAY;EAAA,IAAAC,IAVxBhC,EAAOiC;EAKM,OALE,OAAAD,KAAA,aAAAE,EAAAF,GAAAtB,CAAA,IAAfV,EAAOiC,WAAQvB,GAAAyB,EAAAvB,GAAAwB,EAyBnBlD,GAAI;GAAA,IAACmD,OAAI;IAAA,OAAEnC,EAAQ;GAAC;GAAA,IAAAoC,WAAA;IAAA,OAAAF,EAClBlD,GAAI;KAAA,IACHmD,OAAI;MAAA,OAAErC,EAAOyB,KAAK,MAAM;KAAU;KAAA,IAClCc,WAAQ;MAAA,OAAAC,EAAA;KAAA;KAAA,IAAAF,WAAA;MAAA,OAAAF,EAOPhD,GAAK,EAAAyG,OAAA,WAAA,CAAA;KAAA;IAAA,CAAA;GAAA;EAAA,CAAA,CAAA,GAAA1D,EAAArB,SAQThB,EAAMwC,QAAQ,GAAAH,EAAA3B,GAAA4B,EAEhBlD,GAAI;GAAA,IAACmD,OAAI;IAAA,OAAErC,EAAO2B,SAAS;GAAC;GAAAW,WACzBX,aAAQ;IAAA,IAAAc,IAAAC,EAAA;IAMG,OANHP,EAAAM,GAMLd,CAAQ,GAAAc;GAAA,EAAA,CAAA;EAEZ,CAAA,GAAA,IAAA,GAAAE,GAAAC,MAAA;GAAA,IAAAC,IArDG7C,EAAO8C,IAAEC,IACP/C,EAAOyB,KAAK,GAACuB,IACbhD,EAAOiD,KAAK,GAACC,IAGTlD,EAAOqB,WAAW,GAAC8B,IACnBnD,EAAOoD,SAAS,GAACC,IACbxD,EAAK0B,QAAQ,KAAKL,KAAAA,GAASoC,IACtBtD,EAAOuD,iBAAiB,GAACC,IAQrCnE,EACL,4NACAW,EAAOyB,KAAK,MAAM,UAAU,iBAAiB,iBAC7CvB,EAAQ,IACJ,sDACA,+BACN;GAAC,OAAA2C,MAAAD,EAAAa,KAAAC,EAAAhD,GAAA,MAAAkC,EAAAa,IAAAZ,CAAA,GAAAE,MAAAH,EAAAe,KAAAD,EAAAhD,GAAA,QAAAkC,EAAAe,IAAAZ,CAAA,GAAAC,MAAAJ,EAAAgB,KAAAF,EAAAhD,GAAA,QAAAkC,EAAAgB,IAAAZ,CAAA,GAAAE,MAAAN,EAAAiB,MAAAnD,EAAAN,WAAAwC,EAAAiB,IAAAX,IAAAC,MAAAP,EAAAkB,MAAApD,EAAA0C,WAAAR,EAAAkB,IAAAX,IAAAE,MAAAT,EAAAmB,KAAAL,EAAAhD,GAAA,gBAAAkC,EAAAmB,IAAAV,CAAA,GAAAC,MAAAV,EAAAoB,KAAAN,EAAAhD,GAAA,qBAAAkC,EAAAoB,IAAAV,CAAA,GAAAE,MAAAZ,EAAAqB,KAAAC,EAAAtD,GAAAgC,EAAAqB,IAAAT,CAAA,GAAAZ;EAAA,GAAA;GAAAa,GAAAvC,KAAAA;GAAAyC,GAAAzC,KAAAA;GAAA0C,GAAA1C,KAAAA;GAAA2C,GAAA3C,KAAAA;GAAA4C,GAAA5C,KAAAA;GAAA6C,GAAA7C,KAAAA;GAAA8C,GAAA9C,KAAAA;GAAA+C,GAAA/C,KAAAA;EAAA,CAAA,GAAAyB,QAAAjC,EAAAT,QAnBMH,EAAMG,KAAK,GAAA0C,QAAAjC,EAAAR,UACTA,EAAQ,CAAC,GAAAM;CAAA,EAAA,CAAA;AAqD1B"}
@@ -0,0 +1 @@
1
+ export { QuestionnaireChoice } from './QuestionnaireChoice';
@@ -0,0 +1,38 @@
1
+ import { Accessor } from 'solid-js';
2
+ interface Options {
3
+ value: string;
4
+ checked?: Accessor<boolean | undefined>;
5
+ defaultChecked?: Accessor<boolean>;
6
+ disabled?: Accessor<boolean>;
7
+ onChange?: (event: Event) => void;
8
+ }
9
+ /**
10
+ * 固定选项的状态:选中由 Item 的选中集合驱动(受控时用 checked),
11
+ * 同时把 input 注册成 Item 的 answer control,以便校验与快捷键。
12
+ */
13
+ export declare function useQuestionnaireChoice(options: Options): {
14
+ id: string;
15
+ setInput: import('solid-js').Setter<HTMLInputElement | undefined>;
16
+ type: () => "checkbox" | "radio";
17
+ isDisabled: () => boolean;
18
+ shortcut: () => string | null;
19
+ checkedResolved: () => boolean;
20
+ handleChange: (event: Event) => void;
21
+ invalid: Accessor<boolean>;
22
+ required: () => boolean;
23
+ name: () => string | undefined;
24
+ ariaKeyShortcuts: () => string | undefined;
25
+ inputProps: () => {
26
+ "aria-keyshortcuts": string | undefined;
27
+ "aria-invalid": true | undefined;
28
+ checked: boolean;
29
+ disabled: boolean;
30
+ id: string;
31
+ name: string | undefined;
32
+ onChange: (event: Event) => void;
33
+ required: boolean;
34
+ type: string;
35
+ value: string;
36
+ };
37
+ };
38
+ export {};
@@ -0,0 +1,67 @@
1
+ import { useQuestionnaireItemContext as e } from "../questionnaire.context.js";
2
+ import { keyShortcutText as t } from "../questionnaire.utils.js";
3
+ import { createEffect as n, createSignal as r, createUniqueId as i, onCleanup as a } from "solid-js";
4
+ //#region src/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.ts
5
+ function o(o) {
6
+ let s = e("QuestionnaireChoice"), c = i(), [l, u] = r(), d = () => s.disabled() || !!o.disabled?.(), f = () => s.multiple() ? "checkbox" : "radio", p = () => s.shortcutByChoiceValue()?.get(o.value) ?? s.shortcutByAnswerId().get(c) ?? null;
7
+ a(s.registerAnswerSelection(c, !!o.defaultChecked?.())), n(() => s.setAnswerDefault(c, !!o.defaultChecked?.())), n(() => {
8
+ let e = l();
9
+ if (!e) return;
10
+ let t = s.registerAnswerControl({
11
+ id: c,
12
+ element: e,
13
+ type: "choice",
14
+ value: o.value,
15
+ disabled: d(),
16
+ ownDisabled: !!o.disabled?.()
17
+ });
18
+ a(t);
19
+ });
20
+ let m = () => {
21
+ let e = o.checked?.();
22
+ return e === void 0 ? s.selectedAnswerIds().includes(c) : s.status() !== "skipped" && e;
23
+ };
24
+ n(() => {
25
+ let e = l(), t = o.checked?.();
26
+ s.resetVersion(), e && t !== void 0 && s.syncControlledAnswerSelection(c, t), e && (e.checked = m());
27
+ });
28
+ let h = (e) => {
29
+ let t = e.target;
30
+ if (o.onChange?.(e), e.defaultPrevented) return;
31
+ let n = o.checked?.();
32
+ if (n === void 0) {
33
+ s.setAnswerSelectionFromInteraction(c, t.checked);
34
+ return;
35
+ }
36
+ s.status() === "skipped" && n === t.checked && s.setAnswerSelectionFromInteraction(c, n);
37
+ };
38
+ return {
39
+ id: c,
40
+ setInput: u,
41
+ type: f,
42
+ isDisabled: d,
43
+ shortcut: p,
44
+ checkedResolved: m,
45
+ handleChange: h,
46
+ invalid: s.invalid,
47
+ required: () => s.required() && !s.multiple() && !s.hasInputAnswer(),
48
+ name: () => s.status() === "skipped" ? void 0 : s.name,
49
+ ariaKeyShortcuts: () => t(p(), !d() && m()),
50
+ inputProps: () => ({
51
+ "aria-keyshortcuts": t(p(), !d() && m()),
52
+ "aria-invalid": s.invalid() || void 0,
53
+ checked: m(),
54
+ disabled: d(),
55
+ id: c,
56
+ name: s.status() === "skipped" ? void 0 : s.name,
57
+ onChange: h,
58
+ required: s.required() && !s.multiple() && !s.hasInputAnswer(),
59
+ type: f(),
60
+ value: o.value
61
+ })
62
+ };
63
+ }
64
+ //#endregion
65
+ export { o as useQuestionnaireChoice };
66
+
67
+ //# sourceMappingURL=useQuestionnaireChoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuestionnaireChoice.js","names":["useQuestionnaireChoice","item","useQuestionnaireItemContext","id","createUniqueId","input","setInput","createSignal","isDisabled","options","type","shortcut","onCleanup","createEffect","element","unregister","checkedResolved","controlled","handleChange","target","event","keyShortcutText"],"sources":["../../../../src/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.ts"],"sourcesContent":["import {\n createEffect,\n createSignal,\n createUniqueId,\n onCleanup,\n type Accessor,\n} from \"solid-js\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport { keyShortcutText } from \"../questionnaire.utils\";\n\ninterface Options {\n value: string;\n checked?: Accessor<boolean | undefined>;\n defaultChecked?: Accessor<boolean>;\n disabled?: Accessor<boolean>;\n onChange?: (event: Event) => void;\n}\n\n/**\n * 固定选项的状态:选中由 Item 的选中集合驱动(受控时用 checked),\n * 同时把 input 注册成 Item 的 answer control,以便校验与快捷键。\n */\nexport function useQuestionnaireChoice(options: Options) {\n const item = useQuestionnaireItemContext(\"QuestionnaireChoice\");\n const id = createUniqueId();\n const [input, setInput] = createSignal<HTMLInputElement>();\n\n const isDisabled = () => item.disabled() || !!options.disabled?.();\n const type = () => (item.multiple() ? \"checkbox\" : \"radio\");\n const shortcut = () =>\n item.shortcutByChoiceValue()?.get(options.value) ??\n item.shortcutByAnswerId().get(id) ??\n null;\n\n onCleanup(item.registerAnswerSelection(id, !!options.defaultChecked?.()));\n createEffect(() => item.setAnswerDefault(id, !!options.defaultChecked?.()));\n\n createEffect(() => {\n const element = input();\n if (!element) return;\n const unregister = item.registerAnswerControl({\n id,\n element,\n type: \"choice\",\n value: options.value,\n disabled: isDisabled(),\n ownDisabled: !!options.disabled?.(),\n });\n onCleanup(unregister);\n });\n\n const checkedResolved = () => {\n const controlled = options.checked?.();\n if (controlled !== undefined) {\n return item.status() === \"skipped\" ? false : controlled;\n }\n return item.selectedAnswerIds().includes(id);\n };\n\n // 受控同步 + reset 后强制同步 DOM checked\n createEffect(() => {\n const element = input();\n const controlled = options.checked?.();\n item.resetVersion();\n if (element && controlled !== undefined) {\n item.syncControlledAnswerSelection(id, controlled);\n }\n if (element) element.checked = checkedResolved();\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 controlled = options.checked?.();\n if (controlled === undefined) {\n item.setAnswerSelectionFromInteraction(id, target.checked);\n return;\n }\n if (item.status() === \"skipped\" && controlled === target.checked) {\n item.setAnswerSelectionFromInteraction(id, controlled);\n }\n };\n\n return {\n id,\n setInput,\n type,\n isDisabled,\n shortcut,\n checkedResolved,\n handleChange,\n invalid: item.invalid,\n required: () =>\n item.required() && !item.multiple() && !item.hasInputAnswer(),\n name: () => (item.status() === \"skipped\" ? undefined : item.name),\n ariaKeyShortcuts: () =>\n keyShortcutText(shortcut(), !isDisabled() && checkedResolved()),\n inputProps: () => ({\n \"aria-keyshortcuts\": keyShortcutText(\n shortcut(),\n !isDisabled() && checkedResolved(),\n ),\n \"aria-invalid\": item.invalid() || undefined,\n checked: checkedResolved(),\n disabled: isDisabled(),\n id,\n name: item.status() === \"skipped\" ? undefined : item.name,\n onChange: handleChange,\n required: item.required() && !item.multiple() && !item.hasInputAnswer(),\n type: type(),\n value: options.value,\n }),\n };\n}\n"],"mappings":";;;;AAsBA,SAAgBA,EAAuB,GAAkB;CACvD,IAAMC,IAAOC,EAA4B,qBAAqB,GACxDC,IAAKC,EAAe,GACpB,CAACC,GAAOC,KAAYC,EAA+B,GAEnDC,UAAmBP,EAAK,SAAS,KAAK,CAAC,CAACQ,EAAQ,WAAW,GAC3DC,UAAcT,EAAK,SAAS,IAAI,aAAa,SAC7CU,UACJV,EAAK,sBAAsB,CAAC,EAAE,IAAIQ,EAAQ,KAAK,KAC/CR,EAAK,mBAAmB,CAAC,CAAC,IAAIE,CAAE,KAChC;CAKF,AAHAS,EAAUX,EAAK,wBAAwBE,GAAI,CAAC,CAACM,EAAQ,iBAAiB,CAAC,CAAC,GACxEI,QAAmBZ,EAAK,iBAAiBE,GAAI,CAAC,CAACM,EAAQ,iBAAiB,CAAC,CAAC,GAE1EI,QAAmB;EACjB,IAAMC,IAAUT,EAAM;EACtB,IAAI,CAACS,GAAS;EACd,IAAMC,IAAad,EAAK,sBAAsB;GAC5C;GACA;GACA,MAAM;GACN,OAAOQ,EAAQ;GACf,UAAUD,EAAW;GACrB,aAAa,CAAC,CAACC,EAAQ,WAAW;EACpC,CAAC;EACD,EAAUM,CAAU;CACtB,CAAC;CAED,IAAMC,UAAwB;EAC5B,IAAMC,IAAaR,EAAQ,UAAU;EAIrC,OAHIQ,MAAe,KAAA,IAGZhB,EAAK,kBAAkB,CAAC,CAAC,SAASE,CAAE,IAFlCF,EAAK,OAAO,MAAM,aAAoBgB;CAGjD;CAGA,QAAmB;EACjB,IAAMH,IAAUT,EAAM,GAChBY,IAAaR,EAAQ,UAAU;EAKrC,AAJAR,EAAK,aAAa,GACda,KAAWG,MAAe,KAAA,KAC5BhB,EAAK,8BAA8BE,GAAIc,CAAU,GAE/CH,MAAS,EAAQ,UAAUE,EAAgB;CACjD,CAAC;CAED,IAAME,KAAgB,MAAiB;EACrC,IAAMC,IAASC,EAAM;EAErB,IADAX,EAAQ,WAAWW,CAAK,GACpBA,EAAM,kBAAkB;EAC5B,IAAMH,IAAaR,EAAQ,UAAU;EACrC,IAAIQ,MAAe,KAAA,GAAW;GAC5B,EAAK,kCAAkCd,GAAIgB,EAAO,OAAO;GACzD;EACF;EACA,AAAIlB,EAAK,OAAO,MAAM,aAAagB,MAAeE,EAAO,WACvDlB,EAAK,kCAAkCE,GAAIc,CAAU;CAEzD;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAShB,EAAK;EACd,gBACEA,EAAK,SAAS,KAAK,CAACA,EAAK,SAAS,KAAK,CAACA,EAAK,eAAe;EAC9D,YAAaA,EAAK,OAAO,MAAM,YAAY,KAAA,IAAYA,EAAK;EAC5D,wBACEoB,EAAgBV,EAAS,GAAG,CAACH,EAAW,KAAKQ,EAAgB,CAAC;EAChE,mBAAmB;GACjB,qBAAqBK,EACnBV,EAAS,GACT,CAACH,EAAW,KAAKQ,EAAgB,CACnC;GACA,gBAAgBf,EAAK,QAAQ,KAAK,KAAA;GAClC,SAASe,EAAgB;GACzB,UAAUR,EAAW;GACrB;GACA,MAAMP,EAAK,OAAO,MAAM,YAAY,KAAA,IAAYA,EAAK;GACrD,UAAUiB;GACV,UAAUjB,EAAK,SAAS,KAAK,CAACA,EAAK,SAAS,KAAK,CAACA,EAAK,eAAe;GACtE,MAAMS,EAAK;GACX,OAAOD,EAAQ;EACjB;CACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { QuestionnaireChoicesProps } from '../questionnaire.types';
2
+ /** 选项容器:grid 布局,携带当前快捷键模式供子项使用 */
3
+ export declare function QuestionnaireChoices(props: QuestionnaireChoicesProps): import('solid-js').JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useQuestionnaireItemContext as t } from "../questionnaire.context.js";
3
+ import { mergeProps as n, spread as r, template as i } from "solid-js/web";
4
+ import { splitProps as a } from "solid-js";
5
+ //#region src/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.tsx
6
+ var o = /*#__PURE__*/ i("<div>");
7
+ function s(i) {
8
+ let s = t("QuestionnaireChoices"), [c, l] = a(i, ["class", "classList"]);
9
+ return (() => {
10
+ var t = o();
11
+ return r(t, n(l, {
12
+ "data-slot": "questionnaire-choices",
13
+ get "data-shortcuts"() {
14
+ return s.shortcuts() ?? void 0;
15
+ },
16
+ get class() {
17
+ return e("grid min-w-0 gap-2", c.class);
18
+ },
19
+ get classList() {
20
+ return c.classList;
21
+ }
22
+ }), !1, !1), t;
23
+ })();
24
+ }
25
+ //#endregion
26
+ export { s as QuestionnaireChoices };
27
+
28
+ //# sourceMappingURL=QuestionnaireChoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionnaireChoices.js","names":["splitProps","clsx","useQuestionnaireItemContext","QuestionnaireChoicesProps","QuestionnaireChoices","props","item","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","data-shortcuts","shortcuts","undefined","class","classList","_$mergeProps","_tmpl$","QuestionnaireChoices","item","useQuestionnaireItemContext","local","rest","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport type { QuestionnaireChoicesProps } from \"../questionnaire.types\";\n\n/** 选项容器:grid 布局,携带当前快捷键模式供子项使用 */\nexport function QuestionnaireChoices(props: QuestionnaireChoicesProps) {\n const item = useQuestionnaireItemContext(\"QuestionnaireChoices\");\n const [local, rest] = splitProps(props, [\"class\", \"classList\"]);\n return (\n <div\n {...rest}\n data-slot=\"questionnaire-choices\"\n data-shortcuts={item.shortcuts() ?? undefined}\n class={clsx(\"grid min-w-0 gap-2\", local.class)}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgBI,EAAqBC,GAAkC;CACrE,IAAMC,IAAOJ,EAA4B,sBAAsB,GACzD,CAACK,GAAOC,KAAQR,EAAWK,GAAO,CAAC,SAAS,WAAW,CAAC;CAC9D,cAAA;EAAA,IAAAI,IAAAC,EAAA;EAM8B,OAN9BC,EAAAF,GAAAG,EAEQJ,GAAI;GAAA,aACE;GAAuB,IAAA,mBAAA;IAAA,OACjBF,EAAKQ,UAAU,KAAKC,KAAAA;GAAS;GAAA,IAAAe,QAAA;IAAA,OACtC7B,EAAK,sBAAsBM,EAAMS,KAAK;GAAC;GAAA,IAC9CC,YAAS;IAAA,OAAEV,EAAMU;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAR;CAAA,EAAA,CAAA;AAGhC"}
@@ -0,0 +1 @@
1
+ export { QuestionnaireChoices } from './QuestionnaireChoices';
@@ -0,0 +1,4 @@
1
+ import { ValidComponent } from 'solid-js';
2
+ import { QuestionnaireDescriptionProps } from '../questionnaire.types';
3
+ /** 题目描述(p);id 注册给 Item,用于 fieldset 的 aria-describedby */
4
+ export declare function QuestionnaireDescription<T extends ValidComponent = "p">(props: QuestionnaireDescriptionProps<T>): import('solid-js').JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useQuestionnaireItemContext as t } from "../questionnaire.context.js";
3
+ import { Dynamic as n, createComponent as r, mergeProps as i } from "solid-js/web";
4
+ import { createUniqueId as a, onCleanup as o, onMount as s, splitProps as c } from "solid-js";
5
+ //#region src/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.tsx
6
+ function l(l) {
7
+ let u = t("QuestionnaireDescription"), [d, f] = c(l, [
8
+ "id",
9
+ "class",
10
+ "classList",
11
+ "component"
12
+ ]), p = d.id ?? a();
13
+ return s(() => o(u.registerDescription(p))), r(n, i(f, {
14
+ get component() {
15
+ return d.component ?? "p";
16
+ },
17
+ id: p,
18
+ "data-slot": "questionnaire-description",
19
+ get class() {
20
+ return e("text-sm text-muted-foreground text-pretty", d.class);
21
+ },
22
+ get classList() {
23
+ return d.classList;
24
+ }
25
+ }));
26
+ }
27
+ //#endregion
28
+ export { l as QuestionnaireDescription };
29
+
30
+ //# sourceMappingURL=QuestionnaireDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionnaireDescription.js","names":["createUniqueId","onCleanup","onMount","splitProps","ValidComponent","Dynamic","clsx","useQuestionnaireItemContext","QuestionnaireDescriptionProps","QuestionnaireDescription","props","T","item","local","rest","id","registerDescription","_$createComponent","_$mergeProps","component","class","classList","_$createComponent","_$mergeProps","QuestionnaireDescription","item","useQuestionnaireItemContext","local","rest","splitProps","props","id","createUniqueId","onMount","onCleanup","createComponent","Dynamic","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.tsx"],"sourcesContent":["import {\n createUniqueId,\n onCleanup,\n onMount,\n splitProps,\n type ValidComponent,\n} from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport type { QuestionnaireDescriptionProps } from \"../questionnaire.types\";\n\n/** 题目描述(p);id 注册给 Item,用于 fieldset 的 aria-describedby */\nexport function QuestionnaireDescription<T extends ValidComponent = \"p\">(\n props: QuestionnaireDescriptionProps<T>,\n) {\n const item = useQuestionnaireItemContext(\"QuestionnaireDescription\");\n const [local, rest] = splitProps(props, [\n \"id\",\n \"class\",\n \"classList\",\n \"component\",\n ]);\n const id = local.id ?? createUniqueId();\n onMount(() => onCleanup(item.registerDescription(id)));\n\n return (\n <Dynamic\n {...rest}\n component={(local.component as ValidComponent) ?? \"p\"}\n id={id}\n data-slot=\"questionnaire-description\"\n class={clsx(\"text-sm text-muted-foreground text-pretty\", local.class)}\n classList={local.classList}\n />\n );\n}\n"],"mappings":";;;;;AAaA,SAAgBS,EACdC,GACA;CACA,IAAME,IAAOL,EAA4B,0BAA0B,GAC7D,CAACM,GAAOC,KAAQX,EAAWO,GAAO;EACtC;EACA;EACA;EACA;CAAW,CACZ,GACKK,IAAKF,EAAME,MAAMf,EAAe;CAGtC,OAFAE,QAAcD,EAAUW,EAAKI,oBAAoBD,CAAE,CAAC,CAAC,GAErDE,EACGZ,GAAOa,EACFJ,GAAI;EAAA,IACRK,YAAS;GAAA,OAAGN,EAAMM,aAAgC;EAAG;EACjDJ;EAAE,aAAA;EAAA,IAAAuB,QAAA;GAAA,OAEChC,EAAK,6CAA6CO,EAAMO,KAAK;EAAC;EAAA,IACrEC,YAAS;GAAA,OAAER,EAAMQ;EAAS;CAAA,CAAA,CAAA;AAGhC"}
@@ -0,0 +1 @@
1
+ export { QuestionnaireDescription } from './QuestionnaireDescription';
@@ -0,0 +1,4 @@
1
+ import { ValidComponent } from 'solid-js';
2
+ import { QuestionnaireErrorProps } from '../questionnaire.types';
3
+ /** 校验错误提示(p);invalid 时显示并挂 role="alert",id 注册给 Item */
4
+ export declare function QuestionnaireError<T extends ValidComponent = "p">(props: QuestionnaireErrorProps<T>): import('solid-js').JSX.Element;
@@ -0,0 +1,43 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useQuestionnaireItemContext as t } from "../questionnaire.context.js";
3
+ import { Dynamic as n, createComponent as r, mergeProps as i } from "solid-js/web";
4
+ import { createUniqueId as a, onCleanup as o, onMount as s, splitProps as c } from "solid-js";
5
+ //#region src/components/questionnaire/QuestionnaireError/QuestionnaireError.tsx
6
+ function l(l) {
7
+ let u = t("QuestionnaireError"), [d, f] = c(l, [
8
+ "id",
9
+ "class",
10
+ "classList",
11
+ "component",
12
+ "children"
13
+ ]), p = d.id ?? a();
14
+ return s(() => o(u.registerError(p))), r(n, i(f, {
15
+ get component() {
16
+ return d.component ?? "p";
17
+ },
18
+ id: p,
19
+ get role() {
20
+ return u.invalid() ? "alert" : void 0;
21
+ },
22
+ get hidden() {
23
+ return !u.invalid();
24
+ },
25
+ "data-slot": "questionnaire-error",
26
+ get "data-invalid"() {
27
+ return u.invalid() ? "" : void 0;
28
+ },
29
+ get class() {
30
+ return e("mt-2 text-sm text-destructive", d.class);
31
+ },
32
+ get classList() {
33
+ return d.classList;
34
+ },
35
+ get children() {
36
+ return d.children ?? (u.required() ? "Choose an answer to continue." : "Choose an answer or skip this question.");
37
+ }
38
+ }));
39
+ }
40
+ //#endregion
41
+ export { l as QuestionnaireError };
42
+
43
+ //# sourceMappingURL=QuestionnaireError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionnaireError.js","names":["createUniqueId","onCleanup","onMount","splitProps","ValidComponent","Dynamic","clsx","useQuestionnaireItemContext","QuestionnaireErrorProps","QuestionnaireError","props","T","item","local","rest","id","registerError","_$createComponent","_$mergeProps","component","role","invalid","undefined","hidden","data-invalid","class","classList","children","required","_$createComponent","_$mergeProps","QuestionnaireError","item","useQuestionnaireItemContext","local","rest","splitProps","props","id","createUniqueId","onMount","onCleanup","createComponent","Dynamic","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/questionnaire/QuestionnaireError/QuestionnaireError.tsx"],"sourcesContent":["import {\n createUniqueId,\n onCleanup,\n onMount,\n splitProps,\n type ValidComponent,\n} from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { clsx } from \"~/utils\";\nimport { useQuestionnaireItemContext } from \"../questionnaire.context\";\nimport type { QuestionnaireErrorProps } from \"../questionnaire.types\";\n\n/** 校验错误提示(p);invalid 时显示并挂 role=\"alert\",id 注册给 Item */\nexport function QuestionnaireError<T extends ValidComponent = \"p\">(\n props: QuestionnaireErrorProps<T>,\n) {\n const item = useQuestionnaireItemContext(\"QuestionnaireError\");\n const [local, rest] = splitProps(props, [\n \"id\",\n \"class\",\n \"classList\",\n \"component\",\n \"children\",\n ]);\n const id = local.id ?? createUniqueId();\n onMount(() => onCleanup(item.registerError(id)));\n\n return (\n <Dynamic\n {...rest}\n component={(local.component as ValidComponent) ?? \"p\"}\n id={id}\n role={item.invalid() ? \"alert\" : undefined}\n hidden={!item.invalid()}\n data-slot=\"questionnaire-error\"\n data-invalid={item.invalid() ? \"\" : undefined}\n class={clsx(\"mt-2 text-sm text-destructive\", local.class)}\n classList={local.classList}\n >\n {local.children ??\n (item.required()\n ? \"Choose an answer to continue.\"\n : \"Choose an answer or skip this question.\")}\n </Dynamic>\n );\n}\n"],"mappings":";;;;;AAaA,SAAgBS,EACdC,GACA;CACA,IAAME,IAAOL,EAA4B,oBAAoB,GACvD,CAACM,GAAOC,KAAQX,EAAWO,GAAO;EACtC;EACA;EACA;EACA;EACA;CAAU,CACX,GACKK,IAAKF,EAAME,MAAMf,EAAe;CAGtC,OAFAE,QAAcD,EAAUW,EAAKI,cAAcD,CAAE,CAAC,CAAC,GAE/CE,EACGZ,GAAOa,EACFJ,GAAI;EAAA,IACRK,YAAS;GAAA,OAAGN,EAAMM,aAAgC;EAAG;EACjDJ;EAAE,IACNK,OAAI;GAAA,OAAER,EAAKS,QAAQ,IAAI,UAAUC,KAAAA;EAAS;EAAA,IAC1CC,SAAM;GAAA,OAAE,CAACX,EAAKS,QAAQ;EAAC;EAAA,aAAA;EAAA,IAAA,iBAAA;GAAA,OAETT,EAAKS,QAAQ,IAAI,KAAKC,KAAAA;EAAS;EAAA,IAAAuB,QAAA;GAAA,OACtCvC,EAAK,iCAAiCO,EAAMY,KAAK;EAAC;EAAA,IACzDC,YAAS;GAAA,OAAEb,EAAMa;EAAS;EAAA,IAAAC,WAAA;GAAA,OAEzBd,EAAMc,aACJf,EAAKgB,SAAS,IACX,kCACA;EAA0C;CAAA,CAAA,CAAA;AAGtD"}
@@ -0,0 +1 @@
1
+ export { QuestionnaireError } from './QuestionnaireError';
@@ -0,0 +1,3 @@
1
+ import { QuestionnaireInputProps } from '../questionnaire.types';
2
+ /** 自由作答输入(需有可见 label、aria-label 或 aria-labelledby 提供可访问名称) */
3
+ export declare function QuestionnaireInput(props: QuestionnaireInputProps): import('solid-js').JSX.Element;
@@ -0,0 +1,78 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useQuestionnaireInput as t } from "./useQuestionnaireInput.js";
3
+ import { memo as n, mergeProps as r, spread as i, template as a, use as o } from "solid-js/web";
4
+ import { splitProps as s } from "solid-js";
5
+ //#region src/components/questionnaire/QuestionnaireInput/QuestionnaireInput.tsx
6
+ var c = /*#__PURE__*/ a("<div data-slot=questionnaire-input-wrapper class=\"group/questionnaire-input relative min-w-0\"><input>"), l = "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";
7
+ function u(a) {
8
+ let [u, d] = s(a, [
9
+ "type",
10
+ "defaultValue",
11
+ "value",
12
+ "disabled",
13
+ "onChange",
14
+ "class",
15
+ "classList"
16
+ ]), f = t({
17
+ type: () => u.type ?? "text",
18
+ defaultValue: () => u.defaultValue,
19
+ value: () => u.value,
20
+ disabled: () => u.disabled,
21
+ onChange: (e) => u.onChange?.(e)
22
+ });
23
+ return (() => {
24
+ var t = c(), a = t.firstChild;
25
+ return o((e) => {
26
+ f.setInput(e), !f.controlled() && u.defaultValue !== void 0 && (e.defaultValue = u.defaultValue);
27
+ }, a), i(a, r(d, {
28
+ get id() {
29
+ return f.id;
30
+ },
31
+ get type() {
32
+ return u.type ?? "text";
33
+ },
34
+ get name() {
35
+ return f.name();
36
+ },
37
+ get form() {
38
+ return f.formValue();
39
+ },
40
+ get value() {
41
+ return n(() => !!f.controlled())() ? u.value : void 0;
42
+ },
43
+ get disabled() {
44
+ return f.isDisabled();
45
+ },
46
+ get "aria-invalid"() {
47
+ return f.invalid() || void 0;
48
+ },
49
+ get "aria-keyshortcuts"() {
50
+ return f.ariaKeyShortcuts();
51
+ },
52
+ onChange: (e) => f.inputProps().onChange(e),
53
+ "data-slot": "questionnaire-input",
54
+ get "data-filled"() {
55
+ return f.filled() ? "" : void 0;
56
+ },
57
+ get "data-empty"() {
58
+ return f.filled() ? void 0 : "";
59
+ },
60
+ get "data-disabled"() {
61
+ return f.isDisabled() ? "" : void 0;
62
+ },
63
+ get "data-invalid"() {
64
+ return f.invalid() ? "" : void 0;
65
+ },
66
+ get class() {
67
+ return e(l, u.class);
68
+ },
69
+ get classList() {
70
+ return u.classList;
71
+ }
72
+ }), !1, !1), t;
73
+ })();
74
+ }
75
+ //#endregion
76
+ export { u as QuestionnaireInput };
77
+
78
+ //# sourceMappingURL=QuestionnaireInput.js.map