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

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 (541) hide show
  1. package/dist/adapters/interest-card/eslint/eslint-plugin-custom-navigation.mjs +2 -290
  2. package/dist/adapters/interest-card/eslint/taro.mjs +8 -42
  3. package/dist/components/miniapp-open-card.d.ts +46 -1
  4. package/dist/components/miniapp-open-card.js +14 -1
  5. package/dist/components/miniapp-open-card.js.map +1 -1
  6. package/dist/eslint/eslint-plugin-custom-navigation.mjs +290 -0
  7. package/dist/eslint/taro.mjs +35 -1
  8. package/dist/reference/llms.txt +76 -34
  9. package/dist/reference/sdk-api/build/taro/BuildContext.md +7 -2
  10. package/dist/reference/sdk-api/build/taro/CreateMicroappTaroConfigOptions.md +1 -2
  11. package/dist/reference/sdk-api/build/taro/createMicroappTaroConfig.md +1 -2
  12. package/dist/reference/sdk-api/components/miniapp-open-card/MiniappOpenCard.md +109 -0
  13. package/dist/reference/sdk-api/components/miniapp-open-card/MiniappOpenCardEnvVersion.md +38 -0
  14. package/dist/reference/sdk-api/components/miniapp-open-card/MiniappOpenCardErrorDetail.md +52 -0
  15. package/dist/reference/sdk-api/components/miniapp-open-card/MiniappOpenCardProps.md +76 -0
  16. package/dist/reference/sdk-api/components/miniapp-open-card/index.md +12 -0
  17. package/dist/reference/sdk-api/libraries/lucide-taro.md +151 -0
  18. package/dist/reference/sdk-api/runtime/CreateMicroappClientOptions.md +7 -2
  19. package/dist/reference/sdk-api/runtime/createMicroappClient.md +8 -3
  20. package/dist/reference/sdk-api/ui/accordion/Accordion.md +114 -0
  21. package/dist/reference/sdk-api/ui/accordion/AccordionContent.md +100 -0
  22. package/dist/reference/sdk-api/ui/accordion/AccordionItem.md +107 -0
  23. package/dist/reference/sdk-api/ui/accordion/AccordionTrigger.md +100 -0
  24. package/dist/reference/sdk-api/ui/accordion/index.md +12 -0
  25. package/dist/reference/sdk-api/ui/alert/Alert.md +106 -0
  26. package/dist/reference/sdk-api/ui/alert/AlertAction.md +100 -0
  27. package/dist/reference/sdk-api/ui/alert/AlertDescription.md +100 -0
  28. package/dist/reference/sdk-api/ui/alert/AlertTitle.md +100 -0
  29. package/dist/reference/sdk-api/ui/alert/index.md +12 -0
  30. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialog.md +58 -0
  31. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogAction.md +107 -0
  32. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogCancel.md +107 -0
  33. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogContent.md +106 -0
  34. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogDescription.md +100 -0
  35. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogFooter.md +100 -0
  36. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogHeader.md +100 -0
  37. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogOverlay.md +100 -0
  38. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogPortal.md +55 -0
  39. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogTitle.md +100 -0
  40. package/dist/reference/sdk-api/ui/alert-dialog/AlertDialogTrigger.md +118 -0
  41. package/dist/reference/sdk-api/ui/alert-dialog/index.md +19 -0
  42. package/dist/reference/sdk-api/ui/aspect-ratio/AspectRatio.md +106 -0
  43. package/dist/reference/sdk-api/ui/aspect-ratio/index.md +9 -0
  44. package/dist/reference/sdk-api/ui/avatar/Avatar.md +106 -0
  45. package/dist/reference/sdk-api/ui/avatar/AvatarBadge.md +100 -0
  46. package/dist/reference/sdk-api/ui/avatar/AvatarFallback.md +100 -0
  47. package/dist/reference/sdk-api/ui/avatar/AvatarGroup.md +100 -0
  48. package/dist/reference/sdk-api/ui/avatar/AvatarGroupCount.md +100 -0
  49. package/dist/reference/sdk-api/ui/avatar/AvatarImage.md +108 -0
  50. package/dist/reference/sdk-api/ui/avatar/index.md +14 -0
  51. package/dist/reference/sdk-api/ui/badge/Badge.md +114 -0
  52. package/dist/reference/sdk-api/ui/badge/badgeVariants.md +70 -0
  53. package/dist/reference/sdk-api/ui/badge/index.md +10 -0
  54. package/dist/reference/sdk-api/ui/button/Button.md +210 -0
  55. package/dist/reference/sdk-api/ui/button/ButtonProps.md +188 -0
  56. package/dist/reference/sdk-api/ui/button/buttonVariants.md +84 -0
  57. package/dist/reference/sdk-api/ui/button/index.md +11 -0
  58. package/dist/reference/sdk-api/ui/button-group/ButtonGroup.md +106 -0
  59. package/dist/reference/sdk-api/ui/button-group/ButtonGroupSeparator.md +106 -0
  60. package/dist/reference/sdk-api/ui/button-group/ButtonGroupText.md +106 -0
  61. package/dist/reference/sdk-api/ui/button-group/buttonGroupVariants.md +70 -0
  62. package/dist/reference/sdk-api/ui/button-group/index.md +12 -0
  63. package/dist/reference/sdk-api/ui/calendar/Calendar.md +144 -0
  64. package/dist/reference/sdk-api/ui/calendar/CalendarProps.md +118 -0
  65. package/dist/reference/sdk-api/ui/calendar/index.md +10 -0
  66. package/dist/reference/sdk-api/ui/card/Card.md +106 -0
  67. package/dist/reference/sdk-api/ui/card/CardAction.md +100 -0
  68. package/dist/reference/sdk-api/ui/card/CardContent.md +100 -0
  69. package/dist/reference/sdk-api/ui/card/CardDescription.md +100 -0
  70. package/dist/reference/sdk-api/ui/card/CardFooter.md +100 -0
  71. package/dist/reference/sdk-api/ui/card/CardHeader.md +100 -0
  72. package/dist/reference/sdk-api/ui/card/CardTitle.md +100 -0
  73. package/dist/reference/sdk-api/ui/card/index.md +15 -0
  74. package/dist/reference/sdk-api/ui/carousel/Carousel.md +108 -0
  75. package/dist/reference/sdk-api/ui/carousel/CarouselContent.md +100 -0
  76. package/dist/reference/sdk-api/ui/carousel/CarouselItem.md +100 -0
  77. package/dist/reference/sdk-api/ui/carousel/CarouselNext.md +219 -0
  78. package/dist/reference/sdk-api/ui/carousel/CarouselPrevious.md +219 -0
  79. package/dist/reference/sdk-api/ui/carousel/index.md +14 -0
  80. package/dist/reference/sdk-api/ui/carousel/useCarousel.md +46 -0
  81. package/dist/reference/sdk-api/ui/checkbox/Checkbox.md +109 -0
  82. package/dist/reference/sdk-api/ui/checkbox/index.md +9 -0
  83. package/dist/reference/sdk-api/ui/collapsible/Collapsible.md +108 -0
  84. package/dist/reference/sdk-api/ui/collapsible/CollapsibleContent.md +100 -0
  85. package/dist/reference/sdk-api/ui/collapsible/CollapsibleTrigger.md +119 -0
  86. package/dist/reference/sdk-api/ui/collapsible/index.md +11 -0
  87. package/dist/reference/sdk-api/ui/combobox/Combobox.md +124 -0
  88. package/dist/reference/sdk-api/ui/combobox/ComboboxChip.md +107 -0
  89. package/dist/reference/sdk-api/ui/combobox/ComboboxChips.md +100 -0
  90. package/dist/reference/sdk-api/ui/combobox/ComboboxChipsInput.md +107 -0
  91. package/dist/reference/sdk-api/ui/combobox/ComboboxCollection.md +100 -0
  92. package/dist/reference/sdk-api/ui/combobox/ComboboxContent.md +106 -0
  93. package/dist/reference/sdk-api/ui/combobox/ComboboxEmpty.md +100 -0
  94. package/dist/reference/sdk-api/ui/combobox/ComboboxGroup.md +100 -0
  95. package/dist/reference/sdk-api/ui/combobox/ComboboxInput.md +113 -0
  96. package/dist/reference/sdk-api/ui/combobox/ComboboxItem.md +106 -0
  97. package/dist/reference/sdk-api/ui/combobox/ComboboxLabel.md +100 -0
  98. package/dist/reference/sdk-api/ui/combobox/ComboboxList.md +105 -0
  99. package/dist/reference/sdk-api/ui/combobox/ComboboxSeparator.md +100 -0
  100. package/dist/reference/sdk-api/ui/combobox/ComboboxTrigger.md +100 -0
  101. package/dist/reference/sdk-api/ui/combobox/ComboboxValue.md +105 -0
  102. package/dist/reference/sdk-api/ui/combobox/index.md +24 -0
  103. package/dist/reference/sdk-api/ui/combobox/useComboboxAnchor.md +43 -0
  104. package/dist/reference/sdk-api/ui/dialog/Dialog.md +58 -0
  105. package/dist/reference/sdk-api/ui/dialog/DialogClose.md +100 -0
  106. package/dist/reference/sdk-api/ui/dialog/DialogContent.md +107 -0
  107. package/dist/reference/sdk-api/ui/dialog/DialogDescription.md +100 -0
  108. package/dist/reference/sdk-api/ui/dialog/DialogFooter.md +100 -0
  109. package/dist/reference/sdk-api/ui/dialog/DialogHeader.md +100 -0
  110. package/dist/reference/sdk-api/ui/dialog/DialogOverlay.md +100 -0
  111. package/dist/reference/sdk-api/ui/dialog/DialogPortal.md +55 -0
  112. package/dist/reference/sdk-api/ui/dialog/DialogTitle.md +100 -0
  113. package/dist/reference/sdk-api/ui/dialog/DialogTrigger.md +106 -0
  114. package/dist/reference/sdk-api/ui/dialog/index.md +18 -0
  115. package/dist/reference/sdk-api/ui/drawer/Drawer.md +59 -0
  116. package/dist/reference/sdk-api/ui/drawer/DrawerClose.md +100 -0
  117. package/dist/reference/sdk-api/ui/drawer/DrawerContent.md +100 -0
  118. package/dist/reference/sdk-api/ui/drawer/DrawerDescription.md +100 -0
  119. package/dist/reference/sdk-api/ui/drawer/DrawerFooter.md +100 -0
  120. package/dist/reference/sdk-api/ui/drawer/DrawerHeader.md +100 -0
  121. package/dist/reference/sdk-api/ui/drawer/DrawerOverlay.md +100 -0
  122. package/dist/reference/sdk-api/ui/drawer/DrawerPortal.md +55 -0
  123. package/dist/reference/sdk-api/ui/drawer/DrawerTitle.md +100 -0
  124. package/dist/reference/sdk-api/ui/drawer/DrawerTrigger.md +100 -0
  125. package/dist/reference/sdk-api/ui/drawer/index.md +18 -0
  126. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenu.md +58 -0
  127. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuCheckboxItem.md +107 -0
  128. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuContent.md +106 -0
  129. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuGroup.md +100 -0
  130. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuItem.md +107 -0
  131. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuLabel.md +106 -0
  132. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuPortal.md +55 -0
  133. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuRadioGroup.md +100 -0
  134. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuRadioItem.md +106 -0
  135. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSeparator.md +100 -0
  136. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuShortcut.md +100 -0
  137. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSub.md +58 -0
  138. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSubContent.md +100 -0
  139. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuSubTrigger.md +106 -0
  140. package/dist/reference/sdk-api/ui/dropdown-menu/DropdownMenuTrigger.md +119 -0
  141. package/dist/reference/sdk-api/ui/dropdown-menu/index.md +23 -0
  142. package/dist/reference/sdk-api/ui/empty/Empty.md +100 -0
  143. package/dist/reference/sdk-api/ui/empty/EmptyContent.md +100 -0
  144. package/dist/reference/sdk-api/ui/empty/EmptyDescription.md +100 -0
  145. package/dist/reference/sdk-api/ui/empty/EmptyHeader.md +100 -0
  146. package/dist/reference/sdk-api/ui/empty/EmptyMedia.md +106 -0
  147. package/dist/reference/sdk-api/ui/empty/EmptyTitle.md +100 -0
  148. package/dist/reference/sdk-api/ui/empty/index.md +14 -0
  149. package/dist/reference/sdk-api/ui/field/Field.md +106 -0
  150. package/dist/reference/sdk-api/ui/field/FieldContent.md +100 -0
  151. package/dist/reference/sdk-api/ui/field/FieldDescription.md +100 -0
  152. package/dist/reference/sdk-api/ui/field/FieldError.md +112 -0
  153. package/dist/reference/sdk-api/ui/field/FieldGroup.md +100 -0
  154. package/dist/reference/sdk-api/ui/field/FieldLabel.md +85 -0
  155. package/dist/reference/sdk-api/ui/field/FieldLegend.md +106 -0
  156. package/dist/reference/sdk-api/ui/field/FieldSeparator.md +105 -0
  157. package/dist/reference/sdk-api/ui/field/FieldSet.md +100 -0
  158. package/dist/reference/sdk-api/ui/field/FieldTitle.md +100 -0
  159. package/dist/reference/sdk-api/ui/field/index.md +18 -0
  160. package/dist/reference/sdk-api/ui/helpers/collectDataIconState.md +66 -0
  161. package/dist/reference/sdk-api/ui/helpers/index.md +9 -0
  162. package/dist/reference/sdk-api/ui/index.md +57 -0
  163. package/dist/reference/sdk-api/ui/input/Input.md +141 -0
  164. package/dist/reference/sdk-api/ui/input/index.md +9 -0
  165. package/dist/reference/sdk-api/ui/input-group/InputGroup.md +100 -0
  166. package/dist/reference/sdk-api/ui/input-group/InputGroupAddon.md +109 -0
  167. package/dist/reference/sdk-api/ui/input-group/InputGroupButton.md +220 -0
  168. package/dist/reference/sdk-api/ui/input-group/InputGroupInput.md +135 -0
  169. package/dist/reference/sdk-api/ui/input-group/InputGroupText.md +100 -0
  170. package/dist/reference/sdk-api/ui/input-group/InputGroupTextarea.md +126 -0
  171. package/dist/reference/sdk-api/ui/input-group/index.md +14 -0
  172. package/dist/reference/sdk-api/ui/input-otp/InputOTP.md +111 -0
  173. package/dist/reference/sdk-api/ui/input-otp/InputOTPGroup.md +100 -0
  174. package/dist/reference/sdk-api/ui/input-otp/InputOTPSeparator.md +100 -0
  175. package/dist/reference/sdk-api/ui/input-otp/InputOTPSlot.md +107 -0
  176. package/dist/reference/sdk-api/ui/input-otp/index.md +12 -0
  177. package/dist/reference/sdk-api/ui/item/Item.md +115 -0
  178. package/dist/reference/sdk-api/ui/item/ItemActions.md +100 -0
  179. package/dist/reference/sdk-api/ui/item/ItemContent.md +100 -0
  180. package/dist/reference/sdk-api/ui/item/ItemDescription.md +100 -0
  181. package/dist/reference/sdk-api/ui/item/ItemFooter.md +100 -0
  182. package/dist/reference/sdk-api/ui/item/ItemGroup.md +100 -0
  183. package/dist/reference/sdk-api/ui/item/ItemHeader.md +100 -0
  184. package/dist/reference/sdk-api/ui/item/ItemMedia.md +106 -0
  185. package/dist/reference/sdk-api/ui/item/ItemSeparator.md +106 -0
  186. package/dist/reference/sdk-api/ui/item/ItemTitle.md +100 -0
  187. package/dist/reference/sdk-api/ui/item/index.md +18 -0
  188. package/dist/reference/sdk-api/ui/label/Label.md +85 -0
  189. package/dist/reference/sdk-api/ui/label/index.md +9 -0
  190. package/dist/reference/sdk-api/ui/menubar/Menubar.md +100 -0
  191. package/dist/reference/sdk-api/ui/menubar/MenubarCheckboxItem.md +111 -0
  192. package/dist/reference/sdk-api/ui/menubar/MenubarContent.md +108 -0
  193. package/dist/reference/sdk-api/ui/menubar/MenubarGroup.md +100 -0
  194. package/dist/reference/sdk-api/ui/menubar/MenubarItem.md +109 -0
  195. package/dist/reference/sdk-api/ui/menubar/MenubarLabel.md +106 -0
  196. package/dist/reference/sdk-api/ui/menubar/MenubarMenu.md +55 -0
  197. package/dist/reference/sdk-api/ui/menubar/MenubarPortal.md +55 -0
  198. package/dist/reference/sdk-api/ui/menubar/MenubarRadioGroup.md +108 -0
  199. package/dist/reference/sdk-api/ui/menubar/MenubarRadioItem.md +110 -0
  200. package/dist/reference/sdk-api/ui/menubar/MenubarSeparator.md +100 -0
  201. package/dist/reference/sdk-api/ui/menubar/MenubarShortcut.md +100 -0
  202. package/dist/reference/sdk-api/ui/menubar/MenubarSub.md +58 -0
  203. package/dist/reference/sdk-api/ui/menubar/MenubarSubContent.md +108 -0
  204. package/dist/reference/sdk-api/ui/menubar/MenubarSubTrigger.md +107 -0
  205. package/dist/reference/sdk-api/ui/menubar/MenubarTrigger.md +100 -0
  206. package/dist/reference/sdk-api/ui/menubar/index.md +24 -0
  207. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenu.md +100 -0
  208. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuContent.md +106 -0
  209. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuIndicator.md +100 -0
  210. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuItem.md +106 -0
  211. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuLink.md +106 -0
  212. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuList.md +100 -0
  213. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuPositioner.md +100 -0
  214. package/dist/reference/sdk-api/ui/navigation-menu/NavigationMenuTrigger.md +120 -0
  215. package/dist/reference/sdk-api/ui/navigation-menu/index.md +17 -0
  216. package/dist/reference/sdk-api/ui/navigation-menu/navigationMenuTriggerStyle.md +64 -0
  217. package/dist/reference/sdk-api/ui/pagination/Pagination.md +100 -0
  218. package/dist/reference/sdk-api/ui/pagination/PaginationContent.md +100 -0
  219. package/dist/reference/sdk-api/ui/pagination/PaginationEllipsis.md +100 -0
  220. package/dist/reference/sdk-api/ui/pagination/PaginationItem.md +100 -0
  221. package/dist/reference/sdk-api/ui/pagination/PaginationLink.md +107 -0
  222. package/dist/reference/sdk-api/ui/pagination/PaginationNext.md +121 -0
  223. package/dist/reference/sdk-api/ui/pagination/PaginationPrevious.md +121 -0
  224. package/dist/reference/sdk-api/ui/pagination/index.md +15 -0
  225. package/dist/reference/sdk-api/ui/popover/Popover.md +58 -0
  226. package/dist/reference/sdk-api/ui/popover/PopoverAnchor.md +100 -0
  227. package/dist/reference/sdk-api/ui/popover/PopoverContent.md +108 -0
  228. package/dist/reference/sdk-api/ui/popover/PopoverDescription.md +100 -0
  229. package/dist/reference/sdk-api/ui/popover/PopoverHeader.md +100 -0
  230. package/dist/reference/sdk-api/ui/popover/PopoverTitle.md +100 -0
  231. package/dist/reference/sdk-api/ui/popover/PopoverTrigger.md +119 -0
  232. package/dist/reference/sdk-api/ui/popover/index.md +15 -0
  233. package/dist/reference/sdk-api/ui/portal/Portal.md +55 -0
  234. package/dist/reference/sdk-api/ui/portal/index.md +9 -0
  235. package/dist/reference/sdk-api/ui/progress/Progress.md +109 -0
  236. package/dist/reference/sdk-api/ui/progress/ProgressIndicator.md +107 -0
  237. package/dist/reference/sdk-api/ui/progress/ProgressLabel.md +100 -0
  238. package/dist/reference/sdk-api/ui/progress/ProgressTrack.md +100 -0
  239. package/dist/reference/sdk-api/ui/progress/ProgressValue.md +105 -0
  240. package/dist/reference/sdk-api/ui/progress/index.md +13 -0
  241. package/dist/reference/sdk-api/ui/radio-group/RadioGroup.md +108 -0
  242. package/dist/reference/sdk-api/ui/radio-group/RadioGroupItem.md +107 -0
  243. package/dist/reference/sdk-api/ui/radio-group/index.md +10 -0
  244. package/dist/reference/sdk-api/ui/resizable/ResizableHandle.md +107 -0
  245. package/dist/reference/sdk-api/ui/resizable/ResizablePanel.md +108 -0
  246. package/dist/reference/sdk-api/ui/resizable/ResizablePanelGroup.md +107 -0
  247. package/dist/reference/sdk-api/ui/resizable/index.md +11 -0
  248. package/dist/reference/sdk-api/ui/scroll-area/ScrollArea.md +159 -0
  249. package/dist/reference/sdk-api/ui/scroll-area/ScrollBar.md +106 -0
  250. package/dist/reference/sdk-api/ui/scroll-area/index.md +10 -0
  251. package/dist/reference/sdk-api/ui/select/Select.md +80 -0
  252. package/dist/reference/sdk-api/ui/select/SelectContent.md +106 -0
  253. package/dist/reference/sdk-api/ui/select/SelectGroup.md +100 -0
  254. package/dist/reference/sdk-api/ui/select/SelectItem.md +106 -0
  255. package/dist/reference/sdk-api/ui/select/SelectLabel.md +100 -0
  256. package/dist/reference/sdk-api/ui/select/SelectScrollDownButton.md +100 -0
  257. package/dist/reference/sdk-api/ui/select/SelectScrollUpButton.md +100 -0
  258. package/dist/reference/sdk-api/ui/select/SelectSeparator.md +100 -0
  259. package/dist/reference/sdk-api/ui/select/SelectTrigger.md +106 -0
  260. package/dist/reference/sdk-api/ui/select/SelectValue.md +106 -0
  261. package/dist/reference/sdk-api/ui/select/index.md +18 -0
  262. package/dist/reference/sdk-api/ui/separator/Separator.md +106 -0
  263. package/dist/reference/sdk-api/ui/separator/index.md +9 -0
  264. package/dist/reference/sdk-api/ui/sheet/Sheet.md +58 -0
  265. package/dist/reference/sdk-api/ui/sheet/SheetClose.md +100 -0
  266. package/dist/reference/sdk-api/ui/sheet/SheetContent.md +113 -0
  267. package/dist/reference/sdk-api/ui/sheet/SheetDescription.md +100 -0
  268. package/dist/reference/sdk-api/ui/sheet/SheetFooter.md +100 -0
  269. package/dist/reference/sdk-api/ui/sheet/SheetHeader.md +100 -0
  270. package/dist/reference/sdk-api/ui/sheet/SheetOverlay.md +100 -0
  271. package/dist/reference/sdk-api/ui/sheet/SheetPortal.md +55 -0
  272. package/dist/reference/sdk-api/ui/sheet/SheetTitle.md +100 -0
  273. package/dist/reference/sdk-api/ui/sheet/SheetTrigger.md +100 -0
  274. package/dist/reference/sdk-api/ui/sheet/index.md +18 -0
  275. package/dist/reference/sdk-api/ui/skeleton/Skeleton.md +100 -0
  276. package/dist/reference/sdk-api/ui/skeleton/index.md +9 -0
  277. package/dist/reference/sdk-api/ui/slider/Slider.md +116 -0
  278. package/dist/reference/sdk-api/ui/slider/index.md +9 -0
  279. package/dist/reference/sdk-api/ui/sonner/Toaster.md +43 -0
  280. package/dist/reference/sdk-api/ui/sonner/index.md +10 -0
  281. package/dist/reference/sdk-api/ui/sonner/toast.md +58 -0
  282. package/dist/reference/sdk-api/ui/spinner/Spinner.md +100 -0
  283. package/dist/reference/sdk-api/ui/spinner/index.md +9 -0
  284. package/dist/reference/sdk-api/ui/switch/Switch.md +110 -0
  285. package/dist/reference/sdk-api/ui/switch/index.md +9 -0
  286. package/dist/reference/sdk-api/ui/table/Table.md +100 -0
  287. package/dist/reference/sdk-api/ui/table/TableBody.md +100 -0
  288. package/dist/reference/sdk-api/ui/table/TableCaption.md +100 -0
  289. package/dist/reference/sdk-api/ui/table/TableCell.md +106 -0
  290. package/dist/reference/sdk-api/ui/table/TableFooter.md +100 -0
  291. package/dist/reference/sdk-api/ui/table/TableHead.md +106 -0
  292. package/dist/reference/sdk-api/ui/table/TableHeader.md +100 -0
  293. package/dist/reference/sdk-api/ui/table/TableRow.md +100 -0
  294. package/dist/reference/sdk-api/ui/table/index.md +16 -0
  295. package/dist/reference/sdk-api/ui/tabs/Tabs.md +109 -0
  296. package/dist/reference/sdk-api/ui/tabs/TabsContent.md +106 -0
  297. package/dist/reference/sdk-api/ui/tabs/TabsList.md +106 -0
  298. package/dist/reference/sdk-api/ui/tabs/TabsTrigger.md +107 -0
  299. package/dist/reference/sdk-api/ui/tabs/index.md +13 -0
  300. package/dist/reference/sdk-api/ui/tabs/tabsListVariants.md +70 -0
  301. package/dist/reference/sdk-api/ui/textarea/Textarea.md +126 -0
  302. package/dist/reference/sdk-api/ui/textarea/index.md +9 -0
  303. package/dist/reference/sdk-api/ui/toggle/Toggle.md +118 -0
  304. package/dist/reference/sdk-api/ui/toggle/index.md +10 -0
  305. package/dist/reference/sdk-api/ui/toggle/toggleVariants.md +71 -0
  306. package/dist/reference/sdk-api/ui/toggle-group/ToggleGroup.md +122 -0
  307. package/dist/reference/sdk-api/ui/toggle-group/ToggleGroupItem.md +116 -0
  308. package/dist/reference/sdk-api/ui/toggle-group/index.md +10 -0
  309. package/dist/reference/sdk-api.json +74470 -146
  310. package/dist/reference/sdk-api.md +62 -3
  311. package/dist/ui/accordion.d.ts +48 -0
  312. package/dist/ui/accordion.js +40 -0
  313. package/dist/ui/accordion.js.map +1 -1
  314. package/dist/ui/alert-dialog.d.ts +123 -0
  315. package/dist/ui/alert-dialog.js +114 -0
  316. package/dist/ui/alert-dialog.js.map +1 -1
  317. package/dist/ui/alert.d.ts +41 -0
  318. package/dist/ui/alert.js +41 -0
  319. package/dist/ui/alert.js.map +1 -1
  320. package/dist/ui/aspect-ratio.d.ts +11 -0
  321. package/dist/ui/aspect-ratio.js +10 -0
  322. package/dist/ui/aspect-ratio.js.map +1 -1
  323. package/dist/ui/avatar.d.ts +65 -0
  324. package/dist/ui/avatar.js +63 -0
  325. package/dist/ui/avatar.js.map +1 -1
  326. package/dist/ui/badge.d.ts +22 -0
  327. package/dist/ui/badge.js +22 -0
  328. package/dist/ui/badge.js.map +1 -1
  329. package/dist/ui/button-group.d.ts +45 -0
  330. package/dist/ui/button-group.js +43 -0
  331. package/dist/ui/button-group.js.map +1 -1
  332. package/dist/ui/button.d.ts +52 -0
  333. package/dist/ui/button.js +30 -0
  334. package/dist/ui/button.js.map +1 -1
  335. package/dist/ui/calendar.d.ts +44 -0
  336. package/dist/ui/calendar.js +19 -0
  337. package/dist/ui/calendar.js.map +1 -1
  338. package/dist/ui/card.d.ts +71 -0
  339. package/dist/ui/card.js +70 -0
  340. package/dist/ui/card.js.map +1 -1
  341. package/dist/ui/carousel.d.ts +71 -0
  342. package/dist/ui/carousel.js +66 -0
  343. package/dist/ui/carousel.js.map +1 -1
  344. package/dist/ui/checkbox.d.ts +14 -0
  345. package/dist/ui/checkbox.js +10 -0
  346. package/dist/ui/checkbox.js.map +1 -1
  347. package/dist/ui/collapsible.d.ts +37 -0
  348. package/dist/ui/collapsible.js +30 -0
  349. package/dist/ui/collapsible.js.map +1 -1
  350. package/dist/ui/combobox.d.ts +190 -0
  351. package/dist/ui/combobox.js +167 -0
  352. package/dist/ui/combobox.js.map +1 -1
  353. package/dist/ui/dialog.d.ts +109 -0
  354. package/dist/ui/dialog.js +100 -0
  355. package/dist/ui/dialog.js.map +1 -1
  356. package/dist/ui/drawer.d.ts +106 -0
  357. package/dist/ui/drawer.js +100 -0
  358. package/dist/ui/drawer.js.map +1 -1
  359. package/dist/ui/dropdown-menu.d.ts +171 -0
  360. package/dist/ui/dropdown-menu.js +150 -0
  361. package/dist/ui/dropdown-menu.js.map +1 -1
  362. package/dist/ui/empty.d.ts +61 -0
  363. package/dist/ui/empty.js +61 -0
  364. package/dist/ui/empty.js.map +1 -1
  365. package/dist/ui/field.d.ts +105 -0
  366. package/dist/ui/field.js +101 -0
  367. package/dist/ui/field.js.map +1 -1
  368. package/dist/ui/helpers.d.ts +11 -0
  369. package/dist/ui/helpers.js +11 -0
  370. package/dist/ui/helpers.js.map +1 -1
  371. package/dist/ui/input-group.d.ts +65 -0
  372. package/dist/ui/input-group.js +65 -0
  373. package/dist/ui/input-group.js.map +1 -1
  374. package/dist/ui/input-otp.d.ts +48 -0
  375. package/dist/ui/input-otp.js +40 -0
  376. package/dist/ui/input-otp.js.map +1 -1
  377. package/dist/ui/input.d.ts +24 -2
  378. package/dist/ui/input.js +20 -0
  379. package/dist/ui/input.js.map +1 -1
  380. package/dist/ui/item.d.ts +103 -0
  381. package/dist/ui/item.js +103 -0
  382. package/dist/ui/item.js.map +1 -1
  383. package/dist/ui/label.d.ts +10 -0
  384. package/dist/ui/label.js +10 -0
  385. package/dist/ui/label.js.map +1 -1
  386. package/dist/ui/menubar.d.ts +193 -0
  387. package/dist/ui/menubar.js +160 -0
  388. package/dist/ui/menubar.js.map +1 -1
  389. package/dist/ui/navigation-menu.d.ts +98 -0
  390. package/dist/ui/navigation-menu.js +90 -0
  391. package/dist/ui/navigation-menu.js.map +1 -1
  392. package/dist/ui/pagination.d.ts +76 -0
  393. package/dist/ui/pagination.js +73 -0
  394. package/dist/ui/pagination.js.map +1 -1
  395. package/dist/ui/popover.d.ts +81 -0
  396. package/dist/ui/popover.js +70 -0
  397. package/dist/ui/popover.js.map +1 -1
  398. package/dist/ui/portal.d.ts +11 -0
  399. package/dist/ui/portal.js +10 -0
  400. package/dist/ui/portal.js.map +1 -1
  401. package/dist/ui/progress.d.ts +53 -26
  402. package/dist/ui/progress.js +50 -26
  403. package/dist/ui/progress.js.map +1 -1
  404. package/dist/ui/radio-group.d.ts +25 -0
  405. package/dist/ui/radio-group.js +20 -0
  406. package/dist/ui/radio-group.js.map +1 -1
  407. package/dist/ui/resizable.d.ts +37 -0
  408. package/dist/ui/resizable.js +30 -0
  409. package/dist/ui/resizable.js.map +1 -1
  410. package/dist/ui/scroll-area.d.ts +22 -0
  411. package/dist/ui/scroll-area.js +21 -0
  412. package/dist/ui/scroll-area.js.map +1 -1
  413. package/dist/ui/select.d.ts +122 -0
  414. package/dist/ui/select.js +108 -0
  415. package/dist/ui/select.js.map +1 -1
  416. package/dist/ui/separator.d.ts +11 -0
  417. package/dist/ui/separator.js +10 -0
  418. package/dist/ui/separator.js.map +1 -1
  419. package/dist/ui/sheet.d.ts +107 -0
  420. package/dist/ui/sheet.js +101 -0
  421. package/dist/ui/sheet.js.map +1 -1
  422. package/dist/ui/skeleton.d.ts +10 -0
  423. package/dist/ui/skeleton.js +10 -0
  424. package/dist/ui/skeleton.js.map +1 -1
  425. package/dist/ui/slider.d.ts +21 -0
  426. package/dist/ui/slider.js +14 -0
  427. package/dist/ui/slider.js.map +1 -1
  428. package/dist/ui/sonner.d.ts +23 -0
  429. package/dist/ui/sonner.js +21 -0
  430. package/dist/ui/sonner.js.map +1 -1
  431. package/dist/ui/spinner.d.ts +10 -0
  432. package/dist/ui/spinner.js +10 -0
  433. package/dist/ui/spinner.js.map +1 -1
  434. package/dist/ui/switch.d.ts +15 -0
  435. package/dist/ui/switch.js +10 -0
  436. package/dist/ui/switch.js.map +1 -1
  437. package/dist/ui/table.d.ts +81 -0
  438. package/dist/ui/table.js +80 -0
  439. package/dist/ui/table.js.map +1 -1
  440. package/dist/ui/tabs.d.ts +59 -0
  441. package/dist/ui/tabs.js +51 -0
  442. package/dist/ui/tabs.js.map +1 -1
  443. package/dist/ui/textarea.d.ts +13 -0
  444. package/dist/ui/textarea.js +13 -0
  445. package/dist/ui/textarea.js.map +1 -1
  446. package/dist/ui/toggle-group.d.ts +34 -0
  447. package/dist/ui/toggle-group.js +24 -0
  448. package/dist/ui/toggle-group.js.map +1 -1
  449. package/dist/ui/toggle.d.ts +28 -0
  450. package/dist/ui/toggle.js +24 -0
  451. package/dist/ui/toggle.js.map +1 -1
  452. package/package.json +4 -2
  453. package/release-provenance.json +15 -0
  454. package/src/adapters/interest-card/eslint/eslint-plugin-custom-navigation.mjs +2 -0
  455. package/src/adapters/interest-card/eslint/taro.mjs +21 -0
  456. package/src/adapters/interest-card/runtime/microapp.ts +11 -0
  457. package/src/adapters/interest-card/types/taro.d.ts +28 -0
  458. package/src/build/config-overrides.ts +39 -0
  459. package/src/build/index.ts +5 -0
  460. package/src/build/plugins/app-config.ts +47 -0
  461. package/src/build/plugins/depend-card/analyze.ts +122 -0
  462. package/src/build/plugins/depend-card/source.ts +97 -0
  463. package/src/build/plugins/vite-depend-card.ts +168 -0
  464. package/src/build/plugins/vite-image-asset-import.ts +178 -0
  465. package/src/build/plugins/vite-inline-json.ts +149 -0
  466. package/src/build/plugins/vite-taro-source-location.ts +224 -0
  467. package/src/build/plugins/vite-tt-components-entry.ts +33 -0
  468. package/src/build/taro.ts +830 -0
  469. package/src/components/miniapp-open-card.ts +94 -0
  470. package/src/components/native-miniapp-open-card.ts +7 -0
  471. package/src/eslint/eslint-plugin-custom-navigation.mjs +290 -0
  472. package/src/eslint/eslint-plugin-microapp-pages.mjs +659 -0
  473. package/src/eslint/server.mjs +69 -0
  474. package/src/eslint/taro.mjs +587 -0
  475. package/src/index.ts +2 -0
  476. package/src/internal/runtime/douyin-open-button.d.ts +29 -0
  477. package/src/internal/runtime/iframe-auth/identity.ts +236 -0
  478. package/src/internal/runtime/iframe-auth/index.ts +2 -0
  479. package/src/internal/runtime/iframe-auth/sync.ts +37 -0
  480. package/src/internal/vendor-modules.d.ts +8 -0
  481. package/src/lib/measure.ts +115 -0
  482. package/src/lib/platform.ts +11 -0
  483. package/src/lib/utils.ts +6 -0
  484. package/src/runtime/client.ts +246 -0
  485. package/src/runtime/default-client.ts +26 -0
  486. package/src/runtime/default-iframe-auth.ts +13 -0
  487. package/src/runtime/douyin-container-request.ts +367 -0
  488. package/src/runtime/douyin-login-request.ts +514 -0
  489. package/src/runtime/globals.d.ts +342 -0
  490. package/src/runtime/index.ts +4 -0
  491. package/src/runtime/network-url.ts +63 -0
  492. package/src/ui/accordion.tsx +226 -0
  493. package/src/ui/alert-dialog.tsx +407 -0
  494. package/src/ui/alert.tsx +149 -0
  495. package/src/ui/aspect-ratio.tsx +37 -0
  496. package/src/ui/avatar.tsx +238 -0
  497. package/src/ui/badge.tsx +77 -0
  498. package/src/ui/button-group.tsx +173 -0
  499. package/src/ui/button.tsx +215 -0
  500. package/src/ui/calendar.tsx +353 -0
  501. package/src/ui/card.tsx +217 -0
  502. package/src/ui/carousel.tsx +259 -0
  503. package/src/ui/checkbox.tsx +62 -0
  504. package/src/ui/collapsible.tsx +148 -0
  505. package/src/ui/combobox.tsx +650 -0
  506. package/src/ui/dialog.tsx +290 -0
  507. package/src/ui/drawer.tsx +272 -0
  508. package/src/ui/dropdown-menu.tsx +547 -0
  509. package/src/ui/empty.tsx +166 -0
  510. package/src/ui/field.tsx +427 -0
  511. package/src/ui/helpers.tsx +39 -0
  512. package/src/ui/index.ts +47 -0
  513. package/src/ui/input-group.tsx +320 -0
  514. package/src/ui/input-otp.tsx +189 -0
  515. package/src/ui/input.tsx +60 -0
  516. package/src/ui/item.tsx +338 -0
  517. package/src/ui/label.tsx +31 -0
  518. package/src/ui/menubar.tsx +835 -0
  519. package/src/ui/navigation-menu.tsx +341 -0
  520. package/src/ui/pagination.tsx +195 -0
  521. package/src/ui/popover.tsx +363 -0
  522. package/src/ui/portal.tsx +31 -0
  523. package/src/ui/progress.tsx +182 -0
  524. package/src/ui/radio-group.tsx +111 -0
  525. package/src/ui/resizable.tsx +410 -0
  526. package/src/ui/scroll-area.tsx +102 -0
  527. package/src/ui/select.tsx +471 -0
  528. package/src/ui/separator.tsx +37 -0
  529. package/src/ui/sheet.tsx +289 -0
  530. package/src/ui/skeleton.tsx +25 -0
  531. package/src/ui/slider.tsx +176 -0
  532. package/src/ui/sonner.tsx +40 -0
  533. package/src/ui/spinner.tsx +23 -0
  534. package/src/ui/switch.tsx +94 -0
  535. package/src/ui/table.tsx +240 -0
  536. package/src/ui/tabs.tsx +233 -0
  537. package/src/ui/tailwind.css +2 -0
  538. package/src/ui/textarea.tsx +49 -0
  539. package/src/ui/theme.css +234 -0
  540. package/src/ui/toggle-group.tsx +215 -0
  541. package/src/ui/toggle.tsx +113 -0
