@open-dy/vibecoding-sdk-taro 0.0.1-beta.5 → 0.0.1

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 (527) hide show
  1. package/dist/reference/llms.txt +52 -2
  2. package/dist/reference/sdk-api/build/taro/BuildContext.md +7 -2
  3. package/dist/reference/sdk-api/build/taro/CreateMicroappTaroConfigOptions.md +1 -2
  4. package/dist/reference/sdk-api/build/taro/createMicroappTaroConfig.md +1 -2
  5. package/dist/reference/sdk-api/runtime/CreateMicroappClientOptions.md +7 -2
  6. package/dist/reference/sdk-api/runtime/createMicroappClient.md +7 -2
  7. package/dist/reference/sdk-api/ui/accordion/Accordion.md +114 -0
  8. package/dist/reference/sdk-api/ui/accordion/AccordionContent.md +100 -0
  9. package/dist/reference/sdk-api/ui/accordion/AccordionItem.md +107 -0
  10. package/dist/reference/sdk-api/ui/accordion/AccordionTrigger.md +100 -0
  11. package/dist/reference/sdk-api/ui/accordion/index.md +12 -0
  12. package/dist/reference/sdk-api/ui/alert/Alert.md +106 -0
  13. package/dist/reference/sdk-api/ui/alert/AlertAction.md +100 -0
  14. package/dist/reference/sdk-api/ui/alert/AlertDescription.md +100 -0
  15. package/dist/reference/sdk-api/ui/alert/AlertTitle.md +100 -0
  16. package/dist/reference/sdk-api/ui/alert/index.md +12 -0
  17. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialog.md +58 -0
  18. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogAction.md +107 -0
  19. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogCancel.md +107 -0
  20. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogContent.md +106 -0
  21. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogDescription.md +100 -0
  22. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogFooter.md +100 -0
  23. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogHeader.md +100 -0
  24. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogOverlay.md +100 -0
  25. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogPortal.md +55 -0
  26. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogTitle.md +100 -0
  27. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogTrigger.md +118 -0
  28. package/dist/reference/sdk-api/ui/alert-dialog/index.md +19 -0
  29. package/dist/reference/sdk-api/ui/aspect-ratio/AspectRatio.md +106 -0
  30. package/dist/reference/sdk-api/ui/aspect-ratio/index.md +9 -0
  31. package/dist/reference/sdk-api/ui/avatar/Avatar.md +106 -0
  32. package/dist/reference/sdk-api/ui/avatar/AvatarBadge.md +100 -0
  33. package/dist/reference/sdk-api/ui/avatar/AvatarFallback.md +100 -0
  34. package/dist/reference/sdk-api/ui/avatar/AvatarGroup.md +100 -0
  35. package/dist/reference/sdk-api/ui/avatar/AvatarGroupCount.md +100 -0
  36. package/dist/reference/sdk-api/ui/avatar/AvatarImage.md +108 -0
  37. package/dist/reference/sdk-api/ui/avatar/index.md +14 -0
  38. package/dist/reference/sdk-api/ui/badge/Badge.md +114 -0
  39. package/dist/reference/sdk-api/ui/badge/badgeVariants.md +70 -0
  40. package/dist/reference/sdk-api/ui/badge/index.md +10 -0
  41. package/dist/reference/sdk-api/ui/button/Button.md +210 -0
  42. package/dist/reference/sdk-api/ui/button/ButtonProps.md +188 -0
  43. package/dist/reference/sdk-api/ui/button/buttonVariants.md +84 -0
  44. package/dist/reference/sdk-api/ui/button/index.md +11 -0
  45. package/dist/reference/sdk-api/ui/button-group/ButtonGroup.md +106 -0
  46. package/dist/reference/sdk-api/ui/button-group/ButtonGroupSeparator.md +106 -0
  47. package/dist/reference/sdk-api/ui/button-group/ButtonGroupText.md +106 -0
  48. package/dist/reference/sdk-api/ui/button-group/buttonGroupVariants.md +70 -0
  49. package/dist/reference/sdk-api/ui/button-group/index.md +12 -0
  50. package/dist/reference/sdk-api/ui/calendar/Calendar.md +144 -0
  51. package/dist/reference/sdk-api/ui/calendar/CalendarProps.md +118 -0
  52. package/dist/reference/sdk-api/ui/calendar/index.md +10 -0
  53. package/dist/reference/sdk-api/ui/card/Card.md +106 -0
  54. package/dist/reference/sdk-api/ui/card/CardAction.md +100 -0
  55. package/dist/reference/sdk-api/ui/card/CardContent.md +100 -0
  56. package/dist/reference/sdk-api/ui/card/CardDescription.md +100 -0
  57. package/dist/reference/sdk-api/ui/card/CardFooter.md +100 -0
  58. package/dist/reference/sdk-api/ui/card/CardHeader.md +100 -0
  59. package/dist/reference/sdk-api/ui/card/CardTitle.md +100 -0
  60. package/dist/reference/sdk-api/ui/card/index.md +15 -0
  61. package/dist/reference/sdk-api/ui/carousel/Carousel.md +108 -0
  62. package/dist/reference/sdk-api/ui/carousel/CarouselContent.md +100 -0
  63. package/dist/reference/sdk-api/ui/carousel/CarouselItem.md +100 -0
  64. package/dist/reference/sdk-api/ui/carousel/CarouselNext.md +219 -0
  65. package/dist/reference/sdk-api/ui/carousel/CarouselPrevious.md +219 -0
  66. package/dist/reference/sdk-api/ui/carousel/index.md +14 -0
  67. package/dist/reference/sdk-api/ui/carousel/useCarousel.md +46 -0
  68. package/dist/reference/sdk-api/ui/checkbox/Checkbox.md +109 -0
  69. package/dist/reference/sdk-api/ui/checkbox/index.md +9 -0
  70. package/dist/reference/sdk-api/ui/collapsible/Collapsible.md +108 -0
  71. package/dist/reference/sdk-api/ui/collapsible/CollapsibleContent.md +100 -0
  72. package/dist/reference/sdk-api/ui/collapsible/CollapsibleTrigger.md +119 -0
  73. package/dist/reference/sdk-api/ui/collapsible/index.md +11 -0
  74. package/dist/reference/sdk-api/ui/combobox/Combobox.md +124 -0
  75. package/dist/reference/sdk-api/ui/combobox/ComboboxChip.md +107 -0
  76. package/dist/reference/sdk-api/ui/combobox/ComboboxChips.md +100 -0
  77. package/dist/reference/sdk-api/ui/combobox/ComboboxChipsInput.md +107 -0
  78. package/dist/reference/sdk-api/ui/combobox/ComboboxCollection.md +100 -0
  79. package/dist/reference/sdk-api/ui/combobox/ComboboxContent.md +106 -0
  80. package/dist/reference/sdk-api/ui/combobox/ComboboxEmpty.md +100 -0
  81. package/dist/reference/sdk-api/ui/combobox/ComboboxGroup.md +100 -0
  82. package/dist/reference/sdk-api/ui/combobox/ComboboxInput.md +113 -0
  83. package/dist/reference/sdk-api/ui/combobox/ComboboxItem.md +106 -0
  84. package/dist/reference/sdk-api/ui/combobox/ComboboxLabel.md +100 -0
  85. package/dist/reference/sdk-api/ui/combobox/ComboboxList.md +105 -0
  86. package/dist/reference/sdk-api/ui/combobox/ComboboxSeparator.md +100 -0
  87. package/dist/reference/sdk-api/ui/combobox/ComboboxTrigger.md +100 -0
  88. package/dist/reference/sdk-api/ui/combobox/ComboboxValue.md +105 -0
  89. package/dist/reference/sdk-api/ui/combobox/index.md +24 -0
  90. package/dist/reference/sdk-api/ui/combobox/useComboboxAnchor.md +43 -0
  91. package/dist/reference/sdk-api/ui/dialog/Dialog.md +58 -0
  92. package/dist/reference/sdk-api/ui/dialog/DialogClose.md +100 -0
  93. package/dist/reference/sdk-api/ui/dialog/DialogContent.md +107 -0
  94. package/dist/reference/sdk-api/ui/dialog/DialogDescription.md +100 -0
  95. package/dist/reference/sdk-api/ui/dialog/DialogFooter.md +100 -0
  96. package/dist/reference/sdk-api/ui/dialog/DialogHeader.md +100 -0
  97. package/dist/reference/sdk-api/ui/dialog/DialogOverlay.md +100 -0
  98. package/dist/reference/sdk-api/ui/dialog/DialogPortal.md +55 -0
  99. package/dist/reference/sdk-api/ui/dialog/DialogTitle.md +100 -0
  100. package/dist/reference/sdk-api/ui/dialog/DialogTrigger.md +106 -0
  101. package/dist/reference/sdk-api/ui/dialog/index.md +18 -0
  102. package/dist/reference/sdk-api/ui/drawer/Drawer.md +59 -0
  103. package/dist/reference/sdk-api/ui/drawer/DrawerClose.md +100 -0
  104. package/dist/reference/sdk-api/ui/drawer/DrawerContent.md +100 -0
  105. package/dist/reference/sdk-api/ui/drawer/DrawerDescription.md +100 -0
  106. package/dist/reference/sdk-api/ui/drawer/DrawerFooter.md +100 -0
  107. package/dist/reference/sdk-api/ui/drawer/DrawerHeader.md +100 -0
  108. package/dist/reference/sdk-api/ui/drawer/DrawerOverlay.md +100 -0
  109. package/dist/reference/sdk-api/ui/drawer/DrawerPortal.md +55 -0
  110. package/dist/reference/sdk-api/ui/drawer/DrawerTitle.md +100 -0
  111. package/dist/reference/sdk-api/ui/drawer/DrawerTrigger.md +100 -0
  112. package/dist/reference/sdk-api/ui/drawer/index.md +18 -0
  113. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenu.md +58 -0
  114. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuCheckboxItem.md +107 -0
  115. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuContent.md +106 -0
  116. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuGroup.md +100 -0
  117. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuItem.md +107 -0
  118. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuLabel.md +106 -0
  119. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuPortal.md +55 -0
  120. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuRadioGroup.md +100 -0
  121. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuRadioItem.md +106 -0
  122. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSeparator.md +100 -0
  123. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuShortcut.md +100 -0
  124. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSub.md +58 -0
  125. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSubContent.md +100 -0
  126. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSubTrigger.md +106 -0
  127. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuTrigger.md +119 -0
  128. package/dist/reference/sdk-api/ui/dropdown-menu/index.md +23 -0
  129. package/dist/reference/sdk-api/ui/empty/Empty.md +100 -0
  130. package/dist/reference/sdk-api/ui/empty/EmptyContent.md +100 -0
  131. package/dist/reference/sdk-api/ui/empty/EmptyDescription.md +100 -0
  132. package/dist/reference/sdk-api/ui/empty/EmptyHeader.md +100 -0
  133. package/dist/reference/sdk-api/ui/empty/EmptyMedia.md +106 -0
  134. package/dist/reference/sdk-api/ui/empty/EmptyTitle.md +100 -0
  135. package/dist/reference/sdk-api/ui/empty/index.md +14 -0
  136. package/dist/reference/sdk-api/ui/field/Field.md +106 -0
  137. package/dist/reference/sdk-api/ui/field/FieldContent.md +100 -0
  138. package/dist/reference/sdk-api/ui/field/FieldDescription.md +100 -0
  139. package/dist/reference/sdk-api/ui/field/FieldError.md +112 -0
  140. package/dist/reference/sdk-api/ui/field/FieldGroup.md +100 -0
  141. package/dist/reference/sdk-api/ui/field/FieldLabel.md +85 -0
  142. package/dist/reference/sdk-api/ui/field/FieldLegend.md +106 -0
  143. package/dist/reference/sdk-api/ui/field/FieldSeparator.md +105 -0
  144. package/dist/reference/sdk-api/ui/field/FieldSet.md +100 -0
  145. package/dist/reference/sdk-api/ui/field/FieldTitle.md +100 -0
  146. package/dist/reference/sdk-api/ui/field/index.md +18 -0
  147. package/dist/reference/sdk-api/ui/helpers/collectDataIconState.md +66 -0
  148. package/dist/reference/sdk-api/ui/helpers/index.md +9 -0
  149. package/dist/reference/sdk-api/ui/index.md +57 -0
  150. package/dist/reference/sdk-api/ui/input/Input.md +141 -0
  151. package/dist/reference/sdk-api/ui/input/index.md +9 -0
  152. package/dist/reference/sdk-api/ui/input-group/InputGroup.md +100 -0
  153. package/dist/reference/sdk-api/ui/input-group/InputGroupAddon.md +109 -0
  154. package/dist/reference/sdk-api/ui/input-group/InputGroupButton.md +220 -0
  155. package/dist/reference/sdk-api/ui/input-group/InputGroupInput.md +135 -0
  156. package/dist/reference/sdk-api/ui/input-group/InputGroupText.md +100 -0
  157. package/dist/reference/sdk-api/ui/input-group/InputGroupTextarea.md +126 -0
  158. package/dist/reference/sdk-api/ui/input-group/index.md +14 -0
  159. package/dist/reference/sdk-api/ui/input-otp/InputOTP.md +111 -0
  160. package/dist/reference/sdk-api/ui/input-otp/InputOTPGroup.md +100 -0
  161. package/dist/reference/sdk-api/ui/input-otp/InputOTPSeparator.md +100 -0
  162. package/dist/reference/sdk-api/ui/input-otp/InputOTPSlot.md +107 -0
  163. package/dist/reference/sdk-api/ui/input-otp/index.md +12 -0
  164. package/dist/reference/sdk-api/ui/item/Item.md +115 -0
  165. package/dist/reference/sdk-api/ui/item/ItemActions.md +100 -0
  166. package/dist/reference/sdk-api/ui/item/ItemContent.md +100 -0
  167. package/dist/reference/sdk-api/ui/item/ItemDescription.md +100 -0
  168. package/dist/reference/sdk-api/ui/item/ItemFooter.md +100 -0
  169. package/dist/reference/sdk-api/ui/item/ItemGroup.md +100 -0
  170. package/dist/reference/sdk-api/ui/item/ItemHeader.md +100 -0
  171. package/dist/reference/sdk-api/ui/item/ItemMedia.md +106 -0
  172. package/dist/reference/sdk-api/ui/item/ItemSeparator.md +106 -0
  173. package/dist/reference/sdk-api/ui/item/ItemTitle.md +100 -0
  174. package/dist/reference/sdk-api/ui/item/index.md +18 -0
  175. package/dist/reference/sdk-api/ui/label/Label.md +85 -0
  176. package/dist/reference/sdk-api/ui/label/index.md +9 -0
  177. package/dist/reference/sdk-api/ui/menubar/Menubar.md +100 -0
  178. package/dist/reference/sdk-api/ui/menubar/MenubarCheckboxItem.md +111 -0
  179. package/dist/reference/sdk-api/ui/menubar/MenubarContent.md +108 -0
  180. package/dist/reference/sdk-api/ui/menubar/MenubarGroup.md +100 -0
  181. package/dist/reference/sdk-api/ui/menubar/MenubarItem.md +109 -0
  182. package/dist/reference/sdk-api/ui/menubar/MenubarLabel.md +106 -0
  183. package/dist/reference/sdk-api/ui/menubar/MenubarMenu.md +55 -0
  184. package/dist/reference/sdk-api/ui/menubar/MenubarPortal.md +55 -0
  185. package/dist/reference/sdk-api/ui/menubar/MenubarRadioGroup.md +108 -0
  186. package/dist/reference/sdk-api/ui/menubar/MenubarRadioItem.md +110 -0
  187. package/dist/reference/sdk-api/ui/menubar/MenubarSeparator.md +100 -0
  188. package/dist/reference/sdk-api/ui/menubar/MenubarShortcut.md +100 -0
  189. package/dist/reference/sdk-api/ui/menubar/MenubarSub.md +58 -0
  190. package/dist/reference/sdk-api/ui/menubar/MenubarSubContent.md +108 -0
  191. package/dist/reference/sdk-api/ui/menubar/MenubarSubTrigger.md +107 -0
  192. package/dist/reference/sdk-api/ui/menubar/MenubarTrigger.md +100 -0
  193. package/dist/reference/sdk-api/ui/menubar/index.md +24 -0
  194. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenu.md +100 -0
  195. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuContent.md +106 -0
  196. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuIndicator.md +100 -0
  197. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuItem.md +106 -0
  198. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuLink.md +106 -0
  199. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuList.md +100 -0
  200. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuPositioner.md +100 -0
  201. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuTrigger.md +120 -0
  202. package/dist/reference/sdk-api/ui/navigation-menu/index.md +17 -0
  203. package/dist/reference/sdk-api/ui/navigation-menu/navigationMenuTriggerStyle.md +64 -0
  204. package/dist/reference/sdk-api/ui/pagination/Pagination.md +100 -0
  205. package/dist/reference/sdk-api/ui/pagination/PaginationContent.md +100 -0
  206. package/dist/reference/sdk-api/ui/pagination/PaginationEllipsis.md +100 -0
  207. package/dist/reference/sdk-api/ui/pagination/PaginationItem.md +100 -0
  208. package/dist/reference/sdk-api/ui/pagination/PaginationLink.md +107 -0
  209. package/dist/reference/sdk-api/ui/pagination/PaginationNext.md +121 -0
  210. package/dist/reference/sdk-api/ui/pagination/PaginationPrevious.md +121 -0
  211. package/dist/reference/sdk-api/ui/pagination/index.md +15 -0
  212. package/dist/reference/sdk-api/ui/popover/Popover.md +58 -0
  213. package/dist/reference/sdk-api/ui/popover/PopoverAnchor.md +100 -0
  214. package/dist/reference/sdk-api/ui/popover/PopoverContent.md +108 -0
  215. package/dist/reference/sdk-api/ui/popover/PopoverDescription.md +100 -0
  216. package/dist/reference/sdk-api/ui/popover/PopoverHeader.md +100 -0
  217. package/dist/reference/sdk-api/ui/popover/PopoverTitle.md +100 -0
  218. package/dist/reference/sdk-api/ui/popover/PopoverTrigger.md +119 -0
  219. package/dist/reference/sdk-api/ui/popover/index.md +15 -0
  220. package/dist/reference/sdk-api/ui/portal/Portal.md +55 -0
  221. package/dist/reference/sdk-api/ui/portal/index.md +9 -0
  222. package/dist/reference/sdk-api/ui/progress/Progress.md +109 -0
  223. package/dist/reference/sdk-api/ui/progress/ProgressIndicator.md +107 -0
  224. package/dist/reference/sdk-api/ui/progress/ProgressLabel.md +100 -0
  225. package/dist/reference/sdk-api/ui/progress/ProgressTrack.md +100 -0
  226. package/dist/reference/sdk-api/ui/progress/ProgressValue.md +105 -0
  227. package/dist/reference/sdk-api/ui/progress/index.md +13 -0
  228. package/dist/reference/sdk-api/ui/radio-group/RadioGroup.md +108 -0
  229. package/dist/reference/sdk-api/ui/radio-group/RadioGroupItem.md +107 -0
  230. package/dist/reference/sdk-api/ui/radio-group/index.md +10 -0
  231. package/dist/reference/sdk-api/ui/resizable/ResizableHandle.md +107 -0
  232. package/dist/reference/sdk-api/ui/resizable/ResizablePanel.md +108 -0
  233. package/dist/reference/sdk-api/ui/resizable/ResizablePanelGroup.md +107 -0
  234. package/dist/reference/sdk-api/ui/resizable/index.md +11 -0
  235. package/dist/reference/sdk-api/ui/scroll-area/ScrollArea.md +159 -0
  236. package/dist/reference/sdk-api/ui/scroll-area/ScrollBar.md +106 -0
  237. package/dist/reference/sdk-api/ui/scroll-area/index.md +10 -0
  238. package/dist/reference/sdk-api/ui/select/Select.md +80 -0
  239. package/dist/reference/sdk-api/ui/select/SelectContent.md +106 -0
  240. package/dist/reference/sdk-api/ui/select/SelectGroup.md +100 -0
  241. package/dist/reference/sdk-api/ui/select/SelectItem.md +106 -0
  242. package/dist/reference/sdk-api/ui/select/SelectLabel.md +100 -0
  243. package/dist/reference/sdk-api/ui/select/SelectScrollDownButton.md +100 -0
  244. package/dist/reference/sdk-api/ui/select/SelectScrollUpButton.md +100 -0
  245. package/dist/reference/sdk-api/ui/select/SelectSeparator.md +100 -0
  246. package/dist/reference/sdk-api/ui/select/SelectTrigger.md +106 -0
  247. package/dist/reference/sdk-api/ui/select/SelectValue.md +106 -0
  248. package/dist/reference/sdk-api/ui/select/index.md +18 -0
  249. package/dist/reference/sdk-api/ui/separator/Separator.md +106 -0
  250. package/dist/reference/sdk-api/ui/separator/index.md +9 -0
  251. package/dist/reference/sdk-api/ui/sheet/Sheet.md +58 -0
  252. package/dist/reference/sdk-api/ui/sheet/SheetClose.md +100 -0
  253. package/dist/reference/sdk-api/ui/sheet/SheetContent.md +113 -0
  254. package/dist/reference/sdk-api/ui/sheet/SheetDescription.md +100 -0
  255. package/dist/reference/sdk-api/ui/sheet/SheetFooter.md +100 -0
  256. package/dist/reference/sdk-api/ui/sheet/SheetHeader.md +100 -0
  257. package/dist/reference/sdk-api/ui/sheet/SheetOverlay.md +100 -0
  258. package/dist/reference/sdk-api/ui/sheet/SheetPortal.md +55 -0
  259. package/dist/reference/sdk-api/ui/sheet/SheetTitle.md +100 -0
  260. package/dist/reference/sdk-api/ui/sheet/SheetTrigger.md +100 -0
  261. package/dist/reference/sdk-api/ui/sheet/index.md +18 -0
  262. package/dist/reference/sdk-api/ui/skeleton/Skeleton.md +100 -0
  263. package/dist/reference/sdk-api/ui/skeleton/index.md +9 -0
  264. package/dist/reference/sdk-api/ui/slider/Slider.md +116 -0
  265. package/dist/reference/sdk-api/ui/slider/index.md +9 -0
  266. package/dist/reference/sdk-api/ui/sonner/Toaster.md +43 -0
  267. package/dist/reference/sdk-api/ui/sonner/index.md +10 -0
  268. package/dist/reference/sdk-api/ui/sonner/toast.md +58 -0
  269. package/dist/reference/sdk-api/ui/spinner/Spinner.md +100 -0
  270. package/dist/reference/sdk-api/ui/spinner/index.md +9 -0
  271. package/dist/reference/sdk-api/ui/switch/Switch.md +110 -0
  272. package/dist/reference/sdk-api/ui/switch/index.md +9 -0
  273. package/dist/reference/sdk-api/ui/table/Table.md +100 -0
  274. package/dist/reference/sdk-api/ui/table/TableBody.md +100 -0
  275. package/dist/reference/sdk-api/ui/table/TableCaption.md +100 -0
  276. package/dist/reference/sdk-api/ui/table/TableCell.md +106 -0
  277. package/dist/reference/sdk-api/ui/table/TableFooter.md +100 -0
  278. package/dist/reference/sdk-api/ui/table/TableHead.md +106 -0
  279. package/dist/reference/sdk-api/ui/table/TableHeader.md +100 -0
  280. package/dist/reference/sdk-api/ui/table/TableRow.md +100 -0
  281. package/dist/reference/sdk-api/ui/table/index.md +16 -0
  282. package/dist/reference/sdk-api/ui/tabs/Tabs.md +109 -0
  283. package/dist/reference/sdk-api/ui/tabs/TabsContent.md +106 -0
  284. package/dist/reference/sdk-api/ui/tabs/TabsList.md +106 -0
  285. package/dist/reference/sdk-api/ui/tabs/TabsTrigger.md +107 -0
  286. package/dist/reference/sdk-api/ui/tabs/index.md +13 -0
  287. package/dist/reference/sdk-api/ui/tabs/tabsListVariants.md +70 -0
  288. package/dist/reference/sdk-api/ui/textarea/Textarea.md +126 -0
  289. package/dist/reference/sdk-api/ui/textarea/index.md +9 -0
  290. package/dist/reference/sdk-api/ui/toggle/Toggle.md +118 -0
  291. package/dist/reference/sdk-api/ui/toggle/index.md +10 -0
  292. package/dist/reference/sdk-api/ui/toggle/toggleVariants.md +71 -0
  293. package/dist/reference/sdk-api/ui/toggle-group/ToggleGroup.md +122 -0
  294. package/dist/reference/sdk-api/ui/toggle-group/ToggleGroupItem.md +116 -0
  295. package/dist/reference/sdk-api/ui/toggle-group/index.md +10 -0
  296. package/dist/reference/sdk-api.json +73810 -2
  297. package/dist/reference/sdk-api.md +50 -2
  298. package/dist/ui/accordion.d.ts +48 -0
  299. package/dist/ui/accordion.js +40 -0
  300. package/dist/ui/accordion.js.map +1 -1
  301. package/dist/ui/alert-dialog.d.ts +123 -0
  302. package/dist/ui/alert-dialog.js +114 -0
  303. package/dist/ui/alert-dialog.js.map +1 -1
  304. package/dist/ui/alert.d.ts +41 -0
  305. package/dist/ui/alert.js +41 -0
  306. package/dist/ui/alert.js.map +1 -1
  307. package/dist/ui/aspect-ratio.d.ts +11 -0
  308. package/dist/ui/aspect-ratio.js +10 -0
  309. package/dist/ui/aspect-ratio.js.map +1 -1
  310. package/dist/ui/avatar.d.ts +65 -0
  311. package/dist/ui/avatar.js +63 -0
  312. package/dist/ui/avatar.js.map +1 -1
  313. package/dist/ui/badge.d.ts +22 -0
  314. package/dist/ui/badge.js +22 -0
  315. package/dist/ui/badge.js.map +1 -1
  316. package/dist/ui/button-group.d.ts +45 -0
  317. package/dist/ui/button-group.js +43 -0
  318. package/dist/ui/button-group.js.map +1 -1
  319. package/dist/ui/button.d.ts +52 -0
  320. package/dist/ui/button.js +30 -0
  321. package/dist/ui/button.js.map +1 -1
  322. package/dist/ui/calendar.d.ts +44 -0
  323. package/dist/ui/calendar.js +19 -0
  324. package/dist/ui/calendar.js.map +1 -1
  325. package/dist/ui/card.d.ts +71 -0
  326. package/dist/ui/card.js +70 -0
  327. package/dist/ui/card.js.map +1 -1
  328. package/dist/ui/carousel.d.ts +71 -0
  329. package/dist/ui/carousel.js +66 -0
  330. package/dist/ui/carousel.js.map +1 -1
  331. package/dist/ui/checkbox.d.ts +14 -0
  332. package/dist/ui/checkbox.js +10 -0
  333. package/dist/ui/checkbox.js.map +1 -1
  334. package/dist/ui/collapsible.d.ts +37 -0
  335. package/dist/ui/collapsible.js +30 -0
  336. package/dist/ui/collapsible.js.map +1 -1
  337. package/dist/ui/combobox.d.ts +190 -0
  338. package/dist/ui/combobox.js +167 -0
  339. package/dist/ui/combobox.js.map +1 -1
  340. package/dist/ui/dialog.d.ts +109 -0
  341. package/dist/ui/dialog.js +100 -0
  342. package/dist/ui/dialog.js.map +1 -1
  343. package/dist/ui/drawer.d.ts +106 -0
  344. package/dist/ui/drawer.js +100 -0
  345. package/dist/ui/drawer.js.map +1 -1
  346. package/dist/ui/dropdown-menu.d.ts +171 -0
  347. package/dist/ui/dropdown-menu.js +150 -0
  348. package/dist/ui/dropdown-menu.js.map +1 -1
  349. package/dist/ui/empty.d.ts +61 -0
  350. package/dist/ui/empty.js +61 -0
  351. package/dist/ui/empty.js.map +1 -1
  352. package/dist/ui/field.d.ts +105 -0
  353. package/dist/ui/field.js +101 -0
  354. package/dist/ui/field.js.map +1 -1
  355. package/dist/ui/helpers.d.ts +11 -0
  356. package/dist/ui/helpers.js +11 -0
  357. package/dist/ui/helpers.js.map +1 -1
  358. package/dist/ui/input-group.d.ts +65 -0
  359. package/dist/ui/input-group.js +65 -0
  360. package/dist/ui/input-group.js.map +1 -1
  361. package/dist/ui/input-otp.d.ts +48 -0
  362. package/dist/ui/input-otp.js +40 -0
  363. package/dist/ui/input-otp.js.map +1 -1
  364. package/dist/ui/input.d.ts +24 -2
  365. package/dist/ui/input.js +20 -0
  366. package/dist/ui/input.js.map +1 -1
  367. package/dist/ui/item.d.ts +103 -0
  368. package/dist/ui/item.js +103 -0
  369. package/dist/ui/item.js.map +1 -1
  370. package/dist/ui/label.d.ts +10 -0
  371. package/dist/ui/label.js +10 -0
  372. package/dist/ui/label.js.map +1 -1
  373. package/dist/ui/menubar.d.ts +193 -0
  374. package/dist/ui/menubar.js +160 -0
  375. package/dist/ui/menubar.js.map +1 -1
  376. package/dist/ui/navigation-menu.d.ts +98 -0
  377. package/dist/ui/navigation-menu.js +90 -0
  378. package/dist/ui/navigation-menu.js.map +1 -1
  379. package/dist/ui/pagination.d.ts +76 -0
  380. package/dist/ui/pagination.js +73 -0
  381. package/dist/ui/pagination.js.map +1 -1
  382. package/dist/ui/popover.d.ts +81 -0
  383. package/dist/ui/popover.js +70 -0
  384. package/dist/ui/popover.js.map +1 -1
  385. package/dist/ui/portal.d.ts +11 -0
  386. package/dist/ui/portal.js +10 -0
  387. package/dist/ui/portal.js.map +1 -1
  388. package/dist/ui/progress.d.ts +53 -26
  389. package/dist/ui/progress.js +50 -26
  390. package/dist/ui/progress.js.map +1 -1
  391. package/dist/ui/radio-group.d.ts +25 -0
  392. package/dist/ui/radio-group.js +20 -0
  393. package/dist/ui/radio-group.js.map +1 -1
  394. package/dist/ui/resizable.d.ts +37 -0
  395. package/dist/ui/resizable.js +30 -0
  396. package/dist/ui/resizable.js.map +1 -1
  397. package/dist/ui/scroll-area.d.ts +22 -0
  398. package/dist/ui/scroll-area.js +21 -0
  399. package/dist/ui/scroll-area.js.map +1 -1
  400. package/dist/ui/select.d.ts +122 -0
  401. package/dist/ui/select.js +108 -0
  402. package/dist/ui/select.js.map +1 -1
  403. package/dist/ui/separator.d.ts +11 -0
  404. package/dist/ui/separator.js +10 -0
  405. package/dist/ui/separator.js.map +1 -1
  406. package/dist/ui/sheet.d.ts +107 -0
  407. package/dist/ui/sheet.js +101 -0
  408. package/dist/ui/sheet.js.map +1 -1
  409. package/dist/ui/skeleton.d.ts +10 -0
  410. package/dist/ui/skeleton.js +10 -0
  411. package/dist/ui/skeleton.js.map +1 -1
  412. package/dist/ui/slider.d.ts +21 -0
  413. package/dist/ui/slider.js +14 -0
  414. package/dist/ui/slider.js.map +1 -1
  415. package/dist/ui/sonner.d.ts +23 -0
  416. package/dist/ui/sonner.js +21 -0
  417. package/dist/ui/sonner.js.map +1 -1
  418. package/dist/ui/spinner.d.ts +10 -0
  419. package/dist/ui/spinner.js +10 -0
  420. package/dist/ui/spinner.js.map +1 -1
  421. package/dist/ui/switch.d.ts +15 -0
  422. package/dist/ui/switch.js +10 -0
  423. package/dist/ui/switch.js.map +1 -1
  424. package/dist/ui/table.d.ts +81 -0
  425. package/dist/ui/table.js +80 -0
  426. package/dist/ui/table.js.map +1 -1
  427. package/dist/ui/tabs.d.ts +59 -0
  428. package/dist/ui/tabs.js +51 -0
  429. package/dist/ui/tabs.js.map +1 -1
  430. package/dist/ui/textarea.d.ts +13 -0
  431. package/dist/ui/textarea.js +13 -0
  432. package/dist/ui/textarea.js.map +1 -1
  433. package/dist/ui/toggle-group.d.ts +34 -0
  434. package/dist/ui/toggle-group.js +24 -0
  435. package/dist/ui/toggle-group.js.map +1 -1
  436. package/dist/ui/toggle.d.ts +28 -0
  437. package/dist/ui/toggle.js +24 -0
  438. package/dist/ui/toggle.js.map +1 -1
  439. package/package.json +5 -3
  440. package/release-provenance.json +15 -0
  441. package/src/adapters/interest-card/eslint/eslint-plugin-custom-navigation.mjs +290 -0
  442. package/src/adapters/interest-card/eslint/taro.mjs +55 -0
  443. package/src/adapters/interest-card/runtime/microapp.ts +11 -0
  444. package/src/adapters/interest-card/types/taro.d.ts +28 -0
  445. package/src/build/config-overrides.ts +39 -0
  446. package/src/build/index.ts +5 -0
  447. package/src/build/plugins/app-config.ts +47 -0
  448. package/src/build/plugins/depend-card/analyze.ts +122 -0
  449. package/src/build/plugins/depend-card/source.ts +97 -0
  450. package/src/build/plugins/vite-depend-card.ts +168 -0
  451. package/src/build/plugins/vite-image-asset-import.ts +178 -0
  452. package/src/build/plugins/vite-inline-json.ts +149 -0
  453. package/src/build/plugins/vite-taro-source-location.ts +224 -0
  454. package/src/build/plugins/vite-tt-components-entry.ts +33 -0
  455. package/src/build/taro.ts +830 -0
  456. package/src/components/miniapp-open-card.ts +49 -0
  457. package/src/components/native-miniapp-open-card.ts +7 -0
  458. package/src/eslint/eslint-plugin-microapp-pages.mjs +659 -0
  459. package/src/eslint/server.mjs +69 -0
  460. package/src/eslint/taro.mjs +553 -0
  461. package/src/index.ts +2 -0
  462. package/src/internal/runtime/douyin-open-button.d.ts +29 -0
  463. package/src/internal/runtime/iframe-auth/identity.ts +236 -0
  464. package/src/internal/runtime/iframe-auth/index.ts +2 -0
  465. package/src/internal/runtime/iframe-auth/sync.ts +37 -0
  466. package/src/internal/vendor-modules.d.ts +8 -0
  467. package/src/lib/measure.ts +115 -0
  468. package/src/lib/platform.ts +11 -0
  469. package/src/lib/utils.ts +6 -0
  470. package/src/runtime/client.ts +246 -0
  471. package/src/runtime/default-client.ts +26 -0
  472. package/src/runtime/default-iframe-auth.ts +13 -0
  473. package/src/runtime/douyin-container-request.ts +367 -0
  474. package/src/runtime/douyin-login-request.ts +514 -0
  475. package/src/runtime/globals.d.ts +342 -0
  476. package/src/runtime/index.ts +4 -0
  477. package/src/runtime/network-url.ts +63 -0
  478. package/src/ui/accordion.tsx +226 -0
  479. package/src/ui/alert-dialog.tsx +407 -0
  480. package/src/ui/alert.tsx +149 -0
  481. package/src/ui/aspect-ratio.tsx +37 -0
  482. package/src/ui/avatar.tsx +238 -0
  483. package/src/ui/badge.tsx +77 -0
  484. package/src/ui/button-group.tsx +173 -0
  485. package/src/ui/button.tsx +215 -0
  486. package/src/ui/calendar.tsx +353 -0
  487. package/src/ui/card.tsx +217 -0
  488. package/src/ui/carousel.tsx +259 -0
  489. package/src/ui/checkbox.tsx +62 -0
  490. package/src/ui/collapsible.tsx +148 -0
  491. package/src/ui/combobox.tsx +650 -0
  492. package/src/ui/dialog.tsx +290 -0
  493. package/src/ui/drawer.tsx +272 -0
  494. package/src/ui/dropdown-menu.tsx +547 -0
  495. package/src/ui/empty.tsx +166 -0
  496. package/src/ui/field.tsx +427 -0
  497. package/src/ui/helpers.tsx +39 -0
  498. package/src/ui/index.ts +47 -0
  499. package/src/ui/input-group.tsx +320 -0
  500. package/src/ui/input-otp.tsx +189 -0
  501. package/src/ui/input.tsx +60 -0
  502. package/src/ui/item.tsx +338 -0
  503. package/src/ui/label.tsx +31 -0
  504. package/src/ui/menubar.tsx +835 -0
  505. package/src/ui/navigation-menu.tsx +341 -0
  506. package/src/ui/pagination.tsx +195 -0
  507. package/src/ui/popover.tsx +363 -0
  508. package/src/ui/portal.tsx +31 -0
  509. package/src/ui/progress.tsx +182 -0
  510. package/src/ui/radio-group.tsx +111 -0
  511. package/src/ui/resizable.tsx +410 -0
  512. package/src/ui/scroll-area.tsx +102 -0
  513. package/src/ui/select.tsx +471 -0
  514. package/src/ui/separator.tsx +37 -0
  515. package/src/ui/sheet.tsx +289 -0
  516. package/src/ui/skeleton.tsx +25 -0
  517. package/src/ui/slider.tsx +176 -0
  518. package/src/ui/sonner.tsx +40 -0
  519. package/src/ui/spinner.tsx +23 -0
  520. package/src/ui/switch.tsx +94 -0
  521. package/src/ui/table.tsx +240 -0
  522. package/src/ui/tabs.tsx +233 -0
  523. package/src/ui/tailwind.css +2 -0
  524. package/src/ui/textarea.tsx +49 -0
  525. package/src/ui/theme.css +234 -0
  526. package/src/ui/toggle-group.tsx +215 -0
  527. package/src/ui/toggle.tsx +113 -0
