@antadesign/anta 0.1.1-dev.8 → 0.2.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/README.md +42 -3
  2. package/dist/components/Button.js +4 -3
  3. package/dist/components/Progress.module.css +0 -5
  4. package/dist/components/Tag.d.ts +55 -0
  5. package/dist/components/Tag.js +40 -0
  6. package/dist/components/Text.d.ts +4 -2
  7. package/dist/components/Text.module.css +0 -6
  8. package/dist/components/Tooltip.d.ts +4 -2
  9. package/dist/elements/a-button.css +1 -733
  10. package/dist/elements/a-icon.css +1 -43
  11. package/dist/elements/a-icon.shapes.css +1 -373
  12. package/dist/elements/a-icon.shapes.d.ts +2 -1
  13. package/dist/elements/a-icon.shapes.js +3 -1
  14. package/dist/elements/a-progress.css +1 -68
  15. package/dist/elements/a-tag.css +1 -0
  16. package/dist/elements/a-text.css +1 -86
  17. package/dist/elements/a-title.css +1 -64
  18. package/dist/elements/a-tooltip.css +1 -42
  19. package/dist/elements/a-tooltip.d.ts +7 -0
  20. package/dist/elements/a-tooltip.js +96 -19
  21. package/dist/elements/index.d.ts +2 -4
  22. package/dist/elements/index.js +1 -6
  23. package/dist/general_types.d.ts +15 -35
  24. package/dist/index.d.ts +3 -4
  25. package/dist/index.js +2 -4
  26. package/dist/jsx-runtime.d.ts +19 -16
  27. package/dist/reset.css +1 -205
  28. package/dist/tokens.css +1 -285
  29. package/package.json +15 -15
  30. package/dist/components/Button.module.css +0 -2
  31. package/dist/components/Sticker.d.ts +0 -31
  32. package/dist/components/Sticker.js +0 -17
  33. package/dist/components/StickerAnimated.d.ts +0 -23
  34. package/dist/components/StickerAnimated.js +0 -28
  35. package/dist/components/__generated__/stickers/angry-animated.d.ts +0 -3
  36. package/dist/components/__generated__/stickers/angry-animated.js +0 -7
  37. package/dist/components/__generated__/stickers/angry.d.ts +0 -3
  38. package/dist/components/__generated__/stickers/angry.js +0 -7
  39. package/dist/components/__generated__/stickers/ask-animated.d.ts +0 -3
  40. package/dist/components/__generated__/stickers/ask-animated.js +0 -7
  41. package/dist/components/__generated__/stickers/ask.d.ts +0 -3
  42. package/dist/components/__generated__/stickers/ask.js +0 -7
  43. package/dist/components/__generated__/stickers/balance-animated.d.ts +0 -3
  44. package/dist/components/__generated__/stickers/balance-animated.js +0 -7
  45. package/dist/components/__generated__/stickers/balance.d.ts +0 -3
  46. package/dist/components/__generated__/stickers/balance.js +0 -7
  47. package/dist/components/__generated__/stickers/butterfly-animated.d.ts +0 -3
  48. package/dist/components/__generated__/stickers/butterfly-animated.js +0 -7
  49. package/dist/components/__generated__/stickers/butterfly-snake-animated.d.ts +0 -3
  50. package/dist/components/__generated__/stickers/butterfly-snake-animated.js +0 -7
  51. package/dist/components/__generated__/stickers/butterfly-snake.d.ts +0 -3
  52. package/dist/components/__generated__/stickers/butterfly-snake.js +0 -7
  53. package/dist/components/__generated__/stickers/butterfly.d.ts +0 -3
  54. package/dist/components/__generated__/stickers/butterfly.js +0 -7
  55. package/dist/components/__generated__/stickers/catch-animated.d.ts +0 -3
  56. package/dist/components/__generated__/stickers/catch-animated.js +0 -7
  57. package/dist/components/__generated__/stickers/catch.d.ts +0 -3
  58. package/dist/components/__generated__/stickers/catch.js +0 -7
  59. package/dist/components/__generated__/stickers/clap-animated.d.ts +0 -3
  60. package/dist/components/__generated__/stickers/clap-animated.js +0 -7
  61. package/dist/components/__generated__/stickers/clap.d.ts +0 -3
  62. package/dist/components/__generated__/stickers/clap.js +0 -7
  63. package/dist/components/__generated__/stickers/coding-animated.d.ts +0 -3
  64. package/dist/components/__generated__/stickers/coding-animated.js +0 -7
  65. package/dist/components/__generated__/stickers/coding.d.ts +0 -3
  66. package/dist/components/__generated__/stickers/coding.js +0 -7
  67. package/dist/components/__generated__/stickers/cowboy-animated.d.ts +0 -3
  68. package/dist/components/__generated__/stickers/cowboy-animated.js +0 -7
  69. package/dist/components/__generated__/stickers/cowboy.d.ts +0 -3
  70. package/dist/components/__generated__/stickers/cowboy.js +0 -7
  71. package/dist/components/__generated__/stickers/dance-animated.d.ts +0 -3
  72. package/dist/components/__generated__/stickers/dance-animated.js +0 -7
  73. package/dist/components/__generated__/stickers/dance.d.ts +0 -3
  74. package/dist/components/__generated__/stickers/dance.js +0 -7
  75. package/dist/components/__generated__/stickers/detective-animated.d.ts +0 -3
  76. package/dist/components/__generated__/stickers/detective-animated.js +0 -7
  77. package/dist/components/__generated__/stickers/detective.d.ts +0 -3
  78. package/dist/components/__generated__/stickers/detective.js +0 -7
  79. package/dist/components/__generated__/stickers/disapprove-animated.d.ts +0 -3
  80. package/dist/components/__generated__/stickers/disapprove-animated.js +0 -7
  81. package/dist/components/__generated__/stickers/disapprove.d.ts +0 -3
  82. package/dist/components/__generated__/stickers/disapprove.js +0 -7
  83. package/dist/components/__generated__/stickers/distracted-animated.d.ts +0 -3
  84. package/dist/components/__generated__/stickers/distracted-animated.js +0 -7
  85. package/dist/components/__generated__/stickers/distracted.d.ts +0 -3
  86. package/dist/components/__generated__/stickers/distracted.js +0 -7
  87. package/dist/components/__generated__/stickers/dive-animated.d.ts +0 -3
  88. package/dist/components/__generated__/stickers/dive-animated.js +0 -7
  89. package/dist/components/__generated__/stickers/dive.d.ts +0 -3
  90. package/dist/components/__generated__/stickers/dive.js +0 -7
  91. package/dist/components/__generated__/stickers/eat-animated.d.ts +0 -3
  92. package/dist/components/__generated__/stickers/eat-animated.js +0 -7
  93. package/dist/components/__generated__/stickers/eat.d.ts +0 -3
  94. package/dist/components/__generated__/stickers/eat.js +0 -7
  95. package/dist/components/__generated__/stickers/facepalm-animated.d.ts +0 -3
  96. package/dist/components/__generated__/stickers/facepalm-animated.js +0 -7
  97. package/dist/components/__generated__/stickers/facepalm.d.ts +0 -3
  98. package/dist/components/__generated__/stickers/facepalm.js +0 -7
  99. package/dist/components/__generated__/stickers/failed-animated.d.ts +0 -3
  100. package/dist/components/__generated__/stickers/failed-animated.js +0 -7
  101. package/dist/components/__generated__/stickers/failed.d.ts +0 -3
  102. package/dist/components/__generated__/stickers/failed.js +0 -7
  103. package/dist/components/__generated__/stickers/found-animated.d.ts +0 -3
  104. package/dist/components/__generated__/stickers/found-animated.js +0 -7
  105. package/dist/components/__generated__/stickers/found.d.ts +0 -3
  106. package/dist/components/__generated__/stickers/found.js +0 -7
  107. package/dist/components/__generated__/stickers/grow-animated.d.ts +0 -3
  108. package/dist/components/__generated__/stickers/grow-animated.js +0 -7
  109. package/dist/components/__generated__/stickers/grow.d.ts +0 -3
  110. package/dist/components/__generated__/stickers/grow.js +0 -7
  111. package/dist/components/__generated__/stickers/handstand-animated.d.ts +0 -3
  112. package/dist/components/__generated__/stickers/handstand-animated.js +0 -7
  113. package/dist/components/__generated__/stickers/handstand.d.ts +0 -3
  114. package/dist/components/__generated__/stickers/handstand.js +0 -7
  115. package/dist/components/__generated__/stickers/heart-animated.d.ts +0 -3
  116. package/dist/components/__generated__/stickers/heart-animated.js +0 -7
  117. package/dist/components/__generated__/stickers/heart.d.ts +0 -3
  118. package/dist/components/__generated__/stickers/heart.js +0 -7
  119. package/dist/components/__generated__/stickers/hello-animated.d.ts +0 -3
  120. package/dist/components/__generated__/stickers/hello-animated.js +0 -7
  121. package/dist/components/__generated__/stickers/hello.d.ts +0 -3
  122. package/dist/components/__generated__/stickers/hello.js +0 -7
  123. package/dist/components/__generated__/stickers/idea-animated.d.ts +0 -3
  124. package/dist/components/__generated__/stickers/idea-animated.js +0 -7
  125. package/dist/components/__generated__/stickers/idea.d.ts +0 -3
  126. package/dist/components/__generated__/stickers/idea.js +0 -7
  127. package/dist/components/__generated__/stickers/index.d.ts +0 -99
  128. package/dist/components/__generated__/stickers/index.js +0 -198
  129. package/dist/components/__generated__/stickers/laugh-animated.d.ts +0 -3
  130. package/dist/components/__generated__/stickers/laugh-animated.js +0 -7
  131. package/dist/components/__generated__/stickers/laugh.d.ts +0 -3
  132. package/dist/components/__generated__/stickers/laugh.js +0 -7
  133. package/dist/components/__generated__/stickers/love-animated.d.ts +0 -3
  134. package/dist/components/__generated__/stickers/love-animated.js +0 -7
  135. package/dist/components/__generated__/stickers/love.d.ts +0 -3
  136. package/dist/components/__generated__/stickers/love.js +0 -7
  137. package/dist/components/__generated__/stickers/nap-animated.d.ts +0 -3
  138. package/dist/components/__generated__/stickers/nap-animated.js +0 -7
  139. package/dist/components/__generated__/stickers/nap.d.ts +0 -3
  140. package/dist/components/__generated__/stickers/nap.js +0 -7
  141. package/dist/components/__generated__/stickers/party-animated.d.ts +0 -3
  142. package/dist/components/__generated__/stickers/party-animated.js +0 -7
  143. package/dist/components/__generated__/stickers/party.d.ts +0 -3
  144. package/dist/components/__generated__/stickers/party.js +0 -7
  145. package/dist/components/__generated__/stickers/passed-animated.d.ts +0 -3
  146. package/dist/components/__generated__/stickers/passed-animated.js +0 -7
  147. package/dist/components/__generated__/stickers/passed.d.ts +0 -3
  148. package/dist/components/__generated__/stickers/passed.js +0 -7
  149. package/dist/components/__generated__/stickers/peekaboo-animated.d.ts +0 -3
  150. package/dist/components/__generated__/stickers/peekaboo-animated.js +0 -7
  151. package/dist/components/__generated__/stickers/peekaboo.d.ts +0 -3
  152. package/dist/components/__generated__/stickers/peekaboo.js +0 -7
  153. package/dist/components/__generated__/stickers/pizza-animated.d.ts +0 -3
  154. package/dist/components/__generated__/stickers/pizza-animated.js +0 -7
  155. package/dist/components/__generated__/stickers/pizza.d.ts +0 -3
  156. package/dist/components/__generated__/stickers/pizza.js +0 -7
  157. package/dist/components/__generated__/stickers/puzzle-animated.d.ts +0 -3
  158. package/dist/components/__generated__/stickers/puzzle-animated.js +0 -7
  159. package/dist/components/__generated__/stickers/puzzle.d.ts +0 -3
  160. package/dist/components/__generated__/stickers/puzzle.js +0 -7
  161. package/dist/components/__generated__/stickers/sad-animated.d.ts +0 -3
  162. package/dist/components/__generated__/stickers/sad-animated.js +0 -7
  163. package/dist/components/__generated__/stickers/sad.d.ts +0 -3
  164. package/dist/components/__generated__/stickers/sad.js +0 -7
  165. package/dist/components/__generated__/stickers/scared-animated.d.ts +0 -3
  166. package/dist/components/__generated__/stickers/scared-animated.js +0 -7
  167. package/dist/components/__generated__/stickers/scared.d.ts +0 -3
  168. package/dist/components/__generated__/stickers/scared.js +0 -7
  169. package/dist/components/__generated__/stickers/scroll-animated.d.ts +0 -3
  170. package/dist/components/__generated__/stickers/scroll-animated.js +0 -7
  171. package/dist/components/__generated__/stickers/scroll.d.ts +0 -3
  172. package/dist/components/__generated__/stickers/scroll.js +0 -7
  173. package/dist/components/__generated__/stickers/search-animated.d.ts +0 -3
  174. package/dist/components/__generated__/stickers/search-animated.js +0 -7
  175. package/dist/components/__generated__/stickers/search.d.ts +0 -3
  176. package/dist/components/__generated__/stickers/search.js +0 -7
  177. package/dist/components/__generated__/stickers/shield-animated.d.ts +0 -3
  178. package/dist/components/__generated__/stickers/shield-animated.js +0 -7
  179. package/dist/components/__generated__/stickers/shield.d.ts +0 -3
  180. package/dist/components/__generated__/stickers/shield.js +0 -7
  181. package/dist/components/__generated__/stickers/shocked-animated.d.ts +0 -3
  182. package/dist/components/__generated__/stickers/shocked-animated.js +0 -7
  183. package/dist/components/__generated__/stickers/shocked.d.ts +0 -3
  184. package/dist/components/__generated__/stickers/shocked.js +0 -7
  185. package/dist/components/__generated__/stickers/sleep-animated.d.ts +0 -3
  186. package/dist/components/__generated__/stickers/sleep-animated.js +0 -7
  187. package/dist/components/__generated__/stickers/sleep.d.ts +0 -3
  188. package/dist/components/__generated__/stickers/sleep.js +0 -7
  189. package/dist/components/__generated__/stickers/stressed-animated.d.ts +0 -3
  190. package/dist/components/__generated__/stickers/stressed-animated.js +0 -7
  191. package/dist/components/__generated__/stickers/stressed.d.ts +0 -3
  192. package/dist/components/__generated__/stickers/stressed.js +0 -7
  193. package/dist/components/__generated__/stickers/suspicious-animated.d.ts +0 -3
  194. package/dist/components/__generated__/stickers/suspicious-animated.js +0 -7
  195. package/dist/components/__generated__/stickers/suspicious.d.ts +0 -3
  196. package/dist/components/__generated__/stickers/suspicious.js +0 -7
  197. package/dist/components/__generated__/stickers/thanks-animated.d.ts +0 -3
  198. package/dist/components/__generated__/stickers/thanks-animated.js +0 -7
  199. package/dist/components/__generated__/stickers/thanks.d.ts +0 -3
  200. package/dist/components/__generated__/stickers/thanks.js +0 -7
  201. package/dist/components/__generated__/stickers/think-animated.d.ts +0 -3
  202. package/dist/components/__generated__/stickers/think-animated.js +0 -7
  203. package/dist/components/__generated__/stickers/think-of-you-animated.d.ts +0 -3
  204. package/dist/components/__generated__/stickers/think-of-you-animated.js +0 -7
  205. package/dist/components/__generated__/stickers/think-of-you.d.ts +0 -3
  206. package/dist/components/__generated__/stickers/think-of-you.js +0 -7
  207. package/dist/components/__generated__/stickers/think.d.ts +0 -3
  208. package/dist/components/__generated__/stickers/think.js +0 -7
  209. package/dist/components/__generated__/stickers/thumbs-up-animated.d.ts +0 -3
  210. package/dist/components/__generated__/stickers/thumbs-up-animated.js +0 -7
  211. package/dist/components/__generated__/stickers/thumbs-up.d.ts +0 -3
  212. package/dist/components/__generated__/stickers/thumbs-up.js +0 -7
  213. package/dist/components/__generated__/stickers/vacation-animated.d.ts +0 -3
  214. package/dist/components/__generated__/stickers/vacation-animated.js +0 -7
  215. package/dist/components/__generated__/stickers/vacation.d.ts +0 -3
  216. package/dist/components/__generated__/stickers/vacation.js +0 -7
  217. package/dist/components/__generated__/stickers/wait-animated.d.ts +0 -3
  218. package/dist/components/__generated__/stickers/wait-animated.js +0 -7
  219. package/dist/components/__generated__/stickers/wait.d.ts +0 -3
  220. package/dist/components/__generated__/stickers/wait.js +0 -7
  221. package/dist/components/__generated__/stickers/wink-animated.d.ts +0 -3
  222. package/dist/components/__generated__/stickers/wink-animated.js +0 -7
  223. package/dist/components/__generated__/stickers/wink.d.ts +0 -3
  224. package/dist/components/__generated__/stickers/wink.js +0 -7
  225. package/dist/components/__generated__/stickers/work-animated.d.ts +0 -3
  226. package/dist/components/__generated__/stickers/work-animated.js +0 -7
  227. package/dist/components/__generated__/stickers/work.d.ts +0 -3
  228. package/dist/components/__generated__/stickers/work.js +0 -7
  229. package/dist/components/__generated__/stickers/zen-animated.d.ts +0 -3
  230. package/dist/components/__generated__/stickers/zen-animated.js +0 -7
  231. package/dist/components/__generated__/stickers/zen.d.ts +0 -3
  232. package/dist/components/__generated__/stickers/zen.js +0 -7
  233. package/dist/elements/a-sticker-animated.css +0 -9
  234. package/dist/elements/a-sticker-animated.d.ts +0 -39
  235. package/dist/elements/a-sticker-animated.js +0 -81
  236. package/dist/elements/a-sticker.css +0 -9
  237. package/dist/elements/a-sticker.d.ts +0 -19
  238. package/dist/elements/a-sticker.js +0 -32
  239. package/dist/generate-stickers.mjs +0 -293
