@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,92 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useResizablePanelGroupContext as t } from "../resizable.context.js";
3
+ import { gripClasses as n, handleClasses as r } from "./ResizableHandle.styles.js";
4
+ import { useResizableHandle as i } from "./useResizableHandle.js";
5
+ import { className as a, createComponent as o, insert as s, mergeProps as c, spread as l, template as u, use as d } from "solid-js/web";
6
+ import { Show as f, createSignal as p, mergeProps as m, onCleanup as h, splitProps as g } from "solid-js";
7
+ //#region src/components/resizable/ResizableHandle/ResizableHandle.tsx
8
+ var _ = /*#__PURE__*/ u("<div>");
9
+ function v(u) {
10
+ let v = t("ResizableHandle"), y = m({
11
+ disabled: !1,
12
+ withHandle: !1
13
+ }, u), [b, x] = g(y, [
14
+ "class",
15
+ "classList",
16
+ "id",
17
+ "disabled",
18
+ "withHandle",
19
+ "onDragging",
20
+ "children"
21
+ ]), [S, C] = p(), w = () => {
22
+ let e = S();
23
+ return e ? v.resolveAdjacent(e) : void 0;
24
+ }, T = i({
25
+ disabled: () => b.disabled,
26
+ onDragging: (e) => b.onDragging?.(e)
27
+ }), E = () => v.orientation() === "horizontal" ? "vertical" : "horizontal";
28
+ return (() => {
29
+ var t = _();
30
+ return d((e) => {
31
+ C(e), h(() => C(void 0));
32
+ }, t), l(t, c(x, {
33
+ get id() {
34
+ return b.id;
35
+ },
36
+ role: "separator",
37
+ get "aria-orientation"() {
38
+ return E();
39
+ },
40
+ get "aria-valuenow"() {
41
+ return Math.round(w()?.prevSize ?? 0);
42
+ },
43
+ "aria-valuemin": 0,
44
+ get "aria-valuemax"() {
45
+ return Math.round(w()?.total ?? 100);
46
+ },
47
+ get tabIndex() {
48
+ return b.disabled ? -1 : 0;
49
+ },
50
+ "data-slot": "resizable-handle",
51
+ get "data-orientation"() {
52
+ return v.orientation();
53
+ },
54
+ get "data-disabled"() {
55
+ return b.disabled ? "" : void 0;
56
+ },
57
+ get "data-dragging"() {
58
+ return v.dragging() ? "" : void 0;
59
+ },
60
+ get onPointerDown() {
61
+ return T.onPointerDown;
62
+ },
63
+ get onPointerMove() {
64
+ return T.onPointerMove;
65
+ },
66
+ get onPointerUp() {
67
+ return T.onPointerUp;
68
+ },
69
+ get onKeyDown() {
70
+ return T.onKeyDown;
71
+ },
72
+ get class() {
73
+ return e(r, b.class);
74
+ },
75
+ get classList() {
76
+ return b.classList;
77
+ }
78
+ }), !1, !0), s(t, o(f, {
79
+ get when() {
80
+ return b.withHandle;
81
+ },
82
+ get children() {
83
+ var e = _();
84
+ return a(e, n), e;
85
+ }
86
+ }), null), s(t, () => b.children, null), t;
87
+ })();
88
+ }
89
+ //#endregion
90
+ export { v as ResizableHandle };
91
+
92
+ //# sourceMappingURL=ResizableHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.js","names":["Show","createSignal","mergeProps","onCleanup","splitProps","clsx","useResizablePanelGroupContext","gripClasses","handleClasses","useResizableHandle","ResizableHandleProps","ResizableHandle","props","ctx","merged","disabled","withHandle","local","rest","element","setElement","HTMLElement","adjacent","el","resolveAdjacent","undefined","handlers","onDragging","dragging","separatorOrientation","orientation","_el$","_tmpl$","_$use","_$spread","_$mergeProps","id","aria-orientation","aria-valuenow","Math","round","prevSize","aria-valuemax","total","tabIndex","data-orientation","data-disabled","data-dragging","onPointerDown","onPointerMove","onPointerUp","onKeyDown","class","classList","_$insert","_$createComponent","when","children","_el$2","_$className","mergeProps","_$mergeProps","_$createComponent","mergeProps$1","_tmpl$","ResizableHandle","ctx","useResizablePanelGroupContext","merged","props","local","rest","splitProps","element","setElement","createSignal","adjacent","el","handlers","useResizableHandle","dragging","separatorOrientation","_el$","use","onCleanup","spread","mergeProps","\"role\"","\"class\"","clsx","handleClasses","insert","createComponent","Show","_el$2","className","gripClasses"],"sources":["../../../../src/components/resizable/ResizableHandle/ResizableHandle.tsx"],"sourcesContent":["import {\n Show,\n createSignal,\n mergeProps,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useResizablePanelGroupContext } from \"../resizable.context\";\nimport { gripClasses, handleClasses } from \"./ResizableHandle.styles\";\nimport { useResizableHandle } from \"./useResizableHandle\";\nimport type { ResizableHandleProps } from \"../resizable.types\";\n\n/**\n * 两个面板之间的分隔条:支持拖拽、方向键、Home/End、Enter/Space 折叠。\n * 默认只有 1px 可见线,靠 `::after` 扩大命中区域;`withHandle` 时显示抓手。\n */\nexport function ResizableHandle(props: ResizableHandleProps) {\n const ctx = useResizablePanelGroupContext(\"ResizableHandle\");\n const merged = mergeProps({ disabled: false, withHandle: false }, props);\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"id\",\n \"disabled\",\n \"withHandle\",\n \"onDragging\",\n \"children\",\n ]);\n\n const [element, setElement] = createSignal<HTMLElement>();\n const adjacent = () => {\n const el = element();\n return el ? ctx.resolveAdjacent(el) : undefined;\n };\n\n const handlers = useResizableHandle({\n disabled: () => local.disabled,\n onDragging: (dragging) => local.onDragging?.(dragging),\n });\n\n // 分隔条方向与 group 垂直:group 横向时是一条竖线\n const separatorOrientation = () =>\n ctx.orientation() === \"horizontal\" ? \"vertical\" : \"horizontal\";\n\n return (\n <div\n {...rest}\n ref={(el) => {\n setElement(el);\n onCleanup(() => setElement(undefined));\n }}\n id={local.id}\n role=\"separator\"\n aria-orientation={separatorOrientation()}\n aria-valuenow={Math.round(adjacent()?.prevSize ?? 0)}\n aria-valuemin={0}\n aria-valuemax={Math.round(adjacent()?.total ?? 100)}\n tabIndex={local.disabled ? -1 : 0}\n data-slot=\"resizable-handle\"\n data-orientation={ctx.orientation()}\n data-disabled={local.disabled ? \"\" : undefined}\n data-dragging={ctx.dragging() ? \"\" : undefined}\n onPointerDown={handlers.onPointerDown}\n onPointerMove={handlers.onPointerMove}\n onPointerUp={handlers.onPointerUp}\n onKeyDown={handlers.onKeyDown}\n class={clsx(handleClasses, local.class)}\n classList={local.classList}\n >\n <Show when={local.withHandle}>\n <div class={gripClasses} />\n </Show>\n {local.children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgBW,EAAgBC,GAA6B;CAC3D,IAAMC,IAAMP,EAA8B,iBAAiB,GACrDQ,IAASZ,EAAW;EAAEa,UAAU;EAAOC,YAAY;CAAM,GAAGJ,CAAK,GACjE,CAACK,GAAOC,KAAQd,EAAWU,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEK,CAACK,GAASC,KAAcnB,EAA0B,GAClDqB,UAAiB;EACrB,IAAMC,IAAKJ,EAAQ;EACnB,OAAOI,IAAKV,EAAIW,gBAAgBD,CAAE,IAAIE,KAAAA;CACxC,GAEMC,IAAWjB,EAAmB;EAClCM,gBAAgBE,EAAMF;EACtBY,aAAaC,MAAaX,EAAMU,aAAaC,CAAQ;CACvD,CAAC,GAGKC,UACJhB,EAAIiB,YAAY,MAAM,eAAe,aAAa;CAEpD,cAAA;EAAA,IAAAC,IAAAC,EAAA;EA4BmB,OA5BnBC,GAGUV,MAAO;GAEXpB,AADAiB,EAAWG,CAAE,GACbpB,QAAgBiB,EAAWK,KAAAA,CAAS,CAAC;EACvC,GAACM,CAAA,GAAAG,EAAAH,GAAAI,EAJGjB,GAAI;GAAA,IAKRkB,KAAE;IAAA,OAAEnB,EAAMmB;GAAE;GAAAmD,MACP;GAAW,IAAA,qBAAA;IAAA,OACE1D,EAAqB;GAAC;GAAA,IAAA,kBAAA;IAAA,OACzBU,KAAKC,MAAMlB,EAAS,CAAC,EAAEmB,YAAY,CAAC;GAAC;GAAA,iBACrC;GAAC,IAAA,kBAAA;IAAA,OACDF,KAAKC,MAAMlB,EAAS,CAAC,EAAEqB,SAAS,GAAG;GAAC;GAAA,IACnDC,WAAQ;IAAA,OAAE3B,EAAMF,WAAW,KAAK;GAAC;GAAA,aACvB;GAAkB,IAAA,qBAAA;IAAA,OACVF,EAAIiB,YAAY;GAAC;GAAA,IAAA,kBAAA;IAAA,OACpBb,EAAMF,WAAW,KAAKU,KAAAA;GAAS;GAAA,IAAA,kBAAA;IAAA,OAC/BZ,EAAIe,SAAS,IAAI,KAAKH,KAAAA;GAAS;GAAA,IAC9CuB,gBAAa;IAAA,OAAEtB,EAASsB;GAAa;GAAA,IACrCC,gBAAa;IAAA,OAAEvB,EAASuB;GAAa;GAAA,IACrCC,cAAW;IAAA,OAAExB,EAASwB;GAAW;GAAA,IACjCC,YAAS;IAAA,OAAEzB,EAASyB;GAAS;GAAA,IAAAqC,QAAA;IAAA,OACtBnF,EAAKG,GAAeS,EAAMmC,KAAK;GAAC;GAAA,IACvCC,YAAS;IAAA,OAAEpC,EAAMoC;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAvB,GAAAwB,EAEzBvD,GAAI;GAAA,IAACwD,OAAI;IAAA,OAAEvC,EAAMD;GAAU;GAAA,IAAAyC,WAAA;IAAA,IAAAC,IAAA1B,EAAA;IACH,OADG2B,EAAAD,GACdnD,CAAW,GAAAmD;GAAA;EAAA,CAAA,GAAA,IAAA,GAAAJ,EAAAvB,SAExBd,EAAMwC,UAAQ,IAAA,GAAA1B;CAAA,EAAA,CAAA;AAGrB"}
@@ -0,0 +1,3 @@
1
+ /** 对齐 shadcn base 版 resizable handle 的类名(去掉 cn-* 主题 token) */
2
+ export declare const handleClasses = "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90 touch-none data-[orientation=horizontal]:cursor-ew-resize data-[orientation=vertical]:cursor-ns-resize data-[disabled]:cursor-default";
3
+ export declare const gripClasses = "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border";
@@ -0,0 +1,6 @@
1
+ //#region src/components/resizable/ResizableHandle/ResizableHandle.styles.ts
2
+ var e = "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90 touch-none data-[orientation=horizontal]:cursor-ew-resize data-[orientation=vertical]:cursor-ns-resize data-[disabled]:cursor-default", t = "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border";
3
+ //#endregion
4
+ export { t as gripClasses, e as handleClasses };
5
+
6
+ //# sourceMappingURL=ResizableHandle.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizableHandle.styles.js","names":["handleClasses","gripClasses"],"sources":["../../../../src/components/resizable/ResizableHandle/ResizableHandle.styles.ts"],"sourcesContent":["/** 对齐 shadcn base 版 resizable handle 的类名(去掉 cn-* 主题 token) */\nexport const handleClasses =\n \"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90 touch-none data-[orientation=horizontal]:cursor-ew-resize data-[orientation=vertical]:cursor-ns-resize data-[disabled]:cursor-default\";\n\nexport const gripClasses = \"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\";\n"],"mappings":";AACA,IAAaA,IACX,8sBAEWC,IAAc"}
@@ -0,0 +1 @@
1
+ export { ResizableHandle } from './ResizableHandle';
@@ -0,0 +1,17 @@
1
+ interface Options {
2
+ disabled: () => boolean;
3
+ onDragging?: (dragging: boolean) => void;
4
+ }
5
+ /**
6
+ * Handle 的拖拽与键盘交互:
7
+ * - pointer capture 保证指针移出元素后仍能继续拖拽;
8
+ * - pointermove 用 rAF 合并,避免每个事件都写一次 store(布局抖动);
9
+ * - px -> % 用 group 主轴尺寸换算,横向在 RTL 下取反。
10
+ */
11
+ export declare function useResizableHandle(options: Options): {
12
+ onPointerDown: (event: PointerEvent) => void;
13
+ onPointerMove: (event: PointerEvent) => void;
14
+ onPointerUp: (event: PointerEvent) => void;
15
+ onKeyDown: (event: KeyboardEvent) => void;
16
+ };
17
+ export {};
@@ -0,0 +1,72 @@
1
+ import { useResizablePanelGroupContext as e } from "../resizable.context.js";
2
+ import { onCleanup as t } from "solid-js";
3
+ //#region src/components/resizable/ResizableHandle/useResizableHandle.ts
4
+ function n(n) {
5
+ let r = e("ResizableHandle"), i;
6
+ t(() => {
7
+ i?.frame != null && cancelAnimationFrame(i.frame), i = void 0;
8
+ });
9
+ let a = (e) => r.orientation() === "horizontal" ? e.clientX : e.clientY, o = () => r.orientation() === "horizontal" && r.isRtl() ? -1 : 1, s = () => {
10
+ i && (i.frame = null, i.pending !== null && r.setAdjacentSize(i.handle, i.pending));
11
+ };
12
+ return {
13
+ onPointerDown: (e) => {
14
+ if (n.disabled() || e.button !== 0) return;
15
+ let t = e.currentTarget, o = r.resolveAdjacent(t);
16
+ o && (e.preventDefault(), t.setPointerCapture(e.pointerId), i = {
17
+ pointerId: e.pointerId,
18
+ handle: t,
19
+ startCoordinate: a(e),
20
+ startPrevSize: o.prevSize,
21
+ frame: null,
22
+ pending: null
23
+ }, r.beginDrag(), n.onDragging?.(!0));
24
+ },
25
+ onPointerMove: (e) => {
26
+ if (!i || i.pointerId !== e.pointerId || !e.currentTarget.hasPointerCapture(e.pointerId)) return;
27
+ let t = r.groupSizePx() || 1, n = (a(e) - i.startCoordinate) * o();
28
+ i.pending = i.startPrevSize + n / t * 100, i.frame === null && (i.frame = requestAnimationFrame(s));
29
+ },
30
+ onPointerUp: (e) => {
31
+ if (!i || i.pointerId !== e.pointerId) return;
32
+ let t = e.currentTarget;
33
+ i.frame !== null && (cancelAnimationFrame(i.frame), i.frame = null, i.pending !== null && r.setAdjacentSize(i.handle, i.pending)), t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), i = void 0, r.endDrag(), n.onDragging?.(!1), r.commitLayout();
34
+ },
35
+ onKeyDown: (e) => {
36
+ if (n.disabled()) return;
37
+ let t = e.currentTarget, i = r.keyboardResizeBy() / (r.groupSizePx() || 1) * 100, a = r.orientation() === "horizontal" && r.isRtl(), o = !0;
38
+ switch (e.key) {
39
+ case "ArrowLeft":
40
+ r.nudgeAdjacent(t, a ? i : -i);
41
+ break;
42
+ case "ArrowRight":
43
+ r.nudgeAdjacent(t, a ? -i : i);
44
+ break;
45
+ case "ArrowUp":
46
+ r.nudgeAdjacent(t, -i);
47
+ break;
48
+ case "ArrowDown":
49
+ r.nudgeAdjacent(t, i);
50
+ break;
51
+ case "Home":
52
+ r.resolveAdjacent(t) && (r.setAdjacentSize(t, 0), r.commitLayout());
53
+ break;
54
+ case "End": {
55
+ let e = r.resolveAdjacent(t);
56
+ e && (r.setAdjacentSize(t, e.total), r.commitLayout());
57
+ break;
58
+ }
59
+ case "Enter":
60
+ case " ":
61
+ r.toggleHandleCollapse(t);
62
+ break;
63
+ default: o = !1;
64
+ }
65
+ o && e.preventDefault();
66
+ }
67
+ };
68
+ }
69
+ //#endregion
70
+ export { n as useResizableHandle };
71
+
72
+ //# sourceMappingURL=useResizableHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizableHandle.js","names":["useResizableHandle","ctx","useResizablePanelGroupContext","drag","axisCoordinate","event","dragSign","flush","options","handle","adjacent","sizePx","deltaPx","step","rtl","handled"],"sources":["../../../../src/components/resizable/ResizableHandle/useResizableHandle.ts"],"sourcesContent":["import { onCleanup } from \"solid-js\";\nimport { useResizablePanelGroupContext } from \"../resizable.context\";\n\ninterface DragState {\n pointerId: number;\n handle: HTMLElement;\n startCoordinate: number;\n startPrevSize: number;\n frame: number | null;\n pending: number | null;\n}\n\ninterface Options {\n disabled: () => boolean;\n onDragging?: (dragging: boolean) => void;\n}\n\n/**\n * Handle 的拖拽与键盘交互:\n * - pointer capture 保证指针移出元素后仍能继续拖拽;\n * - pointermove 用 rAF 合并,避免每个事件都写一次 store(布局抖动);\n * - px -> % 用 group 主轴尺寸换算,横向在 RTL 下取反。\n */\nexport function useResizableHandle(options: Options) {\n const ctx = useResizablePanelGroupContext(\"ResizableHandle\");\n let drag: DragState | undefined;\n\n onCleanup(() => {\n if (drag?.frame != null) cancelAnimationFrame(drag.frame);\n drag = undefined;\n });\n\n const axisCoordinate = (event: PointerEvent) =>\n ctx.orientation() === \"horizontal\" ? event.clientX : event.clientY;\n\n const dragSign = () => {\n if (ctx.orientation() !== \"horizontal\") return 1;\n return ctx.isRtl() ? -1 : 1;\n };\n\n const flush = () => {\n if (!drag) return;\n drag.frame = null;\n if (drag.pending !== null) ctx.setAdjacentSize(drag.handle, drag.pending);\n };\n\n const onPointerDown = (event: PointerEvent) => {\n if (options.disabled() || event.button !== 0) return;\n const handle = event.currentTarget as HTMLElement;\n const adjacent = ctx.resolveAdjacent(handle);\n if (!adjacent) return;\n event.preventDefault();\n handle.setPointerCapture(event.pointerId);\n drag = {\n pointerId: event.pointerId,\n handle,\n startCoordinate: axisCoordinate(event),\n startPrevSize: adjacent.prevSize,\n frame: null,\n pending: null,\n };\n ctx.beginDrag();\n options.onDragging?.(true);\n };\n\n const onPointerMove = (event: PointerEvent) => {\n if (!drag || drag.pointerId !== event.pointerId) return;\n const handle = event.currentTarget as HTMLElement;\n if (!handle.hasPointerCapture(event.pointerId)) return;\n const sizePx = ctx.groupSizePx() || 1;\n const deltaPx = (axisCoordinate(event) - drag.startCoordinate) * dragSign();\n drag.pending = drag.startPrevSize + (deltaPx / sizePx) * 100;\n if (drag.frame === null) {\n drag.frame = requestAnimationFrame(flush);\n }\n };\n\n const endDrag = (event: PointerEvent) => {\n if (!drag || drag.pointerId !== event.pointerId) return;\n const handle = event.currentTarget as HTMLElement;\n if (drag.frame !== null) {\n cancelAnimationFrame(drag.frame);\n drag.frame = null;\n if (drag.pending !== null) ctx.setAdjacentSize(drag.handle, drag.pending);\n }\n if (handle.hasPointerCapture(event.pointerId)) {\n handle.releasePointerCapture(event.pointerId);\n }\n drag = undefined;\n ctx.endDrag();\n options.onDragging?.(false);\n ctx.commitLayout();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (options.disabled()) return;\n const handle = event.currentTarget as HTMLElement;\n const step = (ctx.keyboardResizeBy() / (ctx.groupSizePx() || 1)) * 100;\n const rtl = ctx.orientation() === \"horizontal\" && ctx.isRtl();\n let handled = true;\n switch (event.key) {\n case \"ArrowLeft\":\n ctx.nudgeAdjacent(handle, rtl ? step : -step);\n break;\n case \"ArrowRight\":\n ctx.nudgeAdjacent(handle, rtl ? -step : step);\n break;\n case \"ArrowUp\":\n ctx.nudgeAdjacent(handle, -step);\n break;\n case \"ArrowDown\":\n ctx.nudgeAdjacent(handle, step);\n break;\n case \"Home\": {\n const adjacent = ctx.resolveAdjacent(handle);\n if (adjacent) {\n ctx.setAdjacentSize(handle, 0);\n ctx.commitLayout();\n }\n break;\n }\n case \"End\": {\n const adjacent = ctx.resolveAdjacent(handle);\n if (adjacent) {\n ctx.setAdjacentSize(handle, adjacent.total);\n ctx.commitLayout();\n }\n break;\n }\n case \"Enter\":\n case \" \":\n ctx.toggleHandleCollapse(handle);\n break;\n default:\n handled = false;\n }\n if (handled) event.preventDefault();\n };\n\n return { onPointerDown, onPointerMove, onPointerUp: endDrag, onKeyDown };\n}\n"],"mappings":";;;AAuBA,SAAgBA,EAAmB,GAAkB;CACnD,IAAMC,IAAMC,EAA8B,iBAAiB,GACvDC;CAEJ,QAAgB;EAEd,AADIA,GAAM,SAAS,QAAM,qBAAqBA,EAAK,KAAK,GACxD,IAAO,KAAA;CACT,CAAC;CAED,IAAMC,KAAkB,MACtBH,EAAI,YAAY,MAAM,eAAeI,EAAM,UAAUA,EAAM,SAEvDC,UACAL,EAAI,YAAY,MAAM,gBACnBA,EAAI,MAAM,IAAI,KAAK,GAGtBM,UAAc;EAClB,AAAKJ,MACL,EAAK,QAAQ,MACTA,EAAK,YAAY,QAAMF,EAAI,gBAAgBE,EAAK,QAAQA,EAAK,OAAO;CAC1E;CA+FA,OAAO;EAAE,gBA7Fc,MAAwB;GAC7C,IAAIK,EAAQ,SAAS,KAAKH,EAAM,WAAW,GAAG;GAC9C,IAAMI,IAASJ,EAAM,eACfK,IAAWT,EAAI,gBAAgBQ,CAAM;GAC3C,AAAKC,MACLL,EAAM,eAAe,GACrBI,EAAO,kBAAkBJ,EAAM,SAAS,GACxC,IAAO;IACL,WAAWA,EAAM;IACjB;IACA,iBAAiBD,EAAeC,CAAK;IACrC,eAAeK,EAAS;IACxB,OAAO;IACP,SAAS;GACX,GACAT,EAAI,UAAU,GACdO,EAAQ,aAAa,EAAI;EAC3B;EA4EwB,gBA1ED,MAAwB;GAG7C,IAFI,CAACL,KAAQA,EAAK,cAAcE,EAAM,aAElC,CADWA,EAAM,cACT,kBAAkBA,EAAM,SAAS,GAAG;GAChD,IAAMM,IAASV,EAAI,YAAY,KAAK,GAC9BW,KAAWR,EAAeC,CAAK,IAAIF,EAAK,mBAAmBG,EAAS;GAE1E,AADA,EAAK,UAAUH,EAAK,gBAAiBS,IAAUD,IAAU,KACrDR,EAAK,UAAU,SACjB,EAAK,QAAQ,sBAAsBI,CAAK;EAE5C;EAgEuC,cA9DtB,MAAwB;GACvC,IAAI,CAACJ,KAAQA,EAAK,cAAcE,EAAM,WAAW;GACjD,IAAMI,IAASJ,EAAM;GAYrB,AAXIF,EAAK,UAAU,SACjB,qBAAqBA,EAAK,KAAK,GAC/B,EAAK,QAAQ,MACTA,EAAK,YAAY,QAAMF,EAAI,gBAAgBE,EAAK,QAAQA,EAAK,OAAO,IAEtEM,EAAO,kBAAkBJ,EAAM,SAAS,KAC1CI,EAAO,sBAAsBJ,EAAM,SAAS,GAE9C,IAAO,KAAA,GACPJ,EAAI,QAAQ,GACZO,EAAQ,aAAa,EAAK,GAC1BP,EAAI,aAAa;EACnB;EA+C6D,YA7C1C,MAAyB;GAC1C,IAAIO,EAAQ,SAAS,GAAG;GACxB,IAAMC,IAASJ,EAAM,eACfQ,IAAQZ,EAAI,iBAAiB,KAAKA,EAAI,YAAY,KAAK,KAAM,KAC7Da,IAAMb,EAAI,YAAY,MAAM,gBAAgBA,EAAI,MAAM,GACxDc,IAAU;GACd,QAAQV,EAAM,KAAd;IACE,KAAK;KACH,EAAI,cAAcI,GAAQK,IAAMD,IAAO,CAACA,CAAI;KAC5C;IACF,KAAK;KACH,EAAI,cAAcJ,GAAQK,IAAM,CAACD,IAAOA,CAAI;KAC5C;IACF,KAAK;KACH,EAAI,cAAcJ,GAAQ,CAACI,CAAI;KAC/B;IACF,KAAK;KACH,EAAI,cAAcJ,GAAQI,CAAI;KAC9B;IACF,KAAK;KAEH,AADiBZ,EAAI,gBAAgBQ,CACjC,MACFR,EAAI,gBAAgBQ,GAAQ,CAAC,GAC7BR,EAAI,aAAa;KAEnB;IAEF,KAAK,OAAO;KACV,IAAMS,IAAWT,EAAI,gBAAgBQ,CAAM;KAC3C,AAAIC,MACFT,EAAI,gBAAgBQ,GAAQC,EAAS,KAAK,GAC1CT,EAAI,aAAa;KAEnB;IACF;IACA,KAAK;IACL,KAAK;KACH,EAAI,qBAAqBQ,CAAM;KAC/B;IACF,SACE,IAAU;GACd;GACA,AAAIM,KAASV,EAAM,eAAe;EACpC;CAEuE;AACzE"}
@@ -0,0 +1,6 @@
1
+ import { ResizablePanelProps } from '../resizable.types';
2
+ /**
3
+ * 一个可调整的面板。尺寸以百分比权重存在引擎里,这里只把它映射成 `flex-grow`,
4
+ * 所以拖拽只会改两个面板的 style,内容不会重渲染。
5
+ */
6
+ export declare function ResizablePanel(props: ResizablePanelProps): import('solid-js').JSX.Element;
@@ -0,0 +1,91 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { useResizablePanelGroupContext as t } from "../resizable.context.js";
3
+ import { parseSize as n, roundPercent as r, toKebabCase as i } from "../resizable.utils.js";
4
+ import { insert as a, mergeProps as o, spread as s, template as c, use as l } from "solid-js/web";
5
+ import { createUniqueId as u, mergeProps as d, onCleanup as f, splitProps as p } from "solid-js";
6
+ //#region src/components/resizable/ResizablePanel/ResizablePanel.tsx
7
+ var m = /*#__PURE__*/ c("<div>");
8
+ function h(c) {
9
+ let h = t("ResizablePanel"), g = d({
10
+ minSize: 0,
11
+ maxSize: 100,
12
+ collapsible: !1,
13
+ collapsedSize: 0
14
+ }, c), [_, v] = p(g, [
15
+ "id",
16
+ "defaultSize",
17
+ "minSize",
18
+ "maxSize",
19
+ "collapsible",
20
+ "collapsedSize",
21
+ "onResize",
22
+ "onCollapse",
23
+ "onExpand",
24
+ "panelRef",
25
+ "class",
26
+ "classList",
27
+ "style",
28
+ "children"
29
+ ]), y = _.id ?? u(), b = _.defaultSize === void 0 ? 1 : n(_.defaultSize, 1), x = () => h.sizes()[y] ?? b, S = () => {
30
+ let e = [
31
+ `flex-grow:${x()}`,
32
+ "flex-shrink:1",
33
+ "flex-basis:0%"
34
+ ], t = _.style;
35
+ if (typeof t == "string") e.push(t);
36
+ else if (t && typeof t == "object") for (let [n, r] of Object.entries(t)) r != null && e.push(`${i(n)}:${r}`);
37
+ return e.join(";");
38
+ };
39
+ return (() => {
40
+ var t = m();
41
+ return l((e) => {
42
+ let t = {
43
+ id: y,
44
+ element: e,
45
+ minSize: () => n(_.minSize, 0),
46
+ maxSize: () => n(_.maxSize, 100),
47
+ collapsible: () => _.collapsible,
48
+ collapsedSize: () => n(_.collapsedSize, 0),
49
+ defaultSize: _.defaultSize === void 0 ? void 0 : n(_.defaultSize, 0),
50
+ onResize: (e) => _.onResize?.(e),
51
+ onCollapse: () => _.onCollapse?.(),
52
+ onExpand: () => _.onExpand?.()
53
+ }, r = h.registerPanel(t);
54
+ _.panelRef?.({
55
+ collapse: () => h.collapsePanel(y),
56
+ expand: () => h.expandPanel(y),
57
+ resize: (e) => h.setPanelSize(y, e),
58
+ getSize: () => h.getPanelSize(y),
59
+ isCollapsed: () => h.isPanelCollapsed(y),
60
+ isExpanded: () => !h.isPanelCollapsed(y)
61
+ }), f(() => {
62
+ r(), _.panelRef?.(void 0);
63
+ });
64
+ }, t), s(t, o(v, {
65
+ get id() {
66
+ return _.id;
67
+ },
68
+ "data-slot": "resizable-panel",
69
+ "data-panel-id": y,
70
+ get "data-panel-size"() {
71
+ return r(x());
72
+ },
73
+ get "data-panel-collapsed"() {
74
+ return h.isPanelCollapsed(y) ? "" : void 0;
75
+ },
76
+ get style() {
77
+ return S();
78
+ },
79
+ get class() {
80
+ return e("relative min-h-0 min-w-0 overflow-hidden", _.class);
81
+ },
82
+ get classList() {
83
+ return _.classList;
84
+ }
85
+ }), !1, !0), a(t, () => _.children), t;
86
+ })();
87
+ }
88
+ //#endregion
89
+ export { h as ResizablePanel };
90
+
91
+ //# sourceMappingURL=ResizablePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanel.js","names":["createUniqueId","mergeProps","onCleanup","splitProps","clsx","useResizablePanelGroupContext","parseSize","roundPercent","toKebabCase","ResizablePanelMeta","ResizablePanelProps","ResizablePanel","props","ctx","merged","minSize","maxSize","collapsible","collapsedSize","const","local","rest","id","fallbackSize","defaultSize","undefined","size","sizes","styleText","parts","extra","style","push","key","value","Object","entries","join","_el$","_tmpl$","_$use","el","meta","element","onResize","onCollapse","onExpand","unregister","registerPanel","panelRef","collapse","collapsePanel","expand","expandPanel","resize","setPanelSize","getSize","getPanelSize","isCollapsed","isPanelCollapsed","isExpanded","_$spread","_$mergeProps","data-panel-size","data-panel-collapsed","class","classList","_$insert","children","mergeProps","_$mergeProps","mergeProps$1","_tmpl$","ResizablePanel","ctx","useResizablePanelGroupContext","merged","props","local","rest","splitProps","id","createUniqueId","fallbackSize","parseSize","size","styleText","parts","extra","key","value","toKebabCase","_el$","use","meta","el","unregister","onCleanup","spread","mergeProps","roundPercent","\"class\"","clsx","insert"],"sources":["../../../../src/components/resizable/ResizablePanel/ResizablePanel.tsx"],"sourcesContent":["import { createUniqueId, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useResizablePanelGroupContext } from \"../resizable.context\";\nimport { parseSize, roundPercent, toKebabCase } from \"../resizable.utils\";\nimport type {\n ResizablePanelMeta,\n ResizablePanelProps,\n} from \"../resizable.types\";\n\n/**\n * 一个可调整的面板。尺寸以百分比权重存在引擎里,这里只把它映射成 `flex-grow`,\n * 所以拖拽只会改两个面板的 style,内容不会重渲染。\n */\nexport function ResizablePanel(props: ResizablePanelProps) {\n const ctx = useResizablePanelGroupContext(\"ResizablePanel\");\n const merged = mergeProps(\n { minSize: 0, maxSize: 100, collapsible: false, collapsedSize: 0 } as const,\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"id\",\n \"defaultSize\",\n \"minSize\",\n \"maxSize\",\n \"collapsible\",\n \"collapsedSize\",\n \"onResize\",\n \"onCollapse\",\n \"onExpand\",\n \"panelRef\",\n \"class\",\n \"classList\",\n \"style\",\n \"children\",\n ]);\n\n const id = local.id ?? createUniqueId();\n // 引擎初始化前的 fallback(例如 SSR 首屏):按 defaultSize 比例,未指定则等分。\n // 初始化后 store 里就是归一化到 100 的百分比。\n const fallbackSize =\n local.defaultSize === undefined ? 1 : parseSize(local.defaultSize, 1);\n const size = () => ctx.sizes()[id] ?? fallbackSize;\n\n // 用字符串形式声明 style:模板字面量会被 Solid 包进 effect,尺寸变化时能可靠更新;\n // 对象形式里的 getter 不保证被编译器识别为动态。\n const styleText = () => {\n const parts = [`flex-grow:${size()}`, \"flex-shrink:1\", \"flex-basis:0%\"];\n const extra = local.style;\n if (typeof extra === \"string\") parts.push(extra);\n else if (extra && typeof extra === \"object\") {\n for (const [key, value] of Object.entries(extra)) {\n if (value === null || value === undefined) continue;\n parts.push(`${toKebabCase(key)}:${value}`);\n }\n }\n return parts.join(\";\");\n };\n\n return (\n <div\n {...rest}\n id={local.id}\n ref={(el) => {\n const meta: ResizablePanelMeta = {\n id,\n element: el,\n minSize: () => parseSize(local.minSize, 0),\n maxSize: () => parseSize(local.maxSize, 100),\n collapsible: () => local.collapsible,\n collapsedSize: () => parseSize(local.collapsedSize, 0),\n defaultSize:\n local.defaultSize === undefined\n ? undefined\n : parseSize(local.defaultSize, 0),\n onResize: (value) => local.onResize?.(value),\n onCollapse: () => local.onCollapse?.(),\n onExpand: () => local.onExpand?.(),\n };\n const unregister = ctx.registerPanel(meta);\n local.panelRef?.({\n collapse: () => ctx.collapsePanel(id),\n expand: () => ctx.expandPanel(id),\n resize: (value) => ctx.setPanelSize(id, value),\n getSize: () => ctx.getPanelSize(id),\n isCollapsed: () => ctx.isPanelCollapsed(id),\n isExpanded: () => !ctx.isPanelCollapsed(id),\n });\n onCleanup(() => {\n unregister();\n local.panelRef?.(undefined);\n });\n }}\n data-slot=\"resizable-panel\"\n data-panel-id={id}\n data-panel-size={roundPercent(size())}\n data-panel-collapsed={ctx.isPanelCollapsed(id) ? \"\" : undefined}\n style={styleText()}\n class={clsx(\"relative min-h-0 min-w-0 overflow-hidden\", local.class)}\n classList={local.classList}\n >\n {local.children}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgBW,EAAeC,GAA4B;CACzD,IAAMC,IAAMR,EAA8B,gBAAgB,GACpDS,IAASb,EACb;EAAEc,SAAS;EAAGC,SAAS;EAAKC,aAAa;EAAOC,eAAe;CAAE,GACjEN,CACF,GACM,CAACQ,GAAOC,KAAQlB,EAAWW,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKQ,IAAKF,EAAME,MAAMtB,EAAe,GAGhCuB,IACJH,EAAMI,gBAAgBC,KAAAA,IAAY,IAAInB,EAAUc,EAAMI,aAAa,CAAC,GAChEE,UAAab,EAAIc,MAAM,CAAC,CAACL,MAAOC,GAIhCK,UAAkB;EACtB,IAAMC,IAAQ;GAAC,aAAaH,EAAK;GAAK;GAAiB;EAAe,GAChEI,IAAQV,EAAMW;EACpB,IAAI,OAAOD,KAAU,UAAUD,EAAMG,KAAKF,CAAK;OAC1C,IAAIA,KAAS,OAAOA,KAAU,UACjC,KAAK,IAAM,CAACG,GAAKC,MAAUC,OAAOC,QAAQN,CAAK,GAC7C,AAAII,KAAU,QACdL,EAAMG,KAAK,GAAGxB,EAAYyB,CAAG,EAAC,GAAIC,GAAO;EAG7C,OAAOL,EAAMQ,KAAK,GAAG;CACvB;CAEA,cAAA;EAAA,IAAAC,IAAAC,EAAA;EA0CmB,OA1CnBC,GAIUC,MAAO;GACX,IAAMC,IAA2B;IAC/BpB;IACAqB,SAASF;IACT1B,eAAeT,EAAUc,EAAML,SAAS,CAAC;IACzCC,eAAeV,EAAUc,EAAMJ,SAAS,GAAG;IAC3CC,mBAAmBG,EAAMH;IACzBC,qBAAqBZ,EAAUc,EAAMF,eAAe,CAAC;IACrDM,aACEJ,EAAMI,gBAAgBC,KAAAA,IAClBA,KAAAA,IACAnB,EAAUc,EAAMI,aAAa,CAAC;IACpCoB,WAAWV,MAAUd,EAAMwB,WAAWV,CAAK;IAC3CW,kBAAkBzB,EAAMyB,aAAa;IACrCC,gBAAgB1B,EAAM0B,WAAW;GACnC,GACMC,IAAalC,EAAImC,cAAcN,CAAI;GASzCxC,AARAkB,EAAM6B,WAAW;IACfC,gBAAgBrC,EAAIsC,cAAc7B,CAAE;IACpC8B,cAAcvC,EAAIwC,YAAY/B,CAAE;IAChCgC,SAASpB,MAAUrB,EAAI0C,aAAajC,GAAIY,CAAK;IAC7CsB,eAAe3C,EAAI4C,aAAanC,CAAE;IAClCoC,mBAAmB7C,EAAI8C,iBAAiBrC,CAAE;IAC1CsC,kBAAkB,CAAC/C,EAAI8C,iBAAiBrC,CAAE;GAC5C,CAAC,GACDpB,QAAgB;IAEdkB,AADA2B,EAAW,GACX3B,EAAM6B,WAAWxB,KAAAA,CAAS;GAC5B,CAAC;EACH,GAACa,CAAA,GAAAuB,EAAAvB,GAAAwB,EA/BGzC,GAAI;GAAA,IACRC,KAAE;IAAA,OAAEF,EAAME;GAAE;GAAA,aA+BF;GAAiB,iBACZA;GAAE,IAAA,oBAAA;IAAA,OACAf,EAAamB,EAAK,CAAC;GAAC;GAAA,IAAA,yBAAA;IAAA,OACfb,EAAI8C,iBAAiBrC,CAAE,IAAI,KAAKG,KAAAA;GAAS;GAAA,IAC/DM,QAAK;IAAA,OAAEH,EAAU;GAAC;GAAA,IAAAyE,QAAA;IAAA,OACXjG,EAAK,4CAA4CgB,EAAM6C,KAAK;GAAC;GAAA,IACpEC,YAAS;IAAA,OAAE9C,EAAM8C;GAAS;EAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAA7B,SAEzBlB,EAAMgD,QAAQ,GAAA9B;CAAA,EAAA,CAAA;AAGrB"}
@@ -0,0 +1 @@
1
+ export { ResizablePanel } from './ResizablePanel';
@@ -0,0 +1,6 @@
1
+ import { ResizablePanelGroupProps } from '../resizable.types';
2
+ /**
3
+ * 可调整布局的根:声明排列方向与初始/持久化布局,向下提供 context。
4
+ * 子节点按 `Panel / Handle / Panel ...` 交替组合。
5
+ */
6
+ export declare function ResizablePanelGroup(props: ResizablePanelGroupProps): import('solid-js').JSX.Element;
@@ -0,0 +1,66 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { ResizablePanelGroupContext as t } from "../resizable.context.js";
3
+ import { useResizablePanelGroup as n } from "../useResizablePanelGroup.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/resizable/ResizablePanelGroup/ResizablePanelGroup.tsx
7
+ var p = /*#__PURE__*/ s("<div>");
8
+ function m(s) {
9
+ let m = u({
10
+ orientation: "horizontal",
11
+ keyboardResizeBy: 10
12
+ }, s), [h, g] = f(m, [
13
+ "class",
14
+ "classList",
15
+ "orientation",
16
+ "defaultLayout",
17
+ "onLayoutChange",
18
+ "autoSaveId",
19
+ "storage",
20
+ "keyboardResizeBy",
21
+ "children"
22
+ ]), _ = n({
23
+ orientation: () => h.orientation,
24
+ defaultLayout: () => h.defaultLayout,
25
+ onLayoutChange: (e) => h.onLayoutChange?.(e),
26
+ autoSaveId: () => h.autoSaveId,
27
+ storage: () => h.storage,
28
+ keyboardResizeBy: () => h.keyboardResizeBy
29
+ });
30
+ return l(() => {
31
+ if (!_.dragging()) return;
32
+ let e = h.orientation === "horizontal" ? "ew-resize" : "ns-resize", t = document.createElement("style");
33
+ t.setAttribute("data-resizable-drag", ""), t.textContent = `*, *:hover { cursor: ${e} !important; }`, document.head.appendChild(t);
34
+ let n = document.body.style.userSelect;
35
+ document.body.style.userSelect = "none", d(() => {
36
+ t.remove(), document.body.style.userSelect = n;
37
+ });
38
+ }), r(t.Provider, {
39
+ value: _,
40
+ get children() {
41
+ var t = p();
42
+ return c((e) => {
43
+ _.setGroupElement(e), d(() => _.setGroupElement(void 0));
44
+ }, t), o(t, a(g, {
45
+ "data-slot": "resizable-panel-group",
46
+ role: "group",
47
+ get "data-orientation"() {
48
+ return h.orientation;
49
+ },
50
+ get "data-dragging"() {
51
+ return _.dragging() ? "" : void 0;
52
+ },
53
+ get class() {
54
+ return e("flex h-full w-full data-[orientation=vertical]:flex-col", h.class);
55
+ },
56
+ get classList() {
57
+ return h.classList;
58
+ }
59
+ }), !1, !0), i(t, () => h.children), t;
60
+ }
61
+ });
62
+ }
63
+ //#endregion
64
+ export { m as ResizablePanelGroup };
65
+
66
+ //# sourceMappingURL=ResizablePanelGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizablePanelGroup.js","names":["createEffect","mergeProps","onCleanup","splitProps","clsx","ResizablePanelGroupContext","useResizablePanelGroup","ResizablePanelGroupProps","ResizablePanelGroup","props","merged","orientation","const","keyboardResizeBy","local","rest","ctx","defaultLayout","onLayoutChange","next","autoSaveId","storage","dragging","cursor","sheet","document","createElement","setAttribute","textContent","head","appendChild","previousUserSelect","body","style","userSelect","remove","_$createComponent","Provider","value","children","_el$","_tmpl$","_$use","el","setGroupElement","undefined","_$spread","_$mergeProps","data-orientation","data-dragging","class","classList","_$insert","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","_tmpl$","ResizablePanelGroup","merged","props","local","rest","splitProps","ctx","useResizablePanelGroup","next","createEffect","cursor","sheet","previousUserSelect","onCleanup","createComponent","ResizablePanelGroupContext","_el$","use","el","spread","mergeProps","\"role\"","\"class\"","clsx","insert"],"sources":["../../../../src/components/resizable/ResizablePanelGroup/ResizablePanelGroup.tsx"],"sourcesContent":["import { createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ResizablePanelGroupContext } from \"../resizable.context\";\nimport { useResizablePanelGroup } from \"../useResizablePanelGroup\";\nimport type { ResizablePanelGroupProps } from \"../resizable.types\";\n\n/**\n * 可调整布局的根:声明排列方向与初始/持久化布局,向下提供 context。\n * 子节点按 `Panel / Handle / Panel ...` 交替组合。\n */\nexport function ResizablePanelGroup(props: ResizablePanelGroupProps) {\n const merged = mergeProps(\n { orientation: \"horizontal\" as const, keyboardResizeBy: 10 },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"orientation\",\n \"defaultLayout\",\n \"onLayoutChange\",\n \"autoSaveId\",\n \"storage\",\n \"keyboardResizeBy\",\n \"children\",\n ]);\n\n const ctx = useResizablePanelGroup({\n orientation: () => local.orientation,\n defaultLayout: () => local.defaultLayout,\n onLayoutChange: (next) => local.onLayoutChange?.(next),\n autoSaveId: () => local.autoSaveId,\n storage: () => local.storage,\n keyboardResizeBy: () => local.keyboardResizeBy,\n });\n\n // 拖拽期间强制全局双箭头光标:与 react-resizable-panels 一样注入一条\n // `*, *:hover { cursor: … !important }`,这样指针经过面板/文字/链接时也不会变回默认光标;\n // 顺带禁用文本选择,避免拖拽中选中内容。\n createEffect(() => {\n if (!ctx.dragging()) return;\n const cursor =\n local.orientation === \"horizontal\" ? \"ew-resize\" : \"ns-resize\";\n const sheet = document.createElement(\"style\");\n sheet.setAttribute(\"data-resizable-drag\", \"\");\n sheet.textContent = `*, *:hover { cursor: ${cursor} !important; }`;\n document.head.appendChild(sheet);\n const previousUserSelect = document.body.style.userSelect;\n document.body.style.userSelect = \"none\";\n onCleanup(() => {\n sheet.remove();\n document.body.style.userSelect = previousUserSelect;\n });\n });\n\n return (\n <ResizablePanelGroupContext.Provider value={ctx}>\n <div\n {...rest}\n ref={(el) => {\n ctx.setGroupElement(el);\n onCleanup(() => ctx.setGroupElement(undefined));\n }}\n data-slot=\"resizable-panel-group\"\n role=\"group\"\n data-orientation={local.orientation}\n data-dragging={ctx.dragging() ? \"\" : undefined}\n class={clsx(\n \"flex h-full w-full data-[orientation=vertical]:flex-col\",\n local.class,\n )}\n classList={local.classList}\n >\n {local.children}\n </div>\n </ResizablePanelGroupContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAUA,SAAgBQ,EAAoBC,GAAiC;CACnE,IAAMC,IAAST,EACb;EAAEU,aAAa;EAAuBE,kBAAkB;CAAG,GAC3DJ,CACF,GACM,CAACK,GAAOC,KAAQZ,EAAWO,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKM,IAAMV,EAAuB;EACjCK,mBAAmBG,EAAMH;EACzBM,qBAAqBH,EAAMG;EAC3BC,iBAAiBC,MAASL,EAAMI,iBAAiBC,CAAI;EACrDC,kBAAkBN,EAAMM;EACxBC,eAAeP,EAAMO;EACrBR,wBAAwBC,EAAMD;CAChC,CAAC;CAqBD,OAhBAb,QAAmB;EACjB,IAAI,CAACgB,EAAIM,SAAS,GAAG;EACrB,IAAMC,IACJT,EAAMH,gBAAgB,eAAe,cAAc,aAC/Ca,IAAQC,SAASC,cAAc,OAAO;EAG5CD,AAFAD,EAAMG,aAAa,uBAAuB,EAAE,GAC5CH,EAAMI,cAAc,wBAAwBL,EAAM,iBAClDE,SAASI,KAAKC,YAAYN,CAAK;EAC/B,IAAMO,IAAqBN,SAASO,KAAKC,MAAMC;EAE/ChC,AADAuB,SAASO,KAAKC,MAAMC,aAAa,QACjChC,QAAgB;GAEduB,AADAD,EAAMW,OAAO,GACbV,SAASO,KAAKC,MAAMC,aAAaH;EACnC,CAAC;CACH,CAAC,GAEDK,EACG/B,EAA2BgC,UAAQ;EAACC,OAAOtB;EAAG,IAAAuB,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAiB5B,OAjB4BC,GAGrCC,MAAO;IAEXzC,AADAc,EAAI4B,gBAAgBD,CAAE,GACtBzC,QAAgBc,EAAI4B,gBAAgBC,KAAAA,CAAS,CAAC;GAChD,GAACL,CAAA,GAAAM,EAAAN,GAAAO,EAJGhC,GAAI;IAAA,aAKE;IAAuBgE,MAC5B;IAAO,IAAA,qBAAA;KAAA,OACMjE,EAAMH;IAAW;IAAA,IAAA,kBAAA;KAAA,OACpBK,EAAIM,SAAS,IAAI,KAAKuB,KAAAA;IAAS;IAAA,IAAAmC,QAAA;KAAA,OACvC5E,EACL,2DACAU,EAAMoC,KACR;IAAC;IAAA,IACDC,YAAS;KAAA,OAAErC,EAAMqC;IAAS;GAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAZ,SAEzB1B,EAAMyB,QAAQ,GAAAC;EAAA;CAAA,CAAA;AAIvB"}
@@ -0,0 +1 @@
1
+ export { ResizablePanelGroup } from './ResizablePanelGroup';
@@ -0,0 +1,4 @@
1
+ export { ResizablePanelGroup } from './ResizablePanelGroup';
2
+ export { ResizablePanel } from './ResizablePanel';
3
+ export { ResizableHandle } from './ResizableHandle';
4
+ export type { ResizableOrientation, ResizableSize, ResizableLayout, ResizablePanelHandle, ResizablePanelGroupProps, ResizablePanelProps, ResizableHandleProps, } from './resizable.types';
@@ -0,0 +1,4 @@
1
+ import { ResizablePanelGroup as e } from "./ResizablePanelGroup/ResizablePanelGroup.js";
2
+ import { ResizablePanel as t } from "./ResizablePanel/ResizablePanel.js";
3
+ import { ResizableHandle as n } from "./ResizableHandle/ResizableHandle.js";
4
+ export { n as ResizableHandle, t as ResizablePanel, e as ResizablePanelGroup };
@@ -0,0 +1,38 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ResizableOrientation, ResizablePanelMeta } from './resizable.types';
3
+ interface AdjacentPanels {
4
+ prev: ResizablePanelMeta;
5
+ next: ResizablePanelMeta;
6
+ prevSize: number;
7
+ total: number;
8
+ }
9
+ export interface ResizablePanelGroupContextValue {
10
+ orientation: Accessor<ResizableOrientation>;
11
+ /** id -> 百分比;store 代理,按 id 读取可精确追踪 */
12
+ sizes: () => Record<string, number>;
13
+ groupElement: Accessor<HTMLElement | undefined>;
14
+ setGroupElement: (el: HTMLElement | undefined) => void;
15
+ dragging: Accessor<boolean>;
16
+ keyboardResizeBy: Accessor<number>;
17
+ registerPanel: (meta: ResizablePanelMeta) => () => void;
18
+ /** 拖拽/键盘:根据 handle 的相邻兄弟解析出前后两个 panel */
19
+ resolveAdjacent: (handleEl: HTMLElement) => AdjacentPanels | undefined;
20
+ setAdjacentSize: (handleEl: HTMLElement, targetPrevSize: number) => void;
21
+ nudgeAdjacent: (handleEl: HTMLElement, deltaPercent: number) => void;
22
+ toggleHandleCollapse: (handleEl: HTMLElement) => void;
23
+ /** 沿主轴的可拖拽长度(px),用于 px -> % 换算 */
24
+ groupSizePx: () => number;
25
+ isRtl: () => boolean;
26
+ beginDrag: () => void;
27
+ endDrag: () => void;
28
+ commitLayout: () => void;
29
+ /** 命令式 panel 操作 */
30
+ setPanelSize: (id: string, size: number) => void;
31
+ collapsePanel: (id: string) => boolean;
32
+ expandPanel: (id: string) => boolean;
33
+ isPanelCollapsed: (id: string) => boolean;
34
+ getPanelSize: (id: string) => number;
35
+ }
36
+ export declare const ResizablePanelGroupContext: import('solid-js').Context<ResizablePanelGroupContextValue | undefined>;
37
+ export declare function useResizablePanelGroupContext(component: string): ResizablePanelGroupContextValue;
38
+ export {};
@@ -0,0 +1,12 @@
1
+ import { createContext as e, useContext as t } from "solid-js";
2
+ //#region src/components/resizable/resizable.context.ts
3
+ var n = e();
4
+ function r(e) {
5
+ let r = t(n);
6
+ if (!r) throw Error(`<${e}> 必须渲染在 <ResizablePanelGroup> 内部`);
7
+ return r;
8
+ }
9
+ //#endregion
10
+ export { n as ResizablePanelGroupContext, r as useResizablePanelGroupContext };
11
+
12
+ //# sourceMappingURL=resizable.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.context.js","names":["ResizablePanelGroupContext","createContext","useResizablePanelGroupContext","ctx","useContext","component"],"sources":["../../../src/components/resizable/resizable.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type {\n ResizableOrientation,\n ResizablePanelMeta,\n} from \"./resizable.types\";\n\ninterface AdjacentPanels {\n prev: ResizablePanelMeta;\n next: ResizablePanelMeta;\n prevSize: number;\n total: number;\n}\n\nexport interface ResizablePanelGroupContextValue {\n orientation: Accessor<ResizableOrientation>;\n /** id -> 百分比;store 代理,按 id 读取可精确追踪 */\n sizes: () => Record<string, number>;\n groupElement: Accessor<HTMLElement | undefined>;\n setGroupElement: (el: HTMLElement | undefined) => void;\n dragging: Accessor<boolean>;\n keyboardResizeBy: Accessor<number>;\n registerPanel: (meta: ResizablePanelMeta) => () => void;\n\n /** 拖拽/键盘:根据 handle 的相邻兄弟解析出前后两个 panel */\n resolveAdjacent: (handleEl: HTMLElement) => AdjacentPanels | undefined;\n setAdjacentSize: (handleEl: HTMLElement, targetPrevSize: number) => void;\n nudgeAdjacent: (handleEl: HTMLElement, deltaPercent: number) => void;\n toggleHandleCollapse: (handleEl: HTMLElement) => void;\n /** 沿主轴的可拖拽长度(px),用于 px -> % 换算 */\n groupSizePx: () => number;\n isRtl: () => boolean;\n beginDrag: () => void;\n endDrag: () => void;\n commitLayout: () => void;\n\n /** 命令式 panel 操作 */\n setPanelSize: (id: string, size: number) => void;\n collapsePanel: (id: string) => boolean;\n expandPanel: (id: string) => boolean;\n isPanelCollapsed: (id: string) => boolean;\n getPanelSize: (id: string) => number;\n}\n\nexport const ResizablePanelGroupContext =\n createContext<ResizablePanelGroupContextValue>();\n\nexport function useResizablePanelGroupContext(\n component: string,\n): ResizablePanelGroupContextValue {\n const ctx = useContext(ResizablePanelGroupContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <ResizablePanelGroup> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AA2CA,IAAaA,IACXC,EAA+C;AAEjD,SAAgBC,EACd,GACiC;CACjC,IAAMC,IAAMC,EAAWJ,CAA0B;CACjD,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,iCAAiC;CAEjE,OAAOF;AACT"}
@@ -0,0 +1,76 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { BaseProps, PolymorphicProps } from '../../types';
3
+ export type ResizableOrientation = "horizontal" | "vertical";
4
+ /** 尺寸:number 视为百分比;字符串支持 "25%" 或 "25"(仅百分比,不支持 px) */
5
+ export type ResizableSize = number | `${number}%` | `${number}`;
6
+ /** 布局:id -> 百分比(0-100),对齐 react-resizable-panels 的 Layout */
7
+ export type ResizableLayout = Record<string, number>;
8
+ export interface ResizablePanelGroupProps extends PolymorphicProps<"div", BaseProps & {
9
+ /** 排列方向,默认 "horizontal" */
10
+ orientation?: ResizableOrientation;
11
+ /** 初始布局(按 panel id),仅在首次挂载时使用 */
12
+ defaultLayout?: ResizableLayout;
13
+ /** 布局变化回调(拖拽、键盘、命令都会触发) */
14
+ onLayoutChange?: (layout: ResizableLayout) => void;
15
+ /** 自动持久化到 storage 的 key */
16
+ autoSaveId?: string;
17
+ /** 持久化介质,默认 localStorage(不可用时关闭持久化) */
18
+ storage?: Storage;
19
+ /** 键盘方向键一次移动的像素,默认 10 */
20
+ keyboardResizeBy?: number;
21
+ }, false> {
22
+ }
23
+ export interface ResizablePanelHandle {
24
+ /** 折叠;不可折叠或已折叠时返回 false */
25
+ collapse: () => boolean;
26
+ /** 展开;不可折叠或未折叠时返回 false */
27
+ expand: () => boolean;
28
+ /** 直接设置该 panel 的百分比尺寸 */
29
+ resize: (size: number) => void;
30
+ getSize: () => number;
31
+ isCollapsed: () => boolean;
32
+ isExpanded: () => boolean;
33
+ }
34
+ export interface ResizablePanelProps extends PolymorphicProps<"div", BaseProps & {
35
+ /** 布局持久化/onLayoutChange 里的键;缺省用自动 id */
36
+ id?: string;
37
+ /** 初始尺寸,默认均分剩余空间 */
38
+ defaultSize?: ResizableSize;
39
+ /** 最小尺寸,默认 0 */
40
+ minSize?: ResizableSize;
41
+ /** 最大尺寸,默认 100 */
42
+ maxSize?: ResizableSize;
43
+ /** 是否可在拖拽到 minSize 以下时折叠 */
44
+ collapsible?: boolean;
45
+ /** 折叠后的尺寸,默认 0 */
46
+ collapsedSize?: ResizableSize;
47
+ onResize?: (size: number) => void;
48
+ onCollapse?: () => void;
49
+ onExpand?: () => void;
50
+ /** 暴露命令式句柄 */
51
+ panelRef?: (handle: ResizablePanelHandle | undefined) => void;
52
+ }, false> {
53
+ }
54
+ export interface ResizableHandleProps extends PolymorphicProps<"div", BaseProps & {
55
+ id?: string;
56
+ /** 禁用拖拽与键盘调整 */
57
+ disabled?: boolean;
58
+ /** 显示可见的抓手 */
59
+ withHandle?: boolean;
60
+ /** 拖拽开始/结束 */
61
+ onDragging?: (dragging: boolean) => void;
62
+ }, false> {
63
+ }
64
+ /** 引擎内部使用的 panel 元数据(constraints 用 accessor 保持响应式) */
65
+ export interface ResizablePanelMeta {
66
+ id: string;
67
+ element: HTMLElement;
68
+ minSize: Accessor<number>;
69
+ maxSize: Accessor<number>;
70
+ collapsible: Accessor<boolean>;
71
+ collapsedSize: Accessor<number>;
72
+ defaultSize: number | undefined;
73
+ onResize?: (size: number) => void;
74
+ onCollapse?: () => void;
75
+ onExpand?: () => void;
76
+ }
@@ -0,0 +1,16 @@
1
+ /** 解析尺寸:number/`"25%"`/`"25"` 都按百分比处理(不支持 px,按需再扩展) */
2
+ export declare function parseSize(value: number | string | undefined, fallback: number): number;
3
+ export declare function clamp(value: number, min: number, max: number): number;
4
+ /** 百分比保留 2 位小数,避免 onLayoutChange/layout 输出出现长尾浮点 */
5
+ export declare function roundPercent(value: number): number;
6
+ /**
7
+ * 把一组原始权重归一化到总和 100,并在迭代中尊重每个面板的上下界。
8
+ * 之所以不用简单的按比例缩放:min/max 会在缩放后再次越界,需要固定越界项、
9
+ * 把剩余空间按权重分给其余项(最多 4 轮即可收敛)。
10
+ */
11
+ export declare function normalizeSizes(raw: number[], bounds: Array<{
12
+ min: number;
13
+ max: number;
14
+ }>): number[];
15
+ /** camelCase -> kebab-case;CSS 自定义属性(--x)原样保留 */
16
+ export declare function toKebabCase(key: string): string;