@@ -0,0 +1,650 @@
1
+ import * as React from "react"
2
+ import { View, Input as TaroInput, type ViewProps } from "@tarojs/components"
3
+
4
+ import { cn } from "../lib/utils"
5
+ import { Check, ChevronDown, X } from "@open-dy/lucide-taro"
6
+
7
+ type ComboboxOption = string
8
+ type ComboboxAnchorRef = React.RefObject<unknown> | React.MutableRefObject<unknown>
9
+ type ComboboxValueInput = string | string[]
10
+
11
+ function normalizeComboboxValue(value?: ComboboxValueInput) {
12
+ if (value === undefined) return []
13
+ return Array.isArray(value) ? value : [value]
14
+ }
15
+
16
+ const ComboboxContext = React.createContext<{
17
+ open: boolean
18
+ onOpenChange: (open: boolean) => void
19
+ value: string[]
20
+ onValueChange: (value: string[]) => void
21
+ search: string
22
+ onSearchChange: (search: string) => void
23
+ multiple?: boolean
24
+ items?: readonly ComboboxOption[]
25
+ filteredItems: readonly ComboboxOption[]
26
+ }>({
27
+ open: false,
28
+ onOpenChange: () => {},
29
+ value: [],
30
+ onValueChange: () => {},
31
+ search: "",
32
+ onSearchChange: () => {},
33
+ filteredItems: [],
34
+ })
35
+
36
+ /**
37
+ * @desc 可搜索选择框组件。
38
+ * @param {Parameters<typeof Combobox>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
39
+ * @return {ReturnType<typeof Combobox>} 组件渲染结果;类型见返回值契约。
40
+ * @example
41
+ * ```tsx
42
+ * import { useState } from 'react'
43
+ * import { Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
44
+ * export function CityPicker() {
45
+ * const [value, setValue] = useState<string[]>([])
46
+ * return <Combobox items={['北京', '上海']} value={value} onValueChange={setValue}>
47
+ * <ComboboxInput placeholder="搜索城市" showClear />
48
+ * <ComboboxContent><ComboboxList>{(item) => <ComboboxItem value={item}>{item}</ComboboxItem>}</ComboboxList></ComboboxContent>
49
+ * </Combobox>
50
+ * }
51
+ * ```
52
+ */
53
+ function Combobox({
54
+ open: openProp,
55
+ defaultOpen,
56
+ onOpenChange,
57
+ value: valueProp,
58
+ defaultValue,
59
+ onValueChange,
60
+ multiple,
61
+ autoHighlight,
62
+ items,
63
+ children,
64
+ ...props
65
+ }: ViewProps & {
66
+ /** @desc 受控展开状态;传入后以该值为准,需在 onOpenChange 中更新。省略时由组件内部管理。 */
67
+ open?: boolean
68
+ /** @desc 非受控模式的初始展开状态,默认 false;仅初始化时读取,传入 open 后不生效。 */
69
+ defaultOpen?: boolean
70
+ /** @desc 触发器或关闭操作请求改变展开状态时调用,参数为下一状态;受控模式需由调用方同步 open。 */
71
+ onOpenChange?: (open: boolean) => void
72
+ /** @desc 受控选中值;接受字符串或字符串数组,内部统一为数组。省略时使用内部状态,传入后需同步 onValueChange。 */
73
+ value?: ComboboxValueInput
74
+ /** @desc 非受控模式的初始选中值,默认空数组;字符串会转为单元素数组,传入 value 后不生效。 */
75
+ defaultValue?: ComboboxValueInput
76
+ /** @desc 选中、取消或清空时调用,始终返回字符串数组;单选也返回数组,清空返回 []。 */
77
+ onValueChange?: (value: string[]) => void
78
+ /** @desc 是否允许多选,默认 false;单选选择后清空搜索并关闭列表,多选切换各项且保留列表。 */
79
+ multiple?: boolean
80
+ /** @desc 兼容属性;当前实现不执行自动高亮,传入 true 也不会选中首项。 */
81
+ autoHighlight?: boolean
82
+ /** @desc 可选的字符串候选列表,用于按搜索词进行不区分大小写的包含过滤;由 ComboboxList 的渲染函数生成过滤后的项目,不会自动生成 UI。 */
83
+ items?: readonly ComboboxOption[]
84
+ }) {
85
+ const [internalOpen, setInternalOpen] = React.useState(defaultOpen ?? false)
86
+ const [internalValue, setInternalValue] = React.useState<string[]>(
87
+ normalizeComboboxValue(defaultValue)
88
+ )
89
+ const [search, setSearch] = React.useState("")
90
+ const openControlled = openProp !== undefined
91
+ const valueControlled = valueProp !== undefined
92
+ const open = openControlled ? openProp : internalOpen
93
+ const value = valueControlled ? normalizeComboboxValue(valueProp) : internalValue
94
+ const filteredItems = React.useMemo(() => {
95
+ if (!items) return []
96
+
97
+ const keyword = search.trim().toLowerCase()
98
+ if (!keyword) return items
99
+
100
+ return items.filter((item) => item.toLowerCase().includes(keyword))
101
+ }, [items, search])
102
+ void autoHighlight
103
+
104
+ return (
105
+ <ComboboxContext.Provider
106
+ value={{
107
+ open,
108
+ onOpenChange: (v) => {
109
+ if (!openControlled) setInternalOpen(v)
110
+ onOpenChange?.(v)
111
+ },
112
+ value,
113
+ onValueChange: (v) => {
114
+ if (!valueControlled) setInternalValue(v)
115
+ onValueChange?.(v)
116
+ },
117
+ search,
118
+ onSearchChange: setSearch,
119
+ multiple,
120
+ items,
121
+ filteredItems,
122
+ }}
123
+ >
124
+ <View data-slot="combobox" {...props}>
125
+ {children}
126
+ </View>
127
+ </ComboboxContext.Provider>
128
+ )
129
+ }
130
+
131
+ type ComboboxValueProps = Omit<ViewProps, "children"> & {
132
+ /** @desc 选中值的自定义节点或渲染函数;函数收到 string[],省略时将选中值用逗号连接显示。 */
133
+ children?: React.ReactNode | ((values: string[]) => React.ReactNode)
134
+ }
135
+
136
+ /**
137
+ * @desc 可搜索选择框当前值展示。
138
+ * @param {Parameters<typeof ComboboxValue>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
139
+ * @return {ReturnType<typeof ComboboxValue>} 组件渲染结果;类型见返回值契约。
140
+ * @example
141
+ * ```tsx
142
+ * import { Combobox, ComboboxValue } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
143
+ * <Combobox><ComboboxValue /></Combobox>
144
+ * ```
145
+ */
146
+ function ComboboxValue({ className, children, ...props }: ComboboxValueProps) {
147
+ const { value } = React.useContext(ComboboxContext)
148
+
149
+ if (typeof children === "function") {
150
+ return <>{children(value)}</>
151
+ }
152
+
153
+ return (
154
+ <View data-slot="combobox-value" className={className} {...props}>
155
+ {children ?? value.join(", ")}
156
+ </View>
157
+ )
158
+ }
159
+
160
+ /**
161
+ * @desc 可搜索选择框触发器。
162
+ * @param {Parameters<typeof ComboboxTrigger>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
163
+ * @return {ReturnType<typeof ComboboxTrigger>} 组件渲染结果;类型见返回值契约。
164
+ * @example
165
+ * ```tsx
166
+ * import { Combobox, ComboboxTrigger } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
167
+ * <Combobox><ComboboxTrigger /></Combobox>
168
+ * ```
169
+ */
170
+ function ComboboxTrigger({ className, children, ...props }: ViewProps) {
171
+ const { onOpenChange, open } = React.useContext(ComboboxContext)
172
+ return (
173
+ <View
174
+ data-slot="combobox-trigger"
175
+ aria-expanded={open}
176
+ className={cn("flex items-center justify-center", className)}
177
+ onClick={() => onOpenChange(!open)}
178
+ {...props}
179
+ >
180
+ {children}
181
+ <ChevronDown className="pointer-events-none" size={16} />
182
+ </View>
183
+ )
184
+ }
185
+
186
+ function ComboboxClear({ className, ...props }: ViewProps) {
187
+ const { onValueChange, onSearchChange } = React.useContext(ComboboxContext)
188
+ return (
189
+ <View
190
+ data-slot="combobox-clear"
191
+ className={cn("flex items-center justify-center", className)}
192
+ onClick={() => {
193
+ onValueChange([])
194
+ onSearchChange("")
195
+ }}
196
+ {...props}
197
+ >
198
+ <X className="pointer-events-none" size={16} />
199
+ </View>
200
+ )
201
+ }
202
+
203
+ /**
204
+ * @desc 可搜索选择框输入区域。
205
+ * @param {Parameters<typeof ComboboxInput>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
206
+ * @return {ReturnType<typeof ComboboxInput>} 组件渲染结果;类型见返回值契约。
207
+ * @example
208
+ * ```tsx
209
+ * import { Combobox, ComboboxInput } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
210
+ * <Combobox><ComboboxInput /></Combobox>
211
+ * ```
212
+ */
213
+ function ComboboxInput({
214
+ className,
215
+ children,
216
+ disabled = false,
217
+ showTrigger = true,
218
+ showClear = false,
219
+ placeholder,
220
+ "aria-invalid": ariaInvalid,
221
+ ...props
222
+ }: Omit<ViewProps, "children"> & {
223
+ /** @desc 输入框末尾的附加内容;省略时仅显示输入区及配置的触发/清空按钮。 */
224
+ children?: React.ReactNode
225
+ /** @desc 是否禁用搜索输入及内部按钮交互,默认 false。 */
226
+ disabled?: boolean
227
+ /** @desc 是否显示展开按钮,默认 true;有可清空值且 showClear 为 true 时优先显示清空按钮。 */
228
+ showTrigger?: boolean
229
+ /** @desc 是否在有搜索词或选中值时显示清空按钮,默认 false;点击同时清空搜索词和选中值。 */
230
+ showClear?: boolean
231
+ /** @desc 空输入时的提示文本;省略时不设置原生输入提示。 */
232
+ placeholder?: string
233
+ /** @desc 是否显示校验失败样式;true 或 "true" 表示失败,不负责执行校验。 */
234
+ "aria-invalid"?: boolean | "true" | "false"
235
+ }) {
236
+ const { search, value, multiple, onSearchChange, onOpenChange } = React.useContext(ComboboxContext)
237
+ const inputValue = !multiple && !search ? (value[0] ?? "") : search
238
+ const hasClearableValue = search.length > 0 || value.length > 0
239
+
240
+ return (
241
+ <View
242
+ data-slot="combobox-input"
243
+ aria-invalid={ariaInvalid}
244
+ className={cn(
245
+ "flex h-8 w-auto items-center rounded-lg border border-input bg-transparent px-2.5 text-sm transition-colors outline-none focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
246
+ disabled && "pointer-events-none cursor-not-allowed bg-input/50 opacity-50 dark:bg-input/80",
247
+ className
248
+ )}
249
+ {...props}
250
+ >
251
+ <TaroInput
252
+ className="flex-1 bg-transparent text-sm outline-none"
253
+ value={inputValue}
254
+ placeholder={placeholder}
255
+ disabled={disabled}
256
+ onInput={(e) => {
257
+ onSearchChange(e.detail.value)
258
+ onOpenChange(true)
259
+ }}
260
+ onFocus={() => onOpenChange(true)}
261
+ />
262
+ {showClear && hasClearableValue
263
+ ? <ComboboxClear />
264
+ : showTrigger && <ComboboxTrigger />}
265
+ {children}
266
+ </View>
267
+ )
268
+ }
269
+
270
+ /**
271
+ * @desc 可搜索选择框内容容器。
272
+ * @param {Parameters<typeof ComboboxContent>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
273
+ * @return {ReturnType<typeof ComboboxContent>} 组件渲染结果;类型见返回值契约。
274
+ * @example
275
+ * ```tsx
276
+ * import { Combobox, ComboboxContent } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
277
+ * <Combobox><ComboboxContent /></Combobox>
278
+ * ```
279
+ */
280
+ function ComboboxContent({
281
+ className,
282
+ children,
283
+ anchor,
284
+ ...props
285
+ }: ViewProps & {
286
+ /** @desc 兼容的锚点引用;当前实现未使用它测量定位,内容在原位置相对布局,不会自动跟随该 ref。 */
287
+ anchor?: ComboboxAnchorRef }) {
288
+ const { open, onOpenChange } = React.useContext(ComboboxContext)
289
+ void anchor
290
+ if (!open) return null
291
+
292
+ return (
293
+ <>
294
+ <View className="fixed inset-0 z-40" onClick={() => onOpenChange(false)} />
295
+ <View
296
+ data-slot="combobox-content"
297
+ className={cn(
298
+ "group/combobox-content relative z-50 max-h-96 overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10",
299
+ className
300
+ )}
301
+ {...props}
302
+ >
303
+ {children}
304
+ </View>
305
+ </>
306
+ )
307
+ }
308
+
309
+ type ComboboxListProps = Omit<ViewProps, "children"> & {
310
+ /** @desc 静态列表节点或逐项渲染函数;函数收到过滤后的候选字符串,需要根 Combobox 提供 items,未提供时不生成列表项。 */
311
+ children?: React.ReactNode | ((item: ComboboxOption) => React.ReactNode)
312
+ }
313
+
314
+ /**
315
+ * @desc 可搜索选择框列表容器。
316
+ * @param {Parameters<typeof ComboboxList>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
317
+ * @return {ReturnType<typeof ComboboxList>} 组件渲染结果;类型见返回值契约。
318
+ * @example
319
+ * ```tsx
320
+ * import { Combobox, ComboboxList } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
321
+ * <Combobox><ComboboxList /></Combobox>
322
+ * ```
323
+ */
324
+ function ComboboxList({
325
+ className,
326
+ children,
327
+ ...props
328
+ }: ComboboxListProps) {
329
+ const { items, filteredItems } = React.useContext(ComboboxContext)
330
+ const content =
331
+ typeof children === "function"
332
+ ? items
333
+ ? filteredItems.map((item) => (
334
+ <React.Fragment key={item}>{children(item)}</React.Fragment>
335
+ ))
336
+ : null
337
+ : children
338
+
339
+ return (
340
+ <View
341
+ data-slot="combobox-list"
342
+ className={cn("max-h-72 overflow-y-auto overscroll-contain p-1", className)}
343
+ {...props}
344
+ >
345
+ {content}
346
+ </View>
347
+ )
348
+ }
349
+
350
+ /**
351
+ * @desc 可搜索选择框条目。
352
+ * @param {Parameters<typeof ComboboxItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
353
+ * @return {ReturnType<typeof ComboboxItem>} 组件渲染结果;类型见返回值契约。
354
+ * @example
355
+ * ```tsx
356
+ * import { Combobox, ComboboxItem } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
357
+ * <Combobox><ComboboxItem value="one" /></Combobox>
358
+ * ```
359
+ */
360
+ function ComboboxItem({
361
+ className,
362
+ children,
363
+ value: itemValue,
364
+ ...props
365
+ }: ViewProps & {
366
+ /** @desc 该候选项的字符串值;用于比较和更新选择,需与 items 或业务候选值一致。 */
367
+ value: string }) {
368
+ const { value, onValueChange, onSearchChange, multiple, onOpenChange } = React.useContext(ComboboxContext)
369
+ const isSelected = value.includes(itemValue)
370
+
371
+ return (
372
+ <View
373
+ data-slot="combobox-item"
374
+ data-selected={isSelected || undefined}
375
+ className={cn(
376
+ "relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none active:bg-accent active:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
377
+ isSelected && "bg-accent text-accent-foreground",
378
+ className
379
+ )}
380
+ onClick={() => {
381
+ if (multiple) {
382
+ const next = isSelected
383
+ ? value.filter((v) => v !== itemValue)
384
+ : [...value, itemValue]
385
+ onValueChange(next)
386
+ } else {
387
+ onValueChange([itemValue])
388
+ onSearchChange("")
389
+ onOpenChange(false)
390
+ }
391
+ }}
392
+ {...props}
393
+ >
394
+ {children}
395
+ <View className="pointer-events-none absolute right-2 flex size-4 items-center justify-center">
396
+ {isSelected ? <Check className="pointer-events-none" /> : null}
397
+ </View>
398
+ </View>
399
+ )
400
+ }
401
+
402
+ /**
403
+ * @desc 可搜索选择框分组容器。
404
+ * @param {Parameters<typeof ComboboxGroup>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
405
+ * @return {ReturnType<typeof ComboboxGroup>} 组件渲染结果;类型见返回值契约。
406
+ * @example
407
+ * ```tsx
408
+ * import { Combobox, ComboboxGroup } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
409
+ * <Combobox><ComboboxGroup /></Combobox>
410
+ * ```
411
+ */
412
+ function ComboboxGroup({ className, ...props }: ViewProps) {
413
+ return <View data-slot="combobox-group" className={cn(className)} {...props} />
414
+ }
415
+
416
+ /**
417
+ * @desc 可搜索选择框标签文本。
418
+ * @param {Parameters<typeof ComboboxLabel>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
419
+ * @return {ReturnType<typeof ComboboxLabel>} 组件渲染结果;类型见返回值契约。
420
+ * @example
421
+ * ```tsx
422
+ * import { Combobox, ComboboxLabel } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
423
+ * <Combobox><ComboboxLabel /></Combobox>
424
+ * ```
425
+ */
426
+ function ComboboxLabel({ className, ...props }: ViewProps) {
427
+ return (
428
+ <View
429
+ data-slot="combobox-label"
430
+ className={cn("px-2 py-1.5 text-xs text-muted-foreground", className)}
431
+ {...props}
432
+ />
433
+ )
434
+ }
435
+
436
+ /**
437
+ * @desc 选择项集合的布局容器;直接渲染传入的子节点,不执行列表迭代。
438
+ * @param {Parameters<typeof ComboboxCollection>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
439
+ * @return {ReturnType<typeof ComboboxCollection>} 组件渲染结果;类型见返回值契约。
440
+ * @example
441
+ * ```tsx
442
+ * import { Combobox, ComboboxCollection } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
443
+ * <Combobox><ComboboxCollection /></Combobox>
444
+ * ```
445
+ */
446
+ function ComboboxCollection({ ...props }: ViewProps) {
447
+ return <View data-slot="combobox-collection" {...props} />
448
+ }
449
+
450
+ /**
451
+ * @desc 可搜索选择框无结果内容。
452
+ * @param {Parameters<typeof ComboboxEmpty>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
453
+ * @return {ReturnType<typeof ComboboxEmpty>} 组件渲染结果;类型见返回值契约。
454
+ * @example
455
+ * ```tsx
456
+ * import { Combobox, ComboboxEmpty } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
457
+ * <Combobox><ComboboxEmpty /></Combobox>
458
+ * ```
459
+ */
460
+ function ComboboxEmpty({ className, ...props }: ViewProps) {
461
+ const { items, filteredItems } = React.useContext(ComboboxContext)
462
+ if (items && filteredItems.length > 0) return null
463
+
464
+ return (
465
+ <View
466
+ data-slot="combobox-empty"
467
+ className={cn(
468
+ "flex w-full justify-center py-2 text-center text-sm text-muted-foreground",
469
+ className
470
+ )}
471
+ {...props}
472
+ />
473
+ )
474
+ }
475
+
476
+ /**
477
+ * @desc 可搜索选择框分隔线。
478
+ * @param {Parameters<typeof ComboboxSeparator>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
479
+ * @return {ReturnType<typeof ComboboxSeparator>} 组件渲染结果;类型见返回值契约。
480
+ * @example
481
+ * ```tsx
482
+ * import { Combobox, ComboboxSeparator } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
483
+ * <Combobox><ComboboxSeparator /></Combobox>
484
+ * ```
485
+ */
486
+ function ComboboxSeparator({ className, ...props }: ViewProps) {
487
+ return (
488
+ <View
489
+ data-slot="combobox-separator"
490
+ className={cn("-mx-1 my-1 h-px bg-border", className)}
491
+ {...props}
492
+ />
493
+ )
494
+ }
495
+
496
+ /**
497
+ * @desc 可搜索选择框已选标签容器。
498
+ * @param {React.ComponentProps<typeof ComboboxChips>} props 容器属性与锚点 ref。
499
+ * @return {React.ReactNode} 已选标签的布局容器。
500
+ * @example
501
+ * ```tsx
502
+ * import { Combobox, ComboboxChips } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
503
+ * <Combobox><ComboboxChips /></Combobox>
504
+ * ```
505
+ */
506
+ const ComboboxChips = React.forwardRef<unknown, ViewProps>(function ComboboxChips(
507
+ { className, ...props },
508
+ ref
509
+ ) {
510
+ const { onOpenChange } = React.useContext(ComboboxContext)
511
+
512
+ return (
513
+ <View
514
+ ref={ref}
515
+ data-slot="combobox-chips"
516
+ className={cn(
517
+ "relative z-50 flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 dark:bg-input/30",
518
+ className
519
+ )}
520
+ onClick={() => onOpenChange(true)}
521
+ {...props}
522
+ />
523
+ )
524
+ })
525
+
526
+ /**
527
+ * @desc 可搜索选择框已选标签。
528
+ * @param {Parameters<typeof ComboboxChip>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
529
+ * @return {ReturnType<typeof ComboboxChip>} 组件渲染结果;类型见返回值契约。
530
+ * @example
531
+ * ```tsx
532
+ * import { Combobox, ComboboxChip } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
533
+ * <Combobox><ComboboxChip /></Combobox>
534
+ * ```
535
+ */
536
+ function ComboboxChip({
537
+ className,
538
+ children,
539
+ value: chipValue,
540
+ showRemove = true,
541
+ ...props
542
+ }: ViewProps & {
543
+ /** @desc 点击移除时匹配的选中值;省略时从字符串/数字 children 推导,无法推导时移除按钮不会改变选择。 */
544
+ value?: string
545
+ /** @desc 是否显示移除按钮,默认 true;点击只移除当前值并阻止冒泡,不关闭列表。 */
546
+ showRemove?: boolean
547
+ }) {
548
+ const { value, onValueChange } = React.useContext(ComboboxContext)
549
+ const resolvedChipValue =
550
+ chipValue ??
551
+ (typeof children === "string" || typeof children === "number"
552
+ ? String(children)
553
+ : undefined)
554
+
555
+ return (
556
+ <View
557
+ data-slot="combobox-chip"
558
+ className={cn(
559
+ "flex h-5 w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground",
560
+ className
561
+ )}
562
+ {...props}
563
+ >
564
+ {children}
565
+ {showRemove ? <View
566
+ data-slot="combobox-chip-remove"
567
+ className="-ml-1 flex size-4 shrink-0 items-center justify-center opacity-50"
568
+ onClick={(e) => {
569
+ e.stopPropagation?.()
570
+ if (resolvedChipValue) {
571
+ onValueChange(value.filter((v) => v !== resolvedChipValue))
572
+ }
573
+ }}
574
+ >
575
+ <X className="pointer-events-none" size={16} />
576
+ </View> : null}
577
+ </View>
578
+ )
579
+ }
580
+
581
+ /**
582
+ * @desc 可搜索选择框标签输入框。
583
+ * @param {Parameters<typeof ComboboxChipsInput>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
584
+ * @return {ReturnType<typeof ComboboxChipsInput>} 组件渲染结果;类型见返回值契约。
585
+ * @example
586
+ * ```tsx
587
+ * import { Combobox, ComboboxChipsInput } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
588
+ * <Combobox><ComboboxChipsInput /></Combobox>
589
+ * ```
590
+ */
591
+ function ComboboxChipsInput({
592
+ className,
593
+ placeholder,
594
+ disabled,
595
+ ...props
596
+ }: ViewProps & {
597
+ /** @desc 空搜索词时的输入提示;省略时不设置提示文本。 */
598
+ placeholder?: string;
599
+ /** @desc 是否禁用原生搜索输入;默认可输入,禁用状态由 Taro Input 处理。 */
600
+ disabled?: boolean }) {
601
+ const { search, onSearchChange, onOpenChange } = React.useContext(ComboboxContext)
602
+ return (
603
+ <TaroInput
604
+ data-slot="combobox-chip-input"
605
+ className={cn("min-w-16 flex-1 outline-none", className)}
606
+ value={search}
607
+ placeholder={placeholder}
608
+ disabled={disabled}
609
+ onInput={(e) => {
610
+ onSearchChange(e.detail.value)
611
+ onOpenChange(true)
612
+ }}
613
+ onFocus={() => onOpenChange(true)}
614
+ {...props}
615
+ />
616
+ )
617
+ }
618
+
619
+ /**
620
+ * @desc 创建组合选择框的锚点 ref,用于关联定位容器。
621
+ * @param 无参数
622
+ * @return {ReturnType<typeof useComboboxAnchor>} 当前上下文或锚点引用。
623
+ * @example
624
+ * ```tsx
625
+ * import { useComboboxAnchor, ComboboxChips } from '@open-dy/vibecoding-sdk-taro/ui/combobox'
626
+ * function Anchor() { const ref = useComboboxAnchor(); return <ComboboxChips ref={ref} /> }
627
+ * ```
628
+ */
629
+ function useComboboxAnchor() {
630
+ return React.useRef<unknown>(null)
631
+ }
632
+
633
+ export {
634
+ Combobox,
635
+ ComboboxInput,
636
+ ComboboxContent,
637
+ ComboboxList,
638
+ ComboboxItem,
639
+ ComboboxGroup,
640
+ ComboboxLabel,
641
+ ComboboxCollection,
642
+ ComboboxEmpty,
643
+ ComboboxSeparator,
644
+ ComboboxChips,
645
+ ComboboxChip,
646
+ ComboboxChipsInput,
647
+ ComboboxTrigger,
648
+ ComboboxValue,
649
+ useComboboxAnchor,
650
+ }