@@ -1,293 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * generate-stickers.mjs — read a folder of per-sticker subfolders and emit
4
- * one per-sticker TS module per mode (static + animated) under the chosen
5
- * output folder, plus a barrel index that re-exports them.
6
- *
7
- * Expected source layout:
8
- *
9
- * stickers/
10
- * coding/
11
- * coding.json — Lottie animation (drives Sticker{Name}Animated)
12
- * coding.svg — static pose (drives Sticker{Name})
13
- * vacation/
14
- * vacation.json
15
- * vacation.svg
16
- * …
17
- *
18
- *
19
- * Collision detection — when `--internal` is NOT passed (i.e. consumer
20
- * run), the generator warns if a generated name collides with one of
21
- * anta's built-in stickers. Anta's own build passes `--internal`.
22
- *
23
- * node scripts/generate-stickers.mjs --input ./stickers --output ./src/components/__generated__/stickers
24
- */
25
-
26
- import fs from "node:fs";
27
- import path from "node:path";
28
-
29
- // Anta's built-in sticker names. Consumers who generate a same-named
30
- // sticker get a warning; their generated module will resolve to the same
31
- // import path and shadow ours. Keep this list in sync with the canonical
32
- // names under ./stickers/<name>/.
33
- const DEFAULT_BUILT_IN = [
34
- "angry",
35
- "ask",
36
- "balance",
37
- "butterfly",
38
- "butterfly-snake",
39
- "catch",
40
- "clap",
41
- "coding",
42
- "cowboy",
43
- "dance",
44
- "detective",
45
- "disapprove",
46
- "distracted",
47
- "dive",
48
- "eat",
49
- "facepalm",
50
- "failed",
51
- "found",
52
- "grow",
53
- "handstand",
54
- "heart",
55
- "hello",
56
- "idea",
57
- "laugh",
58
- "love",
59
- "nap",
60
- "party",
61
- "passed",
62
- "peekaboo",
63
- "pizza",
64
- "puzzle",
65
- "sad",
66
- "scared",
67
- "scroll",
68
- "search",
69
- "shield",
70
- "shocked",
71
- "sleep",
72
- "stressed",
73
- "suspicious",
74
- "thanks",
75
- "think",
76
- "think-of-you",
77
- "thumbs-up",
78
- "vacation",
79
- "wait",
80
- "wink",
81
- "work",
82
- "zen",
83
- ];
84
-
85
- function pascalCase(name) {
86
- return name
87
- .split(/[-_\s]+/)
88
- .filter(Boolean)
89
- .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
90
- .join("");
91
- }
92
-
93
- function componentName(base) {
94
- return `Sticker${pascalCase(base)}`;
95
- }
96
-
97
- export async function generate({ input, output, internal = false } = {}) {
98
- if (!input) throw new Error("generate-stickers: --input is required");
99
- if (!output) throw new Error("generate-stickers: --output is required");
100
-
101
- const inDir = path.resolve(input);
102
- const outDir = path.resolve(output);
103
- if (!fs.existsSync(inDir)) {
104
- throw new Error(`generate-stickers: input folder not found: ${inDir}`);
105
- }
106
- fs.mkdirSync(outDir, { recursive: true });
107
-
108
- // Each immediate subfolder of inDir is one sticker. The folder name is
109
- // the canonical sticker name.
110
- const subdirs = fs
111
- .readdirSync(inDir, { withFileTypes: true })
112
- .filter((d) => d.isDirectory())
113
- .map((d) => d.name)
114
- .sort();
115
-
116
- if (subdirs.length === 0) {
117
- console.warn(`generate-stickers: no sticker subfolders in ${inDir}`);
118
- }
119
-
120
- // Clear out previous generated files so renamed/removed stickers don't
121
- // leave stale modules behind. Keep index.ts (about to be rewritten) and
122
- // the per-sticker static + animated file names we're about to write.
123
- // Naming convention: `<name>.ts` is the static (default) sticker;
124
- // `<name>-animated.ts` is the Lottie-backed animated variant.
125
- const keep = new Set([
126
- "index.ts",
127
- ...subdirs.flatMap((n) => [`${n}.ts`, `${n}-animated.ts`]),
128
- ]);
129
- for (const existing of fs.readdirSync(outDir)) {
130
- if (!keep.has(existing) && /\.ts$/.test(existing)) {
131
- fs.unlinkSync(path.join(outDir, existing));
132
- }
133
- }
134
-
135
- const exports = [];
136
- const skipped = [];
137
- const builtInSet = internal ? new Set() : new Set(DEFAULT_BUILT_IN);
138
- const collisions = [];
139
-
140
- for (const name of subdirs) {
141
- const subdir = path.join(inDir, name);
142
- const lottiePath = path.join(subdir, `${name}.json`);
143
- const svgPath = path.join(subdir, `${name}.svg`);
144
- const hasLottie = fs.existsSync(lottiePath);
145
- const hasSvg = fs.existsSync(svgPath) && fs.statSync(svgPath).size > 0;
146
- if (!hasLottie && !hasSvg) {
147
- skipped.push(`${name} (no ${name}.json or ${name}.svg)`);
148
- continue;
149
- }
150
- if (builtInSet.has(name)) collisions.push(name);
151
- const cname = componentName(name);
152
- const animatedName = `${cname}Animated`;
153
-
154
- // Static module — the default. Emitted whenever a non-empty SVG
155
- // exists. Imports the `Sticker` runtime wrapper from the package
156
- // root `@antadesign/anta` (same root specifier the icon codegen
157
- // uses — no bespoke runtime subpath). Lives at `<name>.ts` so the
158
- // import path matches the bare sticker name.
159
- //
160
- // Two exports: the JSX `Sticker{Name}` component (React/Preact),
161
- // and the raw `svg` string (vanilla JS / non-JSX consumers, who
162
- // assign it to an `<a-sticker>` element's `svg` attribute).
163
- // Bundlers tree-shake the unused one.
164
- if (hasSvg) {
165
- const svg = fs.readFileSync(svgPath, "utf8");
166
- const lines = [
167
- "/* Auto-generated by @antadesign/anta. Do not edit by hand. */",
168
- "",
169
- "import { Sticker, type StickerProps } from '@antadesign/anta'",
170
- "",
171
- `export const svg = ${JSON.stringify(svg)}`,
172
- "",
173
- `export const ${cname} = (props: StickerProps) => Sticker({ ...props, svg })`,
174
- "",
175
- ];
176
- fs.writeFileSync(path.join(outDir, `${name}.ts`), lines.join("\n"));
177
- }
178
-
179
- // Animated module — emitted whenever a Lottie JSON exists. Each
180
- // module lives in `<name>-animated.ts` so importing only the static
181
- // sticker (`<name>.ts`) never drags the Lottie payload. Bundlers
182
- // tree-shake per-file when the barrel uses `export { … } from
183
- // './foo'`. Imports the `StickerAnimated` runtime wrapper from the
184
- // package root `@antadesign/anta`.
185
- //
186
- // The animation is exported as a JSON *string* (not the parsed
187
- // object). `<a-sticker-animated>` receives it via its `animation`
188
- // attribute and parses it once on set. Two exports: the JSX
189
- // `Sticker{Name}Animated` component, and the raw `animationJson`
190
- // string (vanilla JS / non-JSX consumers who call
191
- // `el.setAttribute('animation', animationJson)`).
192
- if (hasLottie) {
193
- const lottieJson = fs.readFileSync(lottiePath, "utf8");
194
- const lines = [
195
- "/* Auto-generated by @antadesign/anta. Do not edit by hand. */",
196
- "",
197
- "import { StickerAnimated, type StickerAnimatedProps } from '@antadesign/anta'",
198
- "",
199
- `export const animationJson = ${JSON.stringify(lottieJson)}`,
200
- "",
201
- `export const ${animatedName} = (props: StickerAnimatedProps) => StickerAnimated({ ...props, animation: animationJson })`,
202
- "",
203
- ];
204
- fs.writeFileSync(
205
- path.join(outDir, `${name}-animated.ts`),
206
- lines.join("\n"),
207
- );
208
- }
209
-
210
- exports.push({
211
- base: name,
212
- componentName: cname,
213
- hasLottie,
214
- hasSvg,
215
- animatedName,
216
- });
217
- }
218
-
219
- // Barrel — alphabetical for stable diffs, side-effect free so unused
220
- // stickers tree-shake. Each export references the correct per-mode
221
- // file so importing only the static variant doesn't pull the animated
222
- // module (and vice versa).
223
- const reExports = [];
224
- for (const {
225
- base,
226
- componentName,
227
- hasLottie,
228
- hasSvg,
229
- animatedName,
230
- } of exports) {
231
- if (hasSvg) reExports.push(`export { ${componentName} } from './${base}'`);
232
- if (hasLottie)
233
- reExports.push(`export { ${animatedName} } from './${base}-animated'`);
234
- }
235
- const indexLines = [
236
- "/* Auto-generated by @antadesign/anta. Do not edit by hand. */",
237
- "",
238
- "export type { StickerProps, StickerAnimatedProps } from '@antadesign/anta'",
239
- "",
240
- ...reExports,
241
- "",
242
- ];
243
- fs.writeFileSync(path.join(outDir, "index.ts"), indexLines.join("\n"));
244
-
245
- if (collisions.length > 0) {
246
- console.warn(
247
- `generate-stickers: ${collisions.length} sticker name(s) collide with Anta's built-in stickers: ` +
248
- `${collisions.join(", ")}. ` +
249
- `Consumers importing from \`@antadesign/anta/stickers\` get Anta's; your generated barrel exposes yours under its own import path.`,
250
- );
251
- }
252
-
253
- console.log(
254
- `generate-stickers: wrote ${exports.length} sticker${exports.length === 1 ? "" : "s"} to ${outDir}`,
255
- );
256
- if (skipped.length) {
257
- console.warn(
258
- `generate-stickers: skipped ${skipped.length} (${skipped.join(", ")})`,
259
- );
260
- }
261
- return { stickers: exports };
262
- }
263
-
264
- function parseArgs(argv) {
265
- const out = {};
266
- for (let i = 0; i < argv.length; i++) {
267
- const arg = argv[i];
268
- if (arg.startsWith("--")) {
269
- const key = arg.slice(2);
270
- const next = argv[i + 1];
271
- if (next && !next.startsWith("--")) {
272
- out[key] = next;
273
- i++;
274
- } else {
275
- out[key] = true;
276
- }
277
- }
278
- }
279
- return out;
280
- }
281
-
282
- const isMain = process.argv[1]?.endsWith("generate-stickers.mjs");
283
- if (isMain) {
284
- const args = parseArgs(process.argv.slice(2));
285
- generate({
286
- input: args.input,
287
- output: args.output,
288
- internal: args.internal === true,
289
- }).catch((e) => {
290
- console.error(e.message);
291
- process.exit(1);
292
- });
293
- }