@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,341 @@
1
+ import * as React from "react"
2
+ import { View, type ViewProps } from "@tarojs/components"
3
+ import { cva } from "class-variance-authority"
4
+
5
+ import { cn } from "../lib/utils"
6
+ import { ChevronDown } from "@open-dy/lucide-taro"
7
+
8
+ const NavigationMenuContext = React.createContext<{
9
+ activeItem: string | null
10
+ setActiveItem: (item: string | null) => void
11
+ }>({ activeItem: null, setActiveItem: () => {} })
12
+
13
+ const NavigationMenuItemContext = React.createContext<{
14
+ value: string
15
+ } | null>(null)
16
+
17
+ /**
18
+ * @desc 导航菜单组件。
19
+ * @param {Parameters<typeof NavigationMenu>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
20
+ * @return {ReturnType<typeof NavigationMenu>} 组件渲染结果;类型见返回值契约。
21
+ * @example
22
+ * ```tsx
23
+ * import { NavigationMenu } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
24
+ * <NavigationMenu />
25
+ * ```
26
+ */
27
+ function NavigationMenu({
28
+ className,
29
+ children,
30
+ ...props
31
+ }: ViewProps) {
32
+ const [activeItem, setActiveItem] = React.useState<string | null>(null)
33
+
34
+ return (
35
+ <NavigationMenuContext.Provider value={{ activeItem, setActiveItem }}>
36
+ <View
37
+ data-slot="navigation-menu"
38
+ className={cn(
39
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
40
+ className
41
+ )}
42
+ {...props}
43
+ >
44
+ {children}
45
+ </View>
46
+ </NavigationMenuContext.Provider>
47
+ )
48
+ }
49
+
50
+ /**
51
+ * @desc 导航菜单列表容器。
52
+ * @param {Parameters<typeof NavigationMenuList>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
53
+ * @return {ReturnType<typeof NavigationMenuList>} 组件渲染结果;类型见返回值契约。
54
+ * @example
55
+ * ```tsx
56
+ * import { NavigationMenu, NavigationMenuList } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
57
+ * <NavigationMenu><NavigationMenuList /></NavigationMenu>
58
+ * ```
59
+ */
60
+ function NavigationMenuList({ className, ...props }: ViewProps) {
61
+ return (
62
+ <View
63
+ data-slot="navigation-menu-list"
64
+ className={cn(
65
+ "group flex flex-1 items-center justify-center gap-0",
66
+ className
67
+ )}
68
+ {...props}
69
+ />
70
+ )
71
+ }
72
+
73
+ /**
74
+ * @desc 导航菜单条目。
75
+ * @param {Parameters<typeof NavigationMenuItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
76
+ * @return {ReturnType<typeof NavigationMenuItem>} 组件渲染结果;类型见返回值契约。
77
+ * @example
78
+ * ```tsx
79
+ * import { NavigationMenu, NavigationMenuItem } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
80
+ * <NavigationMenu><NavigationMenuItem /></NavigationMenu>
81
+ * ```
82
+ */
83
+ function NavigationMenuItem({
84
+ className,
85
+ children,
86
+ value,
87
+ ...props
88
+ }: ViewProps & {
89
+ /** @desc 项目标识;省略时首次渲染生成随机标识。仅在初始化时读取,不应在挂载后更换。 */
90
+ value?: string }) {
91
+ const itemValueRef = React.useRef(
92
+ value ?? `navigation-menu-item-${Math.random().toString(36).slice(2, 10)}`
93
+ )
94
+
95
+ return (
96
+ <NavigationMenuItemContext.Provider value={{ value: itemValueRef.current }}>
97
+ <View
98
+ data-slot="navigation-menu-item"
99
+ className={cn("relative", className)}
100
+ {...props}
101
+ >
102
+ {children}
103
+ </View>
104
+ </NavigationMenuItemContext.Provider>
105
+ )
106
+ }
107
+
108
+ /**
109
+ * @desc 生成导航菜单触发器的样式类名;接受其声明的样式变体。
110
+ * @param {Parameters<typeof navigationMenuTriggerStyle>[0]} props 样式变体以及附加的 class 或 className。
111
+ * @return {string} 合并后的样式类名。
112
+ * @example
113
+ * ```tsx
114
+ * import { navigationMenuTriggerStyle } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
115
+ * navigationMenuTriggerStyle()
116
+ * ```
117
+ */
118
+ const navigationMenuTriggerStyle = cva(
119
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50"
120
+ )
121
+
122
+ type NavigationMenuTriggerRenderProps = Omit<ViewProps, "children"> & {
123
+ /** @desc 组件自动注入的触发器标识;自定义 render 应转发到触发节点,不手动修改。 */
124
+ "data-slot": "navigation-menu-trigger"
125
+ /** @desc 组件自动注入的展开状态:open 或 closed;自定义 render 应转发以供状态样式使用。 */
126
+ "data-state": "open" | "closed"
127
+ }
128
+
129
+ type NavigationMenuTriggerClickEvent = Parameters<
130
+ NonNullable<ViewProps["onClick"]>
131
+ >[0]
132
+
133
+ type NavigationMenuTriggerProps = Omit<ViewProps, "children"> & {
134
+ /** @desc 默认触发器内的内容;设置 render 时由自定义渲染结果取代。 */
135
+ children?: React.ReactNode
136
+ /** @desc 对应菜单项标识;省略时取最近 NavigationMenuItem 的标识。触发器与内容需使用同一标识,否则无法配对展开。 */
137
+ value?: string
138
+ /** @desc 自定义触发器元素或渲染函数;省略时使用 View。元素会被克隆并合并点击处理;函数收到状态和事件 props,必须传给实际可点击节点。 */
139
+ render?:
140
+ | React.ReactElement
141
+ | ((props: NavigationMenuTriggerRenderProps) => React.ReactNode)
142
+ }
143
+
144
+ /**
145
+ * @desc 导航菜单触发器。
146
+ * @param {Parameters<typeof NavigationMenuTrigger>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
147
+ * @return {ReturnType<typeof NavigationMenuTrigger>} 组件渲染结果;类型见返回值契约。
148
+ * @example
149
+ * ```tsx
150
+ * import { NavigationMenu, NavigationMenuTrigger } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
151
+ * <NavigationMenu><NavigationMenuTrigger /></NavigationMenu>
152
+ * ```
153
+ */
154
+ function NavigationMenuTrigger({
155
+ className,
156
+ children,
157
+ value,
158
+ render,
159
+ onClick,
160
+ ...props
161
+ }: NavigationMenuTriggerProps) {
162
+ const { activeItem, setActiveItem } = React.useContext(NavigationMenuContext)
163
+ const item = React.useContext(NavigationMenuItemContext)
164
+ const resolvedValue = value ?? item?.value ?? null
165
+ const isOpen = resolvedValue !== null && activeItem === resolvedValue
166
+ const handleClick = (event: NavigationMenuTriggerClickEvent) => {
167
+ onClick?.(event)
168
+ setActiveItem(isOpen ? null : resolvedValue)
169
+ }
170
+
171
+ const triggerProps: NavigationMenuTriggerRenderProps = {
172
+ "data-slot": "navigation-menu-trigger",
173
+ "data-state": isOpen ? "open" : "closed",
174
+ onClick: handleClick,
175
+ ...props,
176
+ }
177
+
178
+ if (render) {
179
+ if (typeof render === "function") {
180
+ return <>{render(triggerProps)}</>
181
+ }
182
+
183
+ if (React.isValidElement(render)) {
184
+ const element = render as React.ReactElement<{
185
+ onClick?: ViewProps["onClick"]
186
+ }>
187
+
188
+ return React.cloneElement(element, {
189
+ ...triggerProps,
190
+ onClick: (event: NavigationMenuTriggerClickEvent) => {
191
+ element.props.onClick?.(event)
192
+ handleClick(event)
193
+ },
194
+ })
195
+ }
196
+ }
197
+
198
+ return (
199
+ <View
200
+ {...triggerProps}
201
+ className={cn(
202
+ navigationMenuTriggerStyle(),
203
+ "group",
204
+ isOpen && "bg-muted/50",
205
+ className
206
+ )}
207
+ >
208
+ {children}{" "}
209
+ <ChevronDown
210
+ className={cn(
211
+ "relative top-px ml-1 size-3 transition duration-300",
212
+ isOpen && "rotate-180"
213
+ )}
214
+ />
215
+ </View>
216
+ )
217
+ }
218
+
219
+ /**
220
+ * @desc 导航菜单内容容器。
221
+ * @param {Parameters<typeof NavigationMenuContent>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
222
+ * @return {ReturnType<typeof NavigationMenuContent>} 组件渲染结果;类型见返回值契约。
223
+ * @example
224
+ * ```tsx
225
+ * import { NavigationMenu, NavigationMenuContent } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
226
+ * <NavigationMenu><NavigationMenuContent /></NavigationMenu>
227
+ * ```
228
+ */
229
+ function NavigationMenuContent({
230
+ className,
231
+ value,
232
+ children,
233
+ ...props
234
+ }: ViewProps & {
235
+ /** @desc 对应菜单项标识;省略时取最近 NavigationMenuItem 的标识。触发器与内容需使用同一标识,否则无法配对展开。 */
236
+ value?: string }) {
237
+ const item = React.useContext(NavigationMenuItemContext)
238
+ const { activeItem } = React.useContext(NavigationMenuContext)
239
+ const resolvedValue = value ?? item?.value ?? null
240
+ const isOpen = resolvedValue !== null && activeItem === resolvedValue
241
+
242
+ if (!isOpen) return null
243
+
244
+ return (
245
+ <View
246
+ data-slot="navigation-menu-content"
247
+ className={cn(
248
+ "absolute top-full left-0 z-50 w-auto rounded-lg bg-popover p-1 text-popover-foreground shadow ring-1 ring-foreground/10",
249
+ className
250
+ )}
251
+ {...props}
252
+ >
253
+ {children}
254
+ </View>
255
+ )
256
+ }
257
+
258
+ /**
259
+ * @desc 导航菜单定位容器。
260
+ * @param {Parameters<typeof NavigationMenuPositioner>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
261
+ * @return {ReturnType<typeof NavigationMenuPositioner>} 组件渲染结果;类型见返回值契约。
262
+ * @example
263
+ * ```tsx
264
+ * import { NavigationMenu, NavigationMenuPositioner } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
265
+ * <NavigationMenu><NavigationMenuPositioner /></NavigationMenu>
266
+ * ```
267
+ */
268
+ function NavigationMenuPositioner({ children, ...props }: ViewProps) {
269
+ return (
270
+ <View data-slot="navigation-menu-positioner" {...props}>
271
+ {children}
272
+ </View>
273
+ )
274
+ }
275
+
276
+ /**
277
+ * @desc 导航菜单链接。
278
+ * @param {Parameters<typeof NavigationMenuLink>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
279
+ * @return {ReturnType<typeof NavigationMenuLink>} 组件渲染结果;类型见返回值契约。
280
+ * @example
281
+ * ```tsx
282
+ * import { NavigationMenu, NavigationMenuLink } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
283
+ * <NavigationMenu><NavigationMenuLink /></NavigationMenu>
284
+ * ```
285
+ */
286
+ function NavigationMenuLink({
287
+ className,
288
+ active = false,
289
+ ...props
290
+ }: ViewProps & {
291
+ /** @desc 是否高亮当前导航项,默认 false;只控制视觉状态,不自动执行页面跳转。 */
292
+ active?: boolean }) {
293
+ return (
294
+ <View
295
+ data-slot="navigation-menu-link"
296
+ className={cn(
297
+ "flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
298
+ active && "bg-muted/50 hover:bg-muted",
299
+ className
300
+ )}
301
+ {...props}
302
+ />
303
+ )
304
+ }
305
+
306
+ /**
307
+ * @desc 导航菜单位置或状态指示器。
308
+ * @param {Parameters<typeof NavigationMenuIndicator>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
309
+ * @return {ReturnType<typeof NavigationMenuIndicator>} 组件渲染结果;类型见返回值契约。
310
+ * @example
311
+ * ```tsx
312
+ * import { NavigationMenu, NavigationMenuIndicator } from '@open-dy/vibecoding-sdk-taro/ui/navigation-menu'
313
+ * <NavigationMenu><NavigationMenuIndicator /></NavigationMenu>
314
+ * ```
315
+ */
316
+ function NavigationMenuIndicator({ className, ...props }: ViewProps) {
317
+ return (
318
+ <View
319
+ data-slot="navigation-menu-indicator"
320
+ className={cn(
321
+ "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden",
322
+ className
323
+ )}
324
+ {...props}
325
+ >
326
+ <View className="relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" />
327
+ </View>
328
+ )
329
+ }
330
+
331
+ export {
332
+ NavigationMenu,
333
+ NavigationMenuContent,
334
+ NavigationMenuIndicator,
335
+ NavigationMenuItem,
336
+ NavigationMenuLink,
337
+ NavigationMenuList,
338
+ NavigationMenuTrigger,
339
+ navigationMenuTriggerStyle,
340
+ NavigationMenuPositioner,
341
+ }
@@ -0,0 +1,195 @@
1
+ import { View, type ViewProps } from "@tarojs/components"
2
+
3
+ import { cn } from "../lib/utils"
4
+ import { Button } from "./button"
5
+ import { ChevronLeft, ChevronRight, Ellipsis } from "@open-dy/lucide-taro"
6
+
7
+ /**
8
+ * @desc 分页组件。
9
+ * @param {Parameters<typeof Pagination>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
10
+ * @return {ReturnType<typeof Pagination>} 组件渲染结果;类型见返回值契约。
11
+ * @example
12
+ * ```tsx
13
+ * import { Pagination } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
14
+ * <Pagination />
15
+ * ```
16
+ */
17
+ function Pagination({ className, ...props }: ViewProps) {
18
+ return (
19
+ <View
20
+ data-slot="pagination"
21
+ className={cn("mx-auto flex w-full justify-center", className)}
22
+ {...props}
23
+ />
24
+ )
25
+ }
26
+
27
+ /**
28
+ * @desc 分页内容容器。
29
+ * @param {Parameters<typeof PaginationContent>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
30
+ * @return {ReturnType<typeof PaginationContent>} 组件渲染结果;类型见返回值契约。
31
+ * @example
32
+ * ```tsx
33
+ * import { Pagination, PaginationContent } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
34
+ * <Pagination><PaginationContent /></Pagination>
35
+ * ```
36
+ */
37
+ function PaginationContent({
38
+ className,
39
+ ...props
40
+ }: ViewProps) {
41
+ return (
42
+ <View
43
+ data-slot="pagination-content"
44
+ className={cn("flex items-center gap-0.5", className)}
45
+ {...props}
46
+ />
47
+ )
48
+ }
49
+
50
+ /**
51
+ * @desc 分页条目。
52
+ * @param {Parameters<typeof PaginationItem>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
53
+ * @return {ReturnType<typeof PaginationItem>} 组件渲染结果;类型见返回值契约。
54
+ * @example
55
+ * ```tsx
56
+ * import { Pagination, PaginationItem } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
57
+ * <Pagination><PaginationItem /></Pagination>
58
+ * ```
59
+ */
60
+ function PaginationItem({ ...props }: ViewProps) {
61
+ return <View data-slot="pagination-item" {...props} />
62
+ }
63
+
64
+ type PaginationLinkProps = {
65
+ /** @desc 是否为当前页,默认 false;当前页用 outline 按钮,其他页用 ghost。组件不管理页码或自动翻页。 */
66
+ isActive?: boolean
67
+ } & Pick<React.ComponentProps<typeof Button>, "size"> &
68
+ ViewProps
69
+
70
+ /**
71
+ * @desc 分页链接。
72
+ * @param {Parameters<typeof PaginationLink>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
73
+ * @param {Parameters<typeof PaginationLink>[0]["size"]} props.size 页码按钮尺寸,默认 icon(size-8);其他尺寸同 Button.size,isActive 控制其外观。
74
+ * @return {ReturnType<typeof PaginationLink>} 组件渲染结果;类型见返回值契约。
75
+ * @example
76
+ * ```tsx
77
+ * import { Pagination, PaginationLink } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
78
+ * <Pagination><PaginationLink /></Pagination>
79
+ * ```
80
+ */
81
+ function PaginationLink({
82
+ className,
83
+ isActive,
84
+ size = "icon",
85
+ ...props
86
+ }: PaginationLinkProps) {
87
+ return (
88
+ <Button
89
+ variant={isActive ? "outline" : "ghost"}
90
+ size={size}
91
+ data-slot="pagination-link"
92
+ data-active={isActive}
93
+ className={cn(className)}
94
+ {...props}
95
+ />
96
+ )
97
+ }
98
+
99
+ /**
100
+ * @desc 分页上一项按钮。
101
+ * @param {Parameters<typeof PaginationPrevious>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
102
+ * @param {Parameters<typeof PaginationPrevious>[0]["size"]} props.size 导航按钮尺寸,默认 default;可按 Button.size 覆写,文字及图标由组件提供。
103
+ * @return {ReturnType<typeof PaginationPrevious>} 组件渲染结果;类型见返回值契约。
104
+ * @example
105
+ * ```tsx
106
+ * import { Pagination, PaginationPrevious } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
107
+ * <Pagination><PaginationPrevious /></Pagination>
108
+ * ```
109
+ */
110
+ function PaginationPrevious({
111
+ className,
112
+ text = "Previous",
113
+ ...props
114
+ }: React.ComponentProps<typeof PaginationLink> & {
115
+ /** @desc 上一页按钮文字,默认 "Previous";窄屏下文字隐藏,只保留图标,翻页需自行绑定事件。 */
116
+ text?: string }) {
117
+ return (
118
+ <PaginationLink
119
+ size="default"
120
+ className={cn("pl-1.5!", className)}
121
+ {...props}
122
+ >
123
+ <ChevronLeft data-icon="inline-start" />
124
+ <View className="hidden sm:block">{text}</View>
125
+ </PaginationLink>
126
+ )
127
+ }
128
+
129
+ /**
130
+ * @desc 分页下一项按钮。
131
+ * @param {Parameters<typeof PaginationNext>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
132
+ * @param {Parameters<typeof PaginationNext>[0]["size"]} props.size 导航按钮尺寸,默认 default;可按 Button.size 覆写,文字及图标由组件提供。
133
+ * @return {ReturnType<typeof PaginationNext>} 组件渲染结果;类型见返回值契约。
134
+ * @example
135
+ * ```tsx
136
+ * import { Pagination, PaginationNext } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
137
+ * <Pagination><PaginationNext /></Pagination>
138
+ * ```
139
+ */
140
+ function PaginationNext({
141
+ className,
142
+ text = "Next",
143
+ ...props
144
+ }: React.ComponentProps<typeof PaginationLink> & {
145
+ /** @desc 下一页按钮文字,默认 "Next";窄屏下文字隐藏,只保留图标,翻页需自行绑定事件。 */
146
+ text?: string }) {
147
+ return (
148
+ <PaginationLink
149
+ size="default"
150
+ className={cn("pr-1.5!", className)}
151
+ {...props}
152
+ >
153
+ <View className="hidden sm:block">{text}</View>
154
+ <ChevronRight data-icon="inline-end" />
155
+ </PaginationLink>
156
+ )
157
+ }
158
+
159
+ /**
160
+ * @desc 分页省略标记。
161
+ * @param {Parameters<typeof PaginationEllipsis>[0]} props 组件属性;自有字段的用途及默认行为见下表,继承属性另列。
162
+ * @return {ReturnType<typeof PaginationEllipsis>} 组件渲染结果;类型见返回值契约。
163
+ * @example
164
+ * ```tsx
165
+ * import { Pagination, PaginationEllipsis } from '@open-dy/vibecoding-sdk-taro/ui/pagination'
166
+ * <Pagination><PaginationEllipsis /></Pagination>
167
+ * ```
168
+ */
169
+ function PaginationEllipsis({
170
+ className,
171
+ ...props
172
+ }: ViewProps) {
173
+ return (
174
+ <View
175
+ data-slot="pagination-ellipsis"
176
+ className={cn(
177
+ "flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
178
+ className
179
+ )}
180
+ {...props}
181
+ >
182
+ <Ellipsis />
183
+ </View>
184
+ )
185
+ }
186
+
187
+ export {
188
+ Pagination,
189
+ PaginationContent,
190
+ PaginationEllipsis,
191
+ PaginationItem,
192
+ PaginationLink,
193
+ PaginationNext,
194
+ PaginationPrevious,
195
+ }