@open-dy/vibecoding-sdk-taro 0.0.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/adapters/interest-card/eslint/eslint-plugin-custom-navigation.mjs +290 -0
  2. package/dist/adapters/interest-card/eslint/taro.mjs +55 -0
  3. package/dist/adapters/interest-card/runtime/microapp.d.ts +7 -0
  4. package/dist/adapters/interest-card/runtime/microapp.js +8 -0
  5. package/dist/adapters/interest-card/runtime/microapp.js.map +1 -0
  6. package/dist/adapters/interest-card/types/taro.d.ts +28 -0
  7. package/dist/build/config-overrides.d.ts +19 -0
  8. package/dist/build/config-overrides.js +35 -0
  9. package/dist/build/config-overrides.js.map +1 -0
  10. package/dist/build/index.d.ts +1 -0
  11. package/dist/build/index.js +2 -0
  12. package/dist/build/index.js.map +1 -0
  13. package/dist/build/plugins/app-config.cjs +43 -0
  14. package/dist/build/plugins/vite-depend-card.d.ts +29 -0
  15. package/dist/build/plugins/vite-depend-card.js +250 -0
  16. package/dist/build/plugins/vite-depend-card.js.map +1 -0
  17. package/dist/build/plugins/vite-image-asset-import.d.ts +10 -0
  18. package/dist/build/plugins/vite-image-asset-import.js +150 -0
  19. package/dist/build/plugins/vite-image-asset-import.js.map +1 -0
  20. package/dist/build/plugins/vite-inline-json.d.ts +4 -0
  21. package/dist/build/plugins/vite-inline-json.js +129 -0
  22. package/dist/build/plugins/vite-inline-json.js.map +1 -0
  23. package/dist/build/plugins/vite-taro-source-location.d.ts +13 -0
  24. package/dist/build/plugins/vite-taro-source-location.js +159 -0
  25. package/dist/build/plugins/vite-taro-source-location.js.map +1 -0
  26. package/dist/build/taro.d.ts +53 -0
  27. package/dist/build/taro.js +729 -0
  28. package/dist/build/taro.js.map +1 -0
  29. package/dist/components/miniapp-open-card.d.ts +19 -0
  30. package/dist/components/miniapp-open-card.js +3 -0
  31. package/dist/components/miniapp-open-card.js.map +1 -0
  32. package/dist/eslint/eslint-plugin-microapp-pages.mjs +659 -0
  33. package/dist/eslint/server.mjs +69 -0
  34. package/dist/eslint/taro.mjs +553 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.js +3 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/internal/runtime/douyin-open-button.d.ts +29 -0
  39. package/dist/internal/runtime/iframe-auth/identity.d.ts +20 -0
  40. package/dist/internal/runtime/iframe-auth/identity.js +156 -0
  41. package/dist/internal/runtime/iframe-auth/identity.js.map +1 -0
  42. package/dist/internal/runtime/iframe-auth/index.d.ts +2 -0
  43. package/dist/internal/runtime/iframe-auth/index.js +3 -0
  44. package/dist/internal/runtime/iframe-auth/index.js.map +1 -0
  45. package/dist/internal/runtime/iframe-auth/sync.d.ts +2 -0
  46. package/dist/internal/runtime/iframe-auth/sync.js +23 -0
  47. package/dist/internal/runtime/iframe-auth/sync.js.map +1 -0
  48. package/dist/lib/measure.d.ts +21 -0
  49. package/dist/lib/measure.js +101 -0
  50. package/dist/lib/measure.js.map +1 -0
  51. package/dist/lib/platform.d.ts +2 -0
  52. package/dist/lib/platform.js +11 -0
  53. package/dist/lib/platform.js.map +1 -0
  54. package/dist/lib/utils.d.ts +2 -0
  55. package/dist/lib/utils.js +6 -0
  56. package/dist/lib/utils.js.map +1 -0
  57. package/dist/reference/llms.txt +36 -0
  58. package/dist/reference/sdk-api/build/taro/BuildContext.md +53 -0
  59. package/dist/reference/sdk-api/build/taro/CreateMicroappTaroConfigOptions.md +62 -0
  60. package/dist/reference/sdk-api/build/taro/createMicroappTaroConfig.md +66 -0
  61. package/dist/reference/sdk-api/build/taro/index.md +11 -0
  62. package/dist/reference/sdk-api/runtime/CreateMicroappClientOptions.md +47 -0
  63. package/dist/reference/sdk-api/runtime/createMicroappClient.md +378 -0
  64. package/dist/reference/sdk-api/runtime/index.md +10 -0
  65. package/dist/reference/sdk-api.json +1534 -0
  66. package/dist/reference/sdk-api.md +43 -0
  67. package/dist/runtime/client.d.ts +63 -0
  68. package/dist/runtime/client.js +194 -0
  69. package/dist/runtime/client.js.map +1 -0
  70. package/dist/runtime/closed-domain-request-header.d.ts +4 -0
  71. package/dist/runtime/closed-domain-request-header.js +8 -0
  72. package/dist/runtime/closed-domain-request-header.js.map +1 -0
  73. package/dist/runtime/default-client.d.ts +57 -0
  74. package/dist/runtime/default-client.js +21 -0
  75. package/dist/runtime/default-client.js.map +1 -0
  76. package/dist/runtime/default-iframe-auth.d.ts +8 -0
  77. package/dist/runtime/default-iframe-auth.js +10 -0
  78. package/dist/runtime/default-iframe-auth.js.map +1 -0
  79. package/dist/runtime/douyin-container-request.d.ts +11 -0
  80. package/dist/runtime/douyin-container-request.js +301 -0
  81. package/dist/runtime/douyin-container-request.js.map +1 -0
  82. package/dist/runtime/douyin-login-request.d.ts +32 -0
  83. package/dist/runtime/douyin-login-request.js +400 -0
  84. package/dist/runtime/douyin-login-request.js.map +1 -0
  85. package/dist/runtime/globals.d.ts +342 -0
  86. package/dist/runtime/index.d.ts +4 -0
  87. package/dist/runtime/index.js +4 -0
  88. package/dist/runtime/index.js.map +1 -0
  89. package/dist/runtime/network-url.d.ts +3 -0
  90. package/dist/runtime/network-url.js +53 -0
  91. package/dist/runtime/network-url.js.map +1 -0
  92. package/dist/types/taro.d.ts +1 -0
  93. package/dist/ui/accordion.d.ts +17 -0
  94. package/dist/ui/accordion.js +60 -0
  95. package/dist/ui/accordion.js.map +1 -0
  96. package/dist/ui/alert-dialog.d.ts +33 -0
  97. package/dist/ui/alert-dialog.js +96 -0
  98. package/dist/ui/alert-dialog.js.map +1 -0
  99. package/dist/ui/alert.d.ts +11 -0
  100. package/dist/ui/alert.js +49 -0
  101. package/dist/ui/alert.js.map +1 -0
  102. package/dist/ui/aspect-ratio.d.ts +5 -0
  103. package/dist/ui/aspect-ratio.js +10 -0
  104. package/dist/ui/aspect-ratio.js.map +1 -0
  105. package/dist/ui/avatar.d.ts +14 -0
  106. package/dist/ui/avatar.js +50 -0
  107. package/dist/ui/avatar.js.map +1 -0
  108. package/dist/ui/badge.d.ts +8 -0
  109. package/dist/ui/badge.js +27 -0
  110. package/dist/ui/badge.js.map +1 -0
  111. package/dist/ui/button-group.d.ts +14 -0
  112. package/dist/ui/button-group.js +52 -0
  113. package/dist/ui/button-group.js.map +1 -0
  114. package/dist/ui/button.d.ts +30 -0
  115. package/dist/ui/button.js +75 -0
  116. package/dist/ui/button.js.map +1 -0
  117. package/dist/ui/calendar.d.ts +29 -0
  118. package/dist/ui/calendar.js +141 -0
  119. package/dist/ui/calendar.js.map +1 -0
  120. package/dist/ui/card.d.ts +12 -0
  121. package/dist/ui/card.js +38 -0
  122. package/dist/ui/card.js.map +1 -0
  123. package/dist/ui/carousel.d.ts +30 -0
  124. package/dist/ui/carousel.js +60 -0
  125. package/dist/ui/carousel.js.map +1 -0
  126. package/dist/ui/checkbox.d.ts +9 -0
  127. package/dist/ui/checkbox.js +20 -0
  128. package/dist/ui/checkbox.js.map +1 -0
  129. package/dist/ui/collapsible.d.ts +18 -0
  130. package/dist/ui/collapsible.js +53 -0
  131. package/dist/ui/collapsible.js.map +1 -0
  132. package/dist/ui/combobox.d.ts +55 -0
  133. package/dist/ui/combobox.js +165 -0
  134. package/dist/ui/combobox.js.map +1 -0
  135. package/dist/ui/dialog.d.ts +26 -0
  136. package/dist/ui/dialog.js +54 -0
  137. package/dist/ui/dialog.js.map +1 -0
  138. package/dist/ui/drawer.d.ts +21 -0
  139. package/dist/ui/drawer.js +57 -0
  140. package/dist/ui/drawer.js.map +1 -0
  141. package/dist/ui/dropdown-menu.d.ts +52 -0
  142. package/dist/ui/dropdown-menu.js +112 -0
  143. package/dist/ui/dropdown-menu.js.map +1 -0
  144. package/dist/ui/empty.d.ts +12 -0
  145. package/dist/ui/empty.js +35 -0
  146. package/dist/ui/empty.js.map +1 -0
  147. package/dist/ui/field.d.ts +26 -0
  148. package/dist/ui/field.js +117 -0
  149. package/dist/ui/field.js.map +1 -0
  150. package/dist/ui/helpers.d.ts +6 -0
  151. package/dist/ui/helpers.js +23 -0
  152. package/dist/ui/helpers.js.map +1 -0
  153. package/dist/ui/index.d.ts +47 -0
  154. package/dist/ui/index.js +48 -0
  155. package/dist/ui/index.js.map +1 -0
  156. package/dist/ui/input-group.d.ts +17 -0
  157. package/dist/ui/input-group.js +122 -0
  158. package/dist/ui/input-group.js.map +1 -0
  159. package/dist/ui/input-otp.d.ts +18 -0
  160. package/dist/ui/input-otp.js +48 -0
  161. package/dist/ui/input-otp.js.map +1 -0
  162. package/dist/ui/input.d.ts +5 -0
  163. package/dist/ui/input.js +8 -0
  164. package/dist/ui/input.js.map +1 -0
  165. package/dist/ui/item.d.ts +22 -0
  166. package/dist/ui/item.js +83 -0
  167. package/dist/ui/item.js.map +1 -0
  168. package/dist/ui/label.d.ts +3 -0
  169. package/dist/ui/label.js +8 -0
  170. package/dist/ui/label.js.map +1 -0
  171. package/dist/ui/menubar.d.ts +65 -0
  172. package/dist/ui/menubar.js +244 -0
  173. package/dist/ui/menubar.js.map +1 -0
  174. package/dist/ui/navigation-menu.d.ts +27 -0
  175. package/dist/ui/navigation-menu.js +72 -0
  176. package/dist/ui/navigation-menu.js.map +1 -0
  177. package/dist/ui/pagination.d.ts +17 -0
  178. package/dist/ui/pagination.js +28 -0
  179. package/dist/ui/pagination.js.map +1 -0
  180. package/dist/ui/popover.d.ts +27 -0
  181. package/dist/ui/popover.js +139 -0
  182. package/dist/ui/popover.js.map +1 -0
  183. package/dist/ui/portal.d.ts +5 -0
  184. package/dist/ui/portal.js +18 -0
  185. package/dist/ui/portal.js.map +1 -0
  186. package/dist/ui/progress.d.ts +45 -0
  187. package/dist/ui/progress.js +67 -0
  188. package/dist/ui/progress.js.map +1 -0
  189. package/dist/ui/radio-group.d.ts +12 -0
  190. package/dist/ui/radio-group.js +29 -0
  191. package/dist/ui/radio-group.js.map +1 -0
  192. package/dist/ui/resizable.d.ts +20 -0
  193. package/dist/ui/resizable.js +244 -0
  194. package/dist/ui/resizable.js.map +1 -0
  195. package/dist/ui/scroll-area.d.ts +8 -0
  196. package/dist/ui/scroll-area.js +34 -0
  197. package/dist/ui/scroll-area.js.map +1 -0
  198. package/dist/ui/select.d.ts +35 -0
  199. package/dist/ui/select.js +136 -0
  200. package/dist/ui/select.js.map +1 -0
  201. package/dist/ui/separator.d.ts +5 -0
  202. package/dist/ui/separator.js +8 -0
  203. package/dist/ui/separator.js.map +1 -0
  204. package/dist/ui/sheet.d.ts +26 -0
  205. package/dist/ui/sheet.js +67 -0
  206. package/dist/ui/sheet.js.map +1 -0
  207. package/dist/ui/skeleton.d.ts +3 -0
  208. package/dist/ui/skeleton.js +8 -0
  209. package/dist/ui/skeleton.js.map +1 -0
  210. package/dist/ui/slider.d.ts +12 -0
  211. package/dist/ui/slider.js +94 -0
  212. package/dist/ui/slider.js.map +1 -0
  213. package/dist/ui/sonner.d.ts +6 -0
  214. package/dist/ui/sonner.js +13 -0
  215. package/dist/ui/sonner.js.map +1 -0
  216. package/dist/ui/spinner.d.ts +3 -0
  217. package/dist/ui/spinner.js +9 -0
  218. package/dist/ui/spinner.js.map +1 -0
  219. package/dist/ui/switch.d.ts +11 -0
  220. package/dist/ui/switch.js +33 -0
  221. package/dist/ui/switch.js.map +1 -0
  222. package/dist/ui/table.d.ts +13 -0
  223. package/dist/ui/table.js +54 -0
  224. package/dist/ui/table.js.map +1 -0
  225. package/dist/ui/tabs.d.ts +23 -0
  226. package/dist/ui/tabs.js +61 -0
  227. package/dist/ui/tabs.js.map +1 -0
  228. package/dist/ui/tailwind.css +2 -0
  229. package/dist/ui/textarea.d.ts +3 -0
  230. package/dist/ui/textarea.js +13 -0
  231. package/dist/ui/textarea.js.map +1 -0
  232. package/dist/ui/theme.css +234 -0
  233. package/dist/ui/toggle-group.d.ts +19 -0
  234. package/dist/ui/toggle-group.js +73 -0
  235. package/dist/ui/toggle-group.js.map +1 -0
  236. package/dist/ui/toggle.d.ts +14 -0
  237. package/dist/ui/toggle.js +41 -0
  238. package/dist/ui/toggle.js.map +1 -0
  239. package/package.json +97 -0
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { View } from "@tarojs/components";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../lib/utils.js";
6
+ import { collectDataIconState } from "./helpers.js";
7
+ const TabsContext = React.createContext({});
8
+ const TabsListContext = React.createContext({});
9
+ function Tabs({ className, orientation = "horizontal", value: valueProp, defaultValue, onValueChange, children, ...props }) {
10
+ const [internal, setInternal] = React.useState(defaultValue ?? "");
11
+ const controlled = valueProp !== undefined;
12
+ const value = controlled ? valueProp : internal;
13
+ return (_jsx(TabsContext.Provider, { value: {
14
+ value,
15
+ onValueChange: (v) => {
16
+ if (!controlled)
17
+ setInternal(v);
18
+ onValueChange?.(v);
19
+ },
20
+ orientation,
21
+ }, children: _jsx(View, { "data-slot": "tabs", className: cn("group/tabs flex gap-2", orientation === "horizontal" && "flex-col", className), ...props, children: children }) }));
22
+ }
23
+ const tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center p-1 text-muted-foreground", {
24
+ variants: {
25
+ variant: {
26
+ default: "rounded-lg bg-muted",
27
+ line: "gap-1 rounded-none bg-transparent",
28
+ },
29
+ },
30
+ defaultVariants: {
31
+ variant: "default",
32
+ },
33
+ });
34
+ function TabsList({ className, variant = "default", ...props }) {
35
+ const tabs = React.useContext(TabsContext);
36
+ return (_jsx(TabsListContext.Provider, { value: { variant }, children: _jsx(View, { "data-slot": "tabs-list", className: cn(tabsListVariants({ variant }), tabs.orientation === "horizontal" && "h-8", tabs.orientation === "vertical" && "h-fit flex-col", className), ...props }) }));
37
+ }
38
+ function TabsTrigger({ className, value, children, disabled, ...props }) {
39
+ const ctx = React.useContext(TabsContext);
40
+ const list = React.useContext(TabsListContext);
41
+ const isActive = ctx.value === value;
42
+ const { hasInlineStartIcon, hasInlineEndIcon } = React.useMemo(() => collectDataIconState(children), [children]);
43
+ return (_jsx(View, { "data-slot": "tabs-trigger", "aria-disabled": disabled || undefined, className: cn("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", ctx.orientation === "vertical" && "w-full justify-start", list.variant === "line" && "bg-transparent", hasInlineStartIcon && "pl-1", hasInlineEndIcon && "pr-1", isActive &&
44
+ "bg-background text-foreground dark:border-input dark:bg-input/30 dark:text-foreground", list.variant === "default" && isActive && "shadow-sm", list.variant === "line" &&
45
+ isActive &&
46
+ "bg-transparent shadow-none dark:border-transparent dark:bg-transparent", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity", ctx.orientation === "horizontal" &&
47
+ "after:inset-x-0 after:bottom-[-5px] after:h-0.5", ctx.orientation === "vertical" &&
48
+ "after:inset-y-0 after:-right-1 after:w-0.5", list.variant === "line" && isActive && "after:opacity-100", className), onClick: () => {
49
+ if (disabled)
50
+ return;
51
+ ctx.onValueChange?.(value);
52
+ }, ...props, children: children }));
53
+ }
54
+ function TabsContent({ className, value, children, ...props }) {
55
+ const ctx = React.useContext(TabsContext);
56
+ if (ctx.value !== value)
57
+ return null;
58
+ return (_jsx(View, { "data-slot": "tabs-content", className: cn("flex-1 text-sm outline-none", className), ...props, children: children }));
59
+ }
60
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
61
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ @import "./theme.css";
2
+ @source "./";
@@ -0,0 +1,3 @@
1
+ import { Textarea as TaroTextarea } from "@tarojs/components";
2
+ declare function Textarea({ className, style, ...props }: React.ComponentPropsWithoutRef<typeof TaroTextarea>): import("react").JSX.Element;
3
+ export { Textarea };
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Textarea as TaroTextarea, View } from "@tarojs/components";
3
+ import { cn } from "../lib/utils.js";
4
+ function Textarea({ className, style, ...props }) {
5
+ const disabled = !!props.disabled;
6
+ const ariaInvalid = props["aria-invalid"];
7
+ const invalid = ariaInvalid !== undefined &&
8
+ ariaInvalid !== false &&
9
+ ariaInvalid !== "false";
10
+ return (_jsx(View, { "data-slot": "textarea", style: style, className: cn("flex h-20 field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 md:text-sm dark:bg-input/30", disabled && "cursor-not-allowed bg-input/50 opacity-50 dark:bg-input/80", invalid && "border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40", className), children: _jsx(TaroTextarea, { className: "w-full flex-1 !h-full bg-transparent text-sm outline-none resize-none", ...props }) }));
11
+ }
12
+ export { Textarea };
13
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/ui/textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EAC4C;IACpD,MAAM,QAAQ,GAAG,CAAC,CAAE,KAAa,CAAC,QAAQ,CAAA;IAC1C,MAAM,WAAW,GAAI,KAAa,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,OAAO,GACX,WAAW,KAAK,SAAS;QACzB,WAAW,KAAK,KAAK;QACrB,WAAW,KAAK,OAAO,CAAA;IAEzB,OAAO,CACL,KAAC,IAAI,iBACO,UAAU,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,wRAAwR,EACxR,QAAQ,IAAI,4DAA4D,EACxE,OAAO,IAAI,mGAAmG,EAC9G,SAAS,CACV,YAED,KAAC,YAAY,IACX,SAAS,EAAC,uEAAuE,KAC7E,KAAK,GACT,GACG,CACR,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,234 @@
1
+ /* stylelint-disable selector-type-no-unknown */
2
+ /* stylelint-disable at-rule-no-unknown */
3
+ /* stylelint-disable number-max-precision */
4
+
5
+ :root,
6
+ page,
7
+ root-portal {
8
+ --background: lab(100% 0 0);
9
+ --foreground: lab(2.75381% 0 0);
10
+ --card: lab(100% 0 0);
11
+ --card-foreground: lab(2.75381% 0 0);
12
+ --popover: lab(100% 0 0);
13
+ --popover-foreground: lab(2.75381% 0 0);
14
+ --primary: #9333ea;
15
+ --primary-foreground: #ffffff;
16
+ --secondary: lab(96.52% -0.0000298023 0.0000119209);
17
+ --secondary-foreground: lab(7.78201% -0.0000149012 0);
18
+ --muted: lab(96.52% -0.0000298023 0.0000119209);
19
+ --muted-foreground: lab(48.496% 0 0);
20
+ --accent: lab(96.52% -0.0000298023 0.0000119209);
21
+ --accent-foreground: lab(7.78201% -0.0000149012 0);
22
+ --destructive: lab(48.4493% 77.4328 61.5452);
23
+ --destructive-foreground: lab(96.4152% 3.22586 1.14673);
24
+ --border: lab(90.952% 0 -0.0000119209);
25
+ --input: lab(90.952% 0 -0.0000119209);
26
+ --ring: lab(66.128% -0.0000298023 0.0000119209);
27
+ --sidebar: lab(98.26% 0 0);
28
+ --sidebar-foreground: lab(2.75381% 0 0);
29
+ --sidebar-primary: lab(7.78201% -0.0000149012 0);
30
+ --sidebar-primary-foreground: lab(98.26% 0 0);
31
+ --sidebar-accent: lab(96.52% -0.0000298023 0.0000119209);
32
+ --sidebar-accent-foreground: lab(7.78201% -0.0000149012 0);
33
+ --sidebar-border: lab(90.952% 0 -0.0000119209);
34
+ --sidebar-ring: lab(66.128% -0.0000298023 0.0000119209);
35
+ --surface: lab(97.68% -0.0000298023 0.0000119209);
36
+ --code: var(--surface);
37
+ --code-highlight: lab(95.36% 0 0);
38
+ --code-number: lab(48.96% 0 0);
39
+ --selection: lab(2.75381% 0 0);
40
+ --selection-foreground: lab(100% 0 0);
41
+ --chart-1: #6366f1;
42
+ --chart-2: #22c55e;
43
+ --chart-3: #eab308;
44
+ --chart-4: #a855f7;
45
+ --chart-5: #ec4899;
46
+ --tw-shadow: 0 0 #0000;
47
+ --tw-shadow-color: initial;
48
+ --tw-shadow-alpha: 100%;
49
+ --tw-inset-shadow: 0 0 #0000;
50
+ --tw-inset-shadow-color: initial;
51
+ --tw-inset-shadow-alpha: 100%;
52
+ --tw-ring-color: initial;
53
+ --tw-ring-shadow: 0 0 #0000;
54
+ --tw-inset-ring-color: initial;
55
+ --tw-inset-ring-shadow: 0 0 #0000;
56
+ --tw-ring-inset: initial;
57
+ --tw-ring-offset-width: 0px;
58
+ --tw-ring-offset-color: #fff;
59
+ --tw-ring-offset-shadow: 0 0 #0000;
60
+ }
61
+
62
+ .dark {
63
+ --background: lab(2.75381% 0 0);
64
+ --foreground: lab(98.26% 0 0);
65
+ --card: lab(7.78201% -0.0000149012 0);
66
+ --card-foreground: lab(98.26% 0 0);
67
+ --popover: lab(7.78201% -0.0000149012 0);
68
+ --popover-foreground: lab(98.26% 0 0);
69
+ --primary: lab(90.952% 0 -0.0000119209);
70
+ --primary-foreground: lab(7.78201% -0.0000149012 0);
71
+ --secondary: lab(15.204% 0 -0.00000596046);
72
+ --secondary-foreground: lab(98.26% 0 0);
73
+ --muted: lab(15.204% 0 -0.00000596046);
74
+ --muted-foreground: lab(66.128% -0.0000298023 0.0000119209);
75
+ --accent: lab(27.036% 0 0);
76
+ --accent-foreground: lab(98.26% 0 0);
77
+ --destructive: lab(63.7053% 60.745 31.3109);
78
+ --destructive-foreground: lab(49.0747% 69.3434 49.6251);
79
+ --border: lab(100% 0 0 / 10%);
80
+ --input: lab(100% 0 0 / 15%);
81
+ --ring: lab(48.496% 0 0);
82
+ --sidebar: lab(7.78201% -0.0000149012 0);
83
+ --sidebar-foreground: lab(98.26% 0 0);
84
+ --sidebar-primary: lab(36.9089% 35.0961 -85.6872);
85
+ --sidebar-primary-foreground: lab(98.26% 0 0);
86
+ --sidebar-accent: lab(15.204% 0 -0.00000596046);
87
+ --sidebar-accent-foreground: lab(98.26% 0 0);
88
+ --sidebar-border: lab(100% 0 0 / 10%);
89
+ --sidebar-ring: lab(34.924% 0 0);
90
+ --surface: lab(7.22637% -0.0000149012 0);
91
+ --surface-foreground: lab(66.128% -0.0000298023 0.0000119209);
92
+ --code: var(--surface);
93
+ --code-highlight: lab(15.32% 0 0);
94
+ --code-number: lab(67.52% -0.0000298023 0);
95
+ --selection: lab(90.952% 0 -0.0000119209);
96
+ --selection-foreground: lab(7.78201% -0.0000149012 0);
97
+ --chart-1: #818cf8;
98
+ --chart-2: #4ade80;
99
+ --chart-3: #facc15;
100
+ --chart-4: #c084fc;
101
+ --chart-5: #f472b6;
102
+ }
103
+
104
+ @custom-variant dark (&:is(.dark *));
105
+
106
+ @theme inline {
107
+ --color-sidebar: var(--sidebar);
108
+ --color-sidebar-foreground: var(--sidebar-foreground);
109
+ --color-sidebar-primary: var(--sidebar-primary);
110
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
111
+ --color-sidebar-accent: var(--sidebar-accent);
112
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
113
+ --color-sidebar-border: var(--sidebar-border);
114
+ --color-sidebar-ring: var(--sidebar-ring);
115
+ --color-chart-5: var(--chart-5);
116
+ --color-chart-4: var(--chart-4);
117
+ --color-chart-3: var(--chart-3);
118
+ --color-chart-2: var(--chart-2);
119
+ --color-chart-1: var(--chart-1);
120
+ --color-ring: var(--ring);
121
+ --color-input: var(--input);
122
+ --color-border: var(--border);
123
+ --color-popover-foreground: var(--popover-foreground);
124
+ --color-popover: var(--popover);
125
+ --color-card-foreground: var(--card-foreground);
126
+ --color-card: var(--card);
127
+ --color-muted-foreground: var(--muted-foreground);
128
+ --color-muted: var(--muted);
129
+ --color-destructive-foreground: var(--destructive-foreground);
130
+ --color-destructive: var(--destructive);
131
+ --color-accent-foreground: var(--accent-foreground);
132
+ --color-accent: var(--accent);
133
+ --color-secondary-foreground: var(--secondary-foreground);
134
+ --color-secondary: var(--secondary);
135
+ --color-primary-foreground: var(--primary-foreground);
136
+ --color-primary: var(--primary);
137
+ --color-foreground: var(--foreground);
138
+ --color-background: var(--background);
139
+ --color-selection: var(--selection);
140
+ --color-selection-foreground: var(--selection-foreground);
141
+ --color-code: var(--code);
142
+ --radius-full: 9999px;
143
+ }
144
+
145
+ ::selection {
146
+ background-color: var(--selection);
147
+ color: var(--selection-foreground);
148
+ }
149
+
150
+ /* ============================================================================
151
+ H5 端 Taro Image / 图标居中修复
152
+ 根因:weapp-tailwindcss 会裁掉 taro-image-core 元素选择器,只能用类选择器。
153
+ img 渲染为 position:absolute(Taro H5 内部行为),父容器 taro-image-core 为
154
+ position:relative。使用 top/left + translate 实现无论父容器 display 类型如何
155
+ 都能精确居中。(小程序端不受影响)
156
+ ============================================================================ */
157
+
158
+ /* aspectFit 模式(@open-dy/lucide-taro 图标默认使用此模式)
159
+ 用 img.taro-img__mode-aspectfit(specificity 0,1,1)覆盖 Taro 内置 CSS
160
+ (specificity 0,1,0)的 top:50% + transform:translate(-50%,-50%)。
161
+ inset:0 + margin:auto 填满 taro-image-core,transform:none 清除残留 translate。
162
+ 彻底消除:
163
+ - text-center 父容器导致的图标偏右问题
164
+ - inline-block baseline 导致的垂直偏移 */
165
+ img.taro-img__mode-aspectfit {
166
+ position: absolute;
167
+ inset: 0;
168
+ margin: auto;
169
+ object-fit: contain;
170
+ transform: none;
171
+ }
172
+
173
+ /* aspectFill 模式:填满容器,保持比例裁剪 */
174
+ .taro-img__mode-aspectfill {
175
+ display: block;
176
+ width: 100%;
177
+ height: 100%;
178
+ object-fit: cover;
179
+ }
180
+
181
+ /* scaleToFill 模式 */
182
+ .taro-img__mode-scaletofill {
183
+ display: block;
184
+ width: 100%;
185
+ height: 100%;
186
+ object-fit: fill;
187
+ }
188
+
189
+ /* widthFix 模式 */
190
+ .taro-img__mode-widthfix {
191
+ display: block;
192
+ width: 100%;
193
+ height: auto;
194
+ }
195
+
196
+ /* ============================================================================
197
+ Canvas 小游戏一屏布局工具
198
+ - 页面根容器禁止出现纵向滚动条,所有 HUD/按钮/画布都在一屏内完成。
199
+ - 如果页面处在 Taro tabBar 面板内,使用父容器已计算好的 h-full。
200
+ - overlay 默认透传事件,只让按钮/弹窗等交互区域显式接管事件。
201
+ ============================================================================ */
202
+ .game-one-screen {
203
+ display: flex;
204
+ flex-direction: column;
205
+ height: 100vh;
206
+ max-height: 100vh;
207
+ overflow: hidden;
208
+ }
209
+
210
+ .taro-tabbar__panel .game-one-screen {
211
+ height: 100%;
212
+ max-height: 100%;
213
+ }
214
+
215
+ .game-stage {
216
+ position: relative;
217
+ flex: 1;
218
+ min-height: 0;
219
+ overflow: hidden;
220
+ }
221
+
222
+ .game-canvas-fill {
223
+ display: block;
224
+ width: 100%;
225
+ height: 100%;
226
+ }
227
+
228
+ .game-overlay-pass-through {
229
+ pointer-events: none;
230
+ }
231
+
232
+ .game-overlay-interactive {
233
+ pointer-events: auto;
234
+ }
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { type ViewProps } from "@tarojs/components";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ import { toggleVariants } from "./toggle.js";
5
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, type, multiple, disabled, value: valueProp, defaultValue, onValueChange, children, ...props }: ViewProps & VariantProps<typeof toggleVariants> & {
6
+ spacing?: number;
7
+ orientation?: "horizontal" | "vertical";
8
+ type?: "single" | "multiple";
9
+ multiple?: boolean;
10
+ disabled?: boolean;
11
+ value?: string | string[];
12
+ defaultValue?: string | string[];
13
+ onValueChange?: (value: string | string[]) => void;
14
+ }): React.JSX.Element;
15
+ declare function ToggleGroupItem({ className, children, value, variant, size, disabled, ...props }: ViewProps & VariantProps<typeof toggleVariants> & {
16
+ value: string;
17
+ disabled?: boolean;
18
+ }): React.JSX.Element;
19
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { View } from "@tarojs/components";
4
+ import { cn } from "../lib/utils.js";
5
+ import { collectDataIconState } from "./helpers.js";
6
+ import { toggleVariants } from "./toggle.js";
7
+ const ToggleGroupContext = React.createContext({
8
+ size: "default",
9
+ variant: "default",
10
+ spacing: 0,
11
+ orientation: "horizontal",
12
+ disabled: false,
13
+ value: [],
14
+ toggle: () => { },
15
+ type: "single",
16
+ });
17
+ function ToggleGroup({ className, variant, size, spacing = 0, orientation = "horizontal", type = "single", multiple = false, disabled = false, value: valueProp, defaultValue, onValueChange, children, ...props }) {
18
+ const normalizeValue = React.useCallback((nextValue) => {
19
+ if (nextValue === undefined)
20
+ return [];
21
+ return Array.isArray(nextValue) ? nextValue : nextValue ? [nextValue] : [];
22
+ }, []);
23
+ const [internal, setInternal] = React.useState(() => normalizeValue(defaultValue));
24
+ const controlled = valueProp !== undefined;
25
+ const value = controlled ? normalizeValue(valueProp) : internal;
26
+ const isMultiple = multiple || type === "multiple";
27
+ const resolvedType = isMultiple ? "multiple" : "single";
28
+ const toggle = React.useCallback((itemValue) => {
29
+ if (disabled)
30
+ return;
31
+ let next;
32
+ if (isMultiple) {
33
+ next = value.includes(itemValue)
34
+ ? value.filter((v) => v !== itemValue)
35
+ : [...value, itemValue];
36
+ }
37
+ else {
38
+ next = value.includes(itemValue) ? [] : [itemValue];
39
+ }
40
+ if (!controlled)
41
+ setInternal(next);
42
+ onValueChange?.(isMultiple ? next : next[0] ?? "");
43
+ }, [value, isMultiple, controlled, onValueChange, disabled]);
44
+ return (_jsx(View, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, "data-orientation": orientation, "aria-disabled": disabled, "data-disabled": disabled ? "" : undefined, style: { "--gap": String(spacing) }, className: cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg", size === "sm" && "rounded-[min(var(--radius-md),10px)]", orientation === "vertical" && "flex-col items-stretch", className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing, orientation, disabled, value, toggle, type: resolvedType }, children: children }) }));
45
+ }
46
+ function ToggleGroupItem({ className, children, value, variant = "default", size = "default", disabled = false, ...props }) {
47
+ const context = React.useContext(ToggleGroupContext);
48
+ const pressed = context.value.includes(value);
49
+ const isDisabled = context.disabled || disabled;
50
+ const { onClick, ...restProps } = props;
51
+ const resolvedVariant = context.variant || variant;
52
+ const resolvedSize = context.size || size;
53
+ const isConnected = (context.spacing ?? 0) === 0;
54
+ const isHorizontal = context.orientation !== "vertical";
55
+ const { hasInlineStartIcon, hasInlineEndIcon } = React.useMemo(() => collectDataIconState(children), [children]);
56
+ return (_jsx(View, { "data-slot": "toggle-group-item", "data-variant": context.variant || variant, "data-size": context.size || size, "data-spacing": context.spacing, "aria-pressed": pressed, "aria-disabled": isDisabled, "data-state": pressed ? "on" : "off", "data-disabled": isDisabled ? "" : undefined, className: cn("shrink-0 focus:z-10 focus-visible:z-10", isConnected && "rounded-none px-2", isConnected && hasInlineStartIcon && "pl-1.5", isConnected && hasInlineEndIcon && "pr-1.5", isConnected && isHorizontal && "first:rounded-l-lg last:rounded-r-lg", isConnected && !isHorizontal && "first:rounded-t-lg last:rounded-b-lg", isConnected &&
57
+ isHorizontal &&
58
+ resolvedVariant === "outline" &&
59
+ "border-l-0 first:border-l", isConnected &&
60
+ !isHorizontal &&
61
+ resolvedVariant === "outline" &&
62
+ "border-t-0 first:border-t", toggleVariants({
63
+ variant: resolvedVariant,
64
+ size: resolvedSize,
65
+ }), pressed && "bg-muted", isDisabled && "pointer-events-none opacity-50", className), onClick: (event) => {
66
+ if (isDisabled)
67
+ return;
68
+ context.toggle(value);
69
+ onClick?.(event);
70
+ }, ...restProps, children: children }));
71
+ }
72
+ export { ToggleGroup, ToggleGroupItem };
73
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../../src/ui/toggle-group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { type ViewProps } from "@tarojs/components";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const toggleVariants: (props?: ({
5
+ variant?: "default" | "outline" | null | undefined;
6
+ size?: "default" | "sm" | "lg" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ declare function Toggle({ className, variant, size, pressed: pressedProp, defaultPressed, onPressedChange, disabled, children, ...props }: ViewProps & VariantProps<typeof toggleVariants> & {
9
+ pressed?: boolean;
10
+ defaultPressed?: boolean;
11
+ onPressedChange?: (pressed: boolean) => void;
12
+ disabled?: boolean;
13
+ }): React.JSX.Element;
14
+ export { Toggle, toggleVariants };
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { View } from "@tarojs/components";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../lib/utils.js";
6
+ import { collectDataIconState } from "./helpers.js";
7
+ const toggleVariants = cva("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-transparent",
11
+ outline: "border border-input bg-transparent hover:bg-muted",
12
+ },
13
+ size: {
14
+ default: "h-8 min-w-8 px-2.5",
15
+ sm: "h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] [&_svg:not([class*='size-'])]:size-3.5",
16
+ lg: "h-9 min-w-9 px-2.5",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ variant: "default",
21
+ size: "default",
22
+ },
23
+ });
24
+ function Toggle({ className, variant = "default", size = "default", pressed: pressedProp, defaultPressed, onPressedChange, disabled = false, children, ...props }) {
25
+ const [internalPressed, setInternalPressed] = React.useState(defaultPressed ?? false);
26
+ const isControlled = pressedProp !== undefined;
27
+ const pressed = isControlled ? pressedProp : internalPressed;
28
+ const { onClick, ...restProps } = props;
29
+ const { hasInlineStartIcon, hasInlineEndIcon } = React.useMemo(() => collectDataIconState(children), [children]);
30
+ return (_jsx(View, { "data-slot": "toggle", "aria-pressed": pressed, "aria-disabled": disabled, "data-state": pressed ? "on" : "off", "data-disabled": disabled ? "" : undefined, className: cn(toggleVariants({ variant, size }), pressed && "bg-muted", hasInlineStartIcon && (size === "sm" ? "pl-1.5" : "pl-2"), hasInlineEndIcon && (size === "sm" ? "pr-1.5" : "pr-2"), disabled && "pointer-events-none opacity-50", className), onClick: (event) => {
31
+ if (disabled)
32
+ return;
33
+ const next = !pressed;
34
+ if (!isControlled)
35
+ setInternalPressed(next);
36
+ onPressedChange?.(next);
37
+ onClick?.(event);
38
+ }, ...restProps, children: children }));
39
+ }
40
+ export { Toggle, toggleVariants };
41
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/ui/toggle.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAkB,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,cAAc,GAAG,GAAG,CACxB,4fAA4f,EAC5f;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,mDAAmD;SAC7D;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,oBAAoB;YAC7B,EAAE,EAAE,8GAA8G;YAClH,EAAE,EAAE,oBAAoB;SACzB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAA;AAED,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,cAAc,EACd,eAAe,EACf,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,GAAG,KAAK,EAOP;IACD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,CAAC,CAAA;IACrF,MAAM,YAAY,GAAG,WAAW,KAAK,SAAS,CAAA;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAA;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAA;IACvC,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC,OAAO,CAC5D,GAAG,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EACpC,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO,CACL,KAAC,IAAI,iBACO,QAAQ,kBACJ,OAAO,mBACN,QAAQ,gBACX,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,mBACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACxC,SAAS,EAAE,EAAE,CACX,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACjC,OAAO,IAAI,UAAU,EACrB,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EACzD,gBAAgB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EACvD,QAAQ,IAAI,gCAAgC,EAE5C,SAAS,CACV,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,QAAQ;gBAAE,OAAM;YACpB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAA;YACrB,IAAI,CAAC,YAAY;gBAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC3C,eAAe,EAAE,CAAC,IAAI,CAAC,CAAA;YACvB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;QAClB,CAAC,KACG,SAAS,YAEZ,QAAQ,GACJ,CACR,CAAA;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
package/package.json ADDED
@@ -0,0 +1,97 @@
1
+ {
2
+ "name": "@open-dy/vibecoding-sdk-taro",
3
+ "version": "0.0.1-beta.1",
4
+ "description": "Runtime, UI, build and ESLint capabilities for Douyin Taro templates.",
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.js"
14
+ },
15
+ "./runtime": {
16
+ "types": "./dist/runtime/index.d.ts",
17
+ "import": "./dist/runtime/index.js",
18
+ "require": "./dist/runtime/index.js"
19
+ },
20
+ "./interest-card/runtime/microapp": {
21
+ "types": "./dist/adapters/interest-card/runtime/microapp.d.ts",
22
+ "import": "./dist/adapters/interest-card/runtime/microapp.js",
23
+ "require": "./dist/adapters/interest-card/runtime/microapp.js"
24
+ },
25
+ "./interest-card/eslint/taro": "./dist/adapters/interest-card/eslint/taro.mjs",
26
+ "./interest-card/types/taro": "./dist/adapters/interest-card/types/taro.d.ts",
27
+ "./ui": {
28
+ "types": "./dist/ui/index.d.ts",
29
+ "import": "./dist/ui/index.js",
30
+ "require": "./dist/ui/index.js"
31
+ },
32
+ "./ui/*": {
33
+ "types": "./dist/ui/*.d.ts",
34
+ "import": "./dist/ui/*.js",
35
+ "require": "./dist/ui/*.js"
36
+ },
37
+ "./ui/theme.css": "./dist/ui/theme.css",
38
+ "./ui/tailwind.css": "./dist/ui/tailwind.css",
39
+ "./components/miniapp-open-card": {
40
+ "types": "./dist/components/miniapp-open-card.d.ts",
41
+ "import": "./dist/components/miniapp-open-card.js",
42
+ "require": "./dist/components/miniapp-open-card.js"
43
+ },
44
+ "./build/taro": {
45
+ "types": "./dist/build/taro.d.ts",
46
+ "import": "./dist/build/taro.js",
47
+ "require": "./dist/build/taro.js"
48
+ },
49
+ "./types/taro": "./dist/types/taro.d.ts",
50
+ "./reference/sdk-api.md": "./dist/reference/sdk-api.md",
51
+ "./reference/sdk-api.json": "./dist/reference/sdk-api.json",
52
+ "./reference/llms.txt": "./dist/reference/llms.txt",
53
+ "./reference/sdk-api/*": "./dist/reference/sdk-api/*",
54
+ "./eslint/taro": "./dist/eslint/taro.mjs",
55
+ "./eslint/server": "./dist/eslint/server.mjs",
56
+ "./build": {
57
+ "types": "./dist/build/index.d.ts",
58
+ "import": "./dist/build/index.js",
59
+ "require": "./dist/build/index.js"
60
+ }
61
+ },
62
+ "dependencies": {
63
+ "@tarojs/helper": "4.2.0",
64
+ "class-variance-authority": "^0.7.1",
65
+ "clsx": "^2.1.1",
66
+ "tailwind-merge": "^3.5.0"
67
+ },
68
+ "peerDependencies": {
69
+ "@babel/generator": "^7.29.0",
70
+ "@babel/parser": "^7.29.0",
71
+ "@babel/traverse": "^7.29.0",
72
+ "@babel/types": "^7.29.0",
73
+ "@eslint/compat": "^2.0.0",
74
+ "@eslint/js": "^9.18.0",
75
+ "@tailwindcss/postcss": "^4.2.1",
76
+ "@tarojs/cli": "^4.2.0",
77
+ "@tarojs/components": "^4.2.0",
78
+ "@tarojs/taro": "^4.2.0",
79
+ "eslint": "^9.18.0",
80
+ "eslint-plugin-import": "^2.31.0",
81
+ "eslint-plugin-react": "^7.37.0",
82
+ "eslint-plugin-react-hooks": "^5.0.0",
83
+ "globals": "^16.0.0",
84
+ "react": "^18.0.0",
85
+ "typescript": "^5.9.3",
86
+ "typescript-eslint": "^8.20.0",
87
+ "vite": "^4.2.0",
88
+ "weapp-tailwindcss": "^4.11.1"
89
+ },
90
+ "license": "UNLICENSED",
91
+ "sideEffects": [
92
+ "./dist/ui/theme.css"
93
+ ],
94
+ "engines": {
95
+ "node": ">=22.18.0"
96
+ }
97
+ }