@@ -0,0 +1,547 @@
1
+ import * as React from "react"
2
+ import { View, type ViewProps } from "@tarojs/components"
3
+
4
+ import { cn } from "../lib/utils"
5
+ import { Check, ChevronRight, Circle } from "@open-dy/lucide-taro"
6
+
7
+ const DropdownMenuContext = React.createContext<{
8
+ open: boolean
9
+ onOpenChange: (open: boolean) => void
10
+ }>({ open: false, onOpenChange: () => {} })
11
+
12
+ type DropdownMenuTriggerRenderProps = Omit<ViewProps, "children"> & {
13
+ /** @desc 组件自动注入的触发器标识;自定义 render 应转发到触发节点,不手动修改。 */
14
+ "data-slot": "dropdown-menu-trigger"
15
+ /** @desc 组件自动注入的展开状态;自定义 render 应转发到触发节点。 */
16
+ "aria-expanded": boolean
17
+ }
18
+
19
+ type DropdownMenuTriggerClickEvent = Parameters<
20
+ NonNullable<ViewProps["onClick"]>
21
+ >[0]
22
+
23
+ type DropdownMenuTriggerProps = Omit<ViewProps, "children"> & {
24
+ /** @desc 默认触发器内的内容;设置 render 时由自定义渲染结果取代。 */
25
+ children?: React.ReactNode
26
+ /** @desc 自定义触发器元素或渲染函数;省略时使用 View。元素会被克隆并合并点击处理;函数收到状态和事件 props,必须传给实际可点击节点。 */
27
+ render?:
28
+ | React.ReactElement
29
+ | ((props: DropdownMenuTriggerRenderProps) => React.ReactNode)
30
+ }
31
+
32
+ /**
33
+ * @desc 下拉菜单组件。
34
+ * @param {Parameters<typeof DropdownMenu>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
35
+ * @return {ReturnType<typeof DropdownMenu>} 组件渲染结果;类型见返回值契约。
36
+ * @example
37
+ * ```tsx
38
+ * import { DropdownMenu } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
39
+ * <DropdownMenu />
40
+ * ```
41
+ */
42
+ function DropdownMenu({
43
+ open: openProp,
44
+ defaultOpen,
45
+ onOpenChange,
46
+ children,
47
+ }: {
48
+ /** @desc 受控展开状态;传入后以该值为准,需在 onOpenChange 中更新。省略时由组件内部管理。 */
49
+ open?: boolean
50
+ /** @desc 非受控模式的初始展开状态,默认 false;仅初始化时读取,传入 open 后不生效。 */
51
+ defaultOpen?: boolean
52
+ /** @desc 触发器或关闭操作请求改变展开状态时调用,参数为下一状态;受控模式需由调用方同步 open。 */
53
+ onOpenChange?: (open: boolean) => void
54
+ /** @desc 同一实例的触发器、内容区等组合子组件;省略时不显示内容,子组件通过上下文共享状态。 */
55
+ children?: React.ReactNode
56
+ }) {
57
+ const [internal, setInternal] = React.useState(defaultOpen ?? false)
58
+ const controlled = openProp !== undefined
59
+ const open = controlled ? openProp : internal
60
+
61
+ return (
62
+ <DropdownMenuContext.Provider
63
+ value={{
64
+ open,
65
+ onOpenChange: (v) => {
66
+ if (!controlled) setInternal(v)
67
+ onOpenChange?.(v)
68
+ },
69
+ }}
70
+ >
71
+ <View data-slot="dropdown-menu" className="relative z-50 inline-block">
72
+ {children}
73
+ </View>
74
+ </DropdownMenuContext.Provider>
75
+ )
76
+ }
77
+
78
+ /**
79
+ * @desc 下拉菜单触发器。
80
+ * @param {Parameters<typeof DropdownMenuTrigger>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
81
+ * @return {ReturnType<typeof DropdownMenuTrigger>} 组件渲染结果;类型见返回值契约。
82
+ * @example
83
+ * ```tsx
84
+ * import { DropdownMenu, DropdownMenuTrigger } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
85
+ * <DropdownMenu><DropdownMenuTrigger /></DropdownMenu>
86
+ * ```
87
+ */
88
+ function DropdownMenuTrigger({
89
+ children,
90
+ render,
91
+ onClick,
92
+ ...props
93
+ }: DropdownMenuTriggerProps) {
94
+ const { onOpenChange, open } = React.useContext(DropdownMenuContext)
95
+ const handleClick = (event: DropdownMenuTriggerClickEvent) => {
96
+ onClick?.(event)
97
+ onOpenChange(!open)
98
+ }
99
+
100
+ const triggerProps: DropdownMenuTriggerRenderProps = {
101
+ "data-slot": "dropdown-menu-trigger",
102
+ "aria-expanded": open,
103
+ onClick: handleClick,
104
+ ...props,
105
+ }
106
+
107
+ if (render) {
108
+ if (typeof render === "function") {
109
+ return <>{render(triggerProps)}</>
110
+ }
111
+
112
+ if (React.isValidElement(render)) {
113
+ const element = render as React.ReactElement<{
114
+ onClick?: ViewProps["onClick"]
115
+ }>
116
+
117
+ return React.cloneElement(element, {
118
+ ...triggerProps,
119
+ onClick: (event: DropdownMenuTriggerClickEvent) => {
120
+ element.props.onClick?.(event)
121
+ handleClick(event)
122
+ },
123
+ })
124
+ }
125
+ }
126
+
127
+ return (
128
+ <View {...triggerProps}>
129
+ {children}
130
+ </View>
131
+ )
132
+ }
133
+
134
+ /**
135
+ * @desc 下拉菜单跨层级渲染入口。
136
+ * @param {Parameters<typeof DropdownMenuPortal>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
137
+ * @return {ReturnType<typeof DropdownMenuPortal>} 组件渲染结果;类型见返回值契约。
138
+ * @example
139
+ * ```tsx
140
+ * import { DropdownMenu, DropdownMenuPortal } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
141
+ * <DropdownMenu><DropdownMenuPortal /></DropdownMenu>
142
+ * ```
143
+ */
144
+ function DropdownMenuPortal({ children }: {
145
+ /** @desc 要渲染的子节点;该兼容包装只返回 Fragment,不额外创建原生容器或执行挂载迁移。 */
146
+ children?: React.ReactNode }) {
147
+ return <>{children}</>
148
+ }
149
+
150
+ /**
151
+ * @desc 下拉菜单内容容器。
152
+ * @param {Parameters<typeof DropdownMenuContent>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
153
+ * @return {ReturnType<typeof DropdownMenuContent>} 组件渲染结果;类型见返回值契约。
154
+ * @example
155
+ * ```tsx
156
+ * import { DropdownMenu, DropdownMenuContent } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
157
+ * <DropdownMenu><DropdownMenuContent /></DropdownMenu>
158
+ * ```
159
+ */
160
+ function DropdownMenuContent({
161
+ className,
162
+ children,
163
+ sideOffset: _sideOffset,
164
+ ...props
165
+ }: ViewProps & {
166
+ /** @desc 兼容属性;当前实现未使用该值定位,内容固定在触发器下方并使用 mt-1 间隔。 */
167
+ sideOffset?: number }) {
168
+ const { open, onOpenChange } = React.useContext(DropdownMenuContext)
169
+ if (!open) return null
170
+
171
+ return (
172
+ <>
173
+ <View className="fixed inset-0 z-40" onClick={() => onOpenChange(false)} />
174
+ <View
175
+ data-slot="dropdown-menu-content"
176
+ className={cn(
177
+ "absolute top-full left-0 z-50 mt-1 min-w-[8rem] overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md",
178
+ className
179
+ )}
180
+ {...props}
181
+ >
182
+ {children}
183
+ </View>
184
+ </>
185
+ )
186
+ }
187
+
188
+ /**
189
+ * @desc 下拉菜单分组容器。
190
+ * @param {Parameters<typeof DropdownMenuGroup>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
191
+ * @return {ReturnType<typeof DropdownMenuGroup>} 组件渲染结果;类型见返回值契约。
192
+ * @example
193
+ * ```tsx
194
+ * import { DropdownMenu, DropdownMenuGroup } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
195
+ * <DropdownMenu><DropdownMenuGroup /></DropdownMenu>
196
+ * ```
197
+ */
198
+ function DropdownMenuGroup({ ...props }: ViewProps) {
199
+ return <View data-slot="dropdown-menu-group" {...props} />
200
+ }
201
+
202
+ /**
203
+ * @desc 下拉菜单条目。
204
+ * @param {Parameters<typeof DropdownMenuItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
205
+ * @return {ReturnType<typeof DropdownMenuItem>} 组件渲染结果;类型见返回值契约。
206
+ * @example
207
+ * ```tsx
208
+ * import { DropdownMenu, DropdownMenuItem } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
209
+ * <DropdownMenu><DropdownMenuItem /></DropdownMenu>
210
+ * ```
211
+ */
212
+ function DropdownMenuItem({
213
+ className,
214
+ inset,
215
+ variant = "default",
216
+ ...props
217
+ }: ViewProps & {
218
+ /** @desc 是否增加左侧内边距以对齐含图标的项目;默认 false,为 true 时使用 pl-8。 */
219
+ inset?: boolean;
220
+ /** @desc 项目样式,默认 default;destructive 用危险操作文字及按压色,仅改变样式,不自动执行删除。 */
221
+ variant?: "default" | "destructive" }) {
222
+ const { onOpenChange } = React.useContext(DropdownMenuContext)
223
+ return (
224
+ <View
225
+ data-slot="dropdown-menu-item"
226
+ data-inset={inset}
227
+ data-variant={variant}
228
+ className={cn(
229
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-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",
230
+ variant === "destructive" &&
231
+ "text-destructive active:bg-destructive/10 active:text-destructive",
232
+ inset && "pl-8",
233
+ className
234
+ )}
235
+ onClick={(event) => {
236
+ props.onClick?.(event)
237
+ onOpenChange(false)
238
+ }}
239
+ {...props}
240
+ />
241
+ )
242
+ }
243
+
244
+ /**
245
+ * @desc 下拉菜单复选条目。
246
+ * @param {Parameters<typeof DropdownMenuCheckboxItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
247
+ * @return {ReturnType<typeof DropdownMenuCheckboxItem>} 组件渲染结果;类型见返回值契约。
248
+ * @example
249
+ * ```tsx
250
+ * import { DropdownMenu, DropdownMenuCheckboxItem } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
251
+ * <DropdownMenu><DropdownMenuCheckboxItem /></DropdownMenu>
252
+ * ```
253
+ */
254
+ function DropdownMenuCheckboxItem({
255
+ className,
256
+ children,
257
+ checked,
258
+ onCheckedChange,
259
+ ...props
260
+ }: ViewProps & {
261
+ /** @desc 外部控制的勾选状态,默认不勾选;组件不会自己保存状态,需在 onCheckedChange 中同步。 */
262
+ checked?: boolean
263
+ /** @desc 点击时传入 !checked;调用方负责更新 checked,没有 defaultChecked 或非受控模式。 */
264
+ onCheckedChange?: (checked: boolean) => void
265
+ }) {
266
+ return (
267
+ <View
268
+ data-slot="dropdown-menu-checkbox-item"
269
+ className={cn(
270
+ "relative flex items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 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",
271
+ className
272
+ )}
273
+ onClick={() => onCheckedChange?.(!checked)}
274
+ {...props}
275
+ >
276
+ <View className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
277
+ {checked ? <Check className="size-4" /> : null}
278
+ </View>
279
+ {children}
280
+ </View>
281
+ )
282
+ }
283
+
284
+ /**
285
+ * @desc 下拉菜单单选分组。
286
+ * @param {Parameters<typeof DropdownMenuRadioGroup>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
287
+ * @return {ReturnType<typeof DropdownMenuRadioGroup>} 组件渲染结果;类型见返回值契约。
288
+ * @example
289
+ * ```tsx
290
+ * import { DropdownMenu, DropdownMenuRadioGroup } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
291
+ * <DropdownMenu><DropdownMenuRadioGroup /></DropdownMenu>
292
+ * ```
293
+ */
294
+ function DropdownMenuRadioGroup({
295
+ children,
296
+ ...props
297
+ }: ViewProps) {
298
+ return (
299
+ <View data-slot="dropdown-menu-radio-group" {...props}>
300
+ {children}
301
+ </View>
302
+ )
303
+ }
304
+
305
+ /**
306
+ * @desc 下拉菜单单选条目。
307
+ * @param {Parameters<typeof DropdownMenuRadioItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
308
+ * @return {ReturnType<typeof DropdownMenuRadioItem>} 组件渲染结果;类型见返回值契约。
309
+ * @example
310
+ * ```tsx
311
+ * import { DropdownMenu, DropdownMenuRadioItem } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
312
+ * <DropdownMenu><DropdownMenuRadioItem checked /></DropdownMenu>
313
+ * ```
314
+ */
315
+ function DropdownMenuRadioItem({
316
+ className,
317
+ children,
318
+ checked,
319
+ ...props
320
+ }: ViewProps & {
321
+ /** @desc 是否显示选中指示,默认 false;该项不管理组值,选择和更新由调用方通过点击事件处理。 */
322
+ checked?: boolean }) {
323
+ return (
324
+ <View
325
+ data-slot="dropdown-menu-radio-item"
326
+ className={cn(
327
+ "relative flex items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 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",
328
+ className
329
+ )}
330
+ {...props}
331
+ >
332
+ <View className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
333
+ {checked ? <Circle className="size-2 fill-current" /> : null}
334
+ </View>
335
+ {children}
336
+ </View>
337
+ )
338
+ }
339
+
340
+ /**
341
+ * @desc 下拉菜单标签文本。
342
+ * @param {Parameters<typeof DropdownMenuLabel>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
343
+ * @return {ReturnType<typeof DropdownMenuLabel>} 组件渲染结果;类型见返回值契约。
344
+ * @example
345
+ * ```tsx
346
+ * import { DropdownMenu, DropdownMenuLabel } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
347
+ * <DropdownMenu><DropdownMenuLabel /></DropdownMenu>
348
+ * ```
349
+ */
350
+ function DropdownMenuLabel({
351
+ className,
352
+ inset,
353
+ ...props
354
+ }: ViewProps & {
355
+ /** @desc 是否增加左侧内边距以对齐含图标的项目;默认 false,为 true 时使用 pl-8。 */
356
+ inset?: boolean }) {
357
+ return (
358
+ <View
359
+ data-slot="dropdown-menu-label"
360
+ data-inset={inset}
361
+ className={cn(
362
+ "px-2 py-1.5 text-sm font-medium",
363
+ inset && "pl-8",
364
+ className
365
+ )}
366
+ {...props}
367
+ />
368
+ )
369
+ }
370
+
371
+ /**
372
+ * @desc 下拉菜单分隔线。
373
+ * @param {Parameters<typeof DropdownMenuSeparator>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
374
+ * @return {ReturnType<typeof DropdownMenuSeparator>} 组件渲染结果;类型见返回值契约。
375
+ * @example
376
+ * ```tsx
377
+ * import { DropdownMenu, DropdownMenuSeparator } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
378
+ * <DropdownMenu><DropdownMenuSeparator /></DropdownMenu>
379
+ * ```
380
+ */
381
+ function DropdownMenuSeparator({ className, ...props }: ViewProps) {
382
+ return (
383
+ <View
384
+ data-slot="dropdown-menu-separator"
385
+ className={cn("-mx-1 my-1 h-px bg-border", className)}
386
+ {...props}
387
+ />
388
+ )
389
+ }
390
+
391
+ /**
392
+ * @desc 下拉菜单快捷键说明。
393
+ * @param {Parameters<typeof DropdownMenuShortcut>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
394
+ * @return {ReturnType<typeof DropdownMenuShortcut>} 组件渲染结果;类型见返回值契约。
395
+ * @example
396
+ * ```tsx
397
+ * import { DropdownMenu, DropdownMenuShortcut } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
398
+ * <DropdownMenu><DropdownMenuShortcut /></DropdownMenu>
399
+ * ```
400
+ */
401
+ function DropdownMenuShortcut({ className, ...props }: ViewProps) {
402
+ return (
403
+ <View
404
+ data-slot="dropdown-menu-shortcut"
405
+ className={cn(
406
+ "ml-auto text-xs tracking-widest text-muted-foreground",
407
+ className
408
+ )}
409
+ {...props}
410
+ />
411
+ )
412
+ }
413
+
414
+ const DropdownMenuSubContext = React.createContext<{
415
+ open: boolean
416
+ onOpenChange: (open: boolean) => void
417
+ }>({ open: false, onOpenChange: () => {} })
418
+
419
+ /**
420
+ * @desc 下拉菜单子菜单上下文。
421
+ * @param {Parameters<typeof DropdownMenuSub>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
422
+ * @return {ReturnType<typeof DropdownMenuSub>} 组件渲染结果;类型见返回值契约。
423
+ * @example
424
+ * ```tsx
425
+ * import { DropdownMenu, DropdownMenuSub } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
426
+ * <DropdownMenu><DropdownMenuSub /></DropdownMenu>
427
+ * ```
428
+ */
429
+ function DropdownMenuSub({
430
+ open: openProp,
431
+ defaultOpen,
432
+ onOpenChange,
433
+ children,
434
+ }: {
435
+ /** @desc 受控展开状态;传入后以该值为准,需在 onOpenChange 中更新。省略时由组件内部管理。 */
436
+ open?: boolean
437
+ /** @desc 非受控模式的初始展开状态,默认 false;仅初始化时读取,传入 open 后不生效。 */
438
+ defaultOpen?: boolean
439
+ /** @desc 触发器或关闭操作请求改变展开状态时调用,参数为下一状态;受控模式需由调用方同步 open。 */
440
+ onOpenChange?: (open: boolean) => void
441
+ /** @desc 同一实例的触发器、内容区等组合子组件;省略时不显示内容,子组件通过上下文共享状态。 */
442
+ children?: React.ReactNode
443
+ }) {
444
+ const [internal, setInternal] = React.useState(defaultOpen ?? false)
445
+ const controlled = openProp !== undefined
446
+ const open = controlled ? openProp : internal
447
+
448
+ return (
449
+ <DropdownMenuSubContext.Provider
450
+ value={{
451
+ open,
452
+ onOpenChange: (v) => {
453
+ if (!controlled) setInternal(v)
454
+ onOpenChange?.(v)
455
+ },
456
+ }}
457
+ >
458
+ {children}
459
+ </DropdownMenuSubContext.Provider>
460
+ )
461
+ }
462
+
463
+ /**
464
+ * @desc 下拉菜单子菜单触发器。
465
+ * @param {Parameters<typeof DropdownMenuSubTrigger>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
466
+ * @return {ReturnType<typeof DropdownMenuSubTrigger>} 组件渲染结果;类型见返回值契约。
467
+ * @example
468
+ * ```tsx
469
+ * import { DropdownMenu, DropdownMenuSubTrigger } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
470
+ * <DropdownMenu><DropdownMenuSubTrigger /></DropdownMenu>
471
+ * ```
472
+ */
473
+ function DropdownMenuSubTrigger({
474
+ className,
475
+ inset,
476
+ children,
477
+ ...props
478
+ }: ViewProps & {
479
+ /** @desc 是否增加左侧内边距以对齐含图标的项目;默认 false,为 true 时使用 pl-8。 */
480
+ inset?: boolean }) {
481
+ const { onOpenChange, open } = React.useContext(DropdownMenuSubContext)
482
+ return (
483
+ <View
484
+ data-slot="dropdown-menu-sub-trigger"
485
+ data-inset={inset}
486
+ data-state={open ? "open" : "closed"}
487
+ className={cn(
488
+ "flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
489
+ open && "bg-accent",
490
+ inset && "pl-8",
491
+ className
492
+ )}
493
+ onClick={() => onOpenChange(!open)}
494
+ {...props}
495
+ >
496
+ {children}
497
+ <ChevronRight className="ml-auto" />
498
+ </View>
499
+ )
500
+ }
501
+
502
+ /**
503
+ * @desc 下拉菜单子菜单内容。
504
+ * @param {Parameters<typeof DropdownMenuSubContent>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
505
+ * @return {ReturnType<typeof DropdownMenuSubContent>} 组件渲染结果;类型见返回值契约。
506
+ * @example
507
+ * ```tsx
508
+ * import { DropdownMenu, DropdownMenuSubContent } from '@open-dy/vibecoding-sdk-taro/ui/dropdown-menu'
509
+ * <DropdownMenu><DropdownMenuSubContent /></DropdownMenu>
510
+ * ```
511
+ */
512
+ function DropdownMenuSubContent({
513
+ className,
514
+ ...props
515
+ }: ViewProps) {
516
+ const { open } = React.useContext(DropdownMenuSubContext)
517
+ if (!open) return null
518
+
519
+ return (
520
+ <View
521
+ data-slot="dropdown-menu-sub-content"
522
+ className={cn(
523
+ "z-50 min-w-[8rem] overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg",
524
+ className
525
+ )}
526
+ {...props}
527
+ />
528
+ )
529
+ }
530
+
531
+ export {
532
+ DropdownMenu,
533
+ DropdownMenuTrigger,
534
+ DropdownMenuContent,
535
+ DropdownMenuItem,
536
+ DropdownMenuCheckboxItem,
537
+ DropdownMenuRadioItem,
538
+ DropdownMenuLabel,
539
+ DropdownMenuSeparator,
540
+ DropdownMenuShortcut,
541
+ DropdownMenuGroup,
542
+ DropdownMenuPortal,
543
+ DropdownMenuSub,
544
+ DropdownMenuSubContent,
545
+ DropdownMenuSubTrigger,
546
+ DropdownMenuRadioGroup,
547
+ }