@razorwind/core 0.0.5 → 0.0.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.
- package/README.md +218 -0
- package/dist/config-DQHHeicR.d.mts +85 -0
- package/dist/config-DQHHeicR.d.mts.map +1 -0
- package/dist/config-Dj6RrLde.d.cts +85 -0
- package/dist/config-Dj6RrLde.d.cts.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +13 -2
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts +13 -2
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +1 -1
- package/dist/generator-BWQOEMGt.mjs +2 -0
- package/dist/generator-BWQOEMGt.mjs.map +1 -0
- package/dist/generator-DQ1WS7hN.mjs +2 -0
- package/dist/generator-DQ1WS7hN.mjs.map +1 -0
- package/dist/generator-DjAElWpu.cjs +1 -0
- package/dist/generator-nWEM7jKK.cjs +1 -0
- package/dist/generator.cjs +1 -7
- package/dist/generator.d.cts +6 -6
- package/dist/generator.d.mts +6 -6
- package/dist/generator.mjs +1 -8
- package/dist/index--y-fo2Lr.d.mts +3 -0
- package/dist/index-COAOe8bR.d.cts +3 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +8 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +8 -4
- package/dist/index.mjs +1 -1
- package/dist/lib/tokens/index.cjs +1 -0
- package/dist/lib/tokens/index.d.cts +150 -0
- package/dist/lib/tokens/index.d.cts.map +1 -0
- package/dist/lib/tokens/index.d.mts +150 -0
- package/dist/lib/tokens/index.d.mts.map +1 -0
- package/dist/lib/tokens/index.mjs +1 -0
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +43 -0
- package/dist/plugin.d.cts.map +1 -0
- package/dist/plugin.d.mts +43 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +2 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/resolve-config-CBowa3KM.mjs +2 -0
- package/dist/resolve-config-CBowa3KM.mjs.map +1 -0
- package/dist/resolve-config-D7XXy_Qk.cjs +1 -0
- package/dist/rolldown-runtime-CMqjfN_6.cjs +1 -0
- package/dist/schema/index.cjs +1 -0
- package/dist/schema/index.d.cts +3 -0
- package/dist/schema/index.d.mts +3 -0
- package/dist/schema/index.mjs +1 -0
- package/dist/schema-1EWJvc56.d.cts +115 -0
- package/dist/schema-1EWJvc56.d.cts.map +1 -0
- package/dist/schema-BNfl9Tsw.d.mts +115 -0
- package/dist/schema-BNfl9Tsw.d.mts.map +1 -0
- package/dist/schema-Bxzw_P4l.mjs +2 -0
- package/dist/schema-Bxzw_P4l.mjs.map +1 -0
- package/dist/schema-CLeH9GGy.cjs +1 -0
- package/dist/tokens-B8Dv91EB.mjs +2 -0
- package/dist/tokens-B8Dv91EB.mjs.map +1 -0
- package/dist/tokens-CoQWg4mX.cjs +1 -0
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +37 -0
- package/dist/utils/index.d.cts.map +1 -0
- package/dist/utils/index.d.mts +37 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +2 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +83 -26
- package/dist/config-CJi9Fu8b.d.cts +0 -40
- package/dist/config-CJi9Fu8b.d.cts.map +0 -1
- package/dist/config-CJi9Fu8b.d.mts +0 -40
- package/dist/config-CJi9Fu8b.d.mts.map +0 -1
- package/dist/generator.mjs.map +0 -1
- package/dist/index-DUwzPMW3.d.mts +0 -14
- package/dist/index-DUwzPMW3.d.mts.map +0 -1
- package/dist/index-UbhspNdK.d.cts +0 -14
- package/dist/index-UbhspNdK.d.cts.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,51 @@
|
|
|
1
1
|
<!-- START header -->
|
|
2
|
+
<!-- prettier-ignore-start -->
|
|
3
|
+
<!-- markdownlint-disable -->
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
<div align="center">
|
|
7
|
+
<picture>
|
|
8
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/razorwind/media/banner-1280x640-dark.gif">
|
|
9
|
+
<source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/razorwind/media/banner-1280x640-light.gif">
|
|
10
|
+
<img src="https://public.storm-cdn.com/razorwind/media/banner-1280x640-dark.gif" width="100%" alt="Razorwind" />
|
|
11
|
+
</picture>
|
|
12
|
+
</div>
|
|
13
|
+
<br />
|
|
14
|
+
|
|
15
|
+
<div align="center">
|
|
16
|
+
<b>
|
|
17
|
+
<a href="https://stormsoftware.com" target="_blank">Website</a> •
|
|
18
|
+
<a href="https://github.com/storm-software/razorwind" target="_blank">GitHub</a> •
|
|
19
|
+
<a href="https://discord.gg/MQ6YVzakM5">Discord</a> • <a href="https://stormstack.github.io/stormstack/" target="_blank">Docs</a> • <a href="https://stormsoftware.com/contact" target="_blank">Contact</a> •
|
|
20
|
+
<a href="https://github.com/storm-software/stack/issues/new?assignees=&labels=bug&template=bug-report.yml&title=Bug Report%3A+">Report a Bug</a>
|
|
21
|
+
</b>
|
|
22
|
+
</div>
|
|
23
|
+
<br />
|
|
24
|
+
|
|
25
|
+
💨 Razorwind is a unified set of tools that make creating design systems a breeze.
|
|
26
|
+
|
|
27
|
+
<h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3>
|
|
28
|
+
<br />
|
|
29
|
+
|
|
30
|
+
[](http://commitizen.github.io/cz-cli/)  
|
|
31
|
+
|
|
32
|
+
<!-- prettier-ignore-start -->
|
|
33
|
+
<!-- markdownlint-disable -->
|
|
34
|
+
|
|
35
|
+
> [!IMPORTANT]
|
|
36
|
+
> This repository, and the apps, libraries, and tools contained within, is still in it's initial development phase. As a result, bugs and issues are expected with it's usage. When the main development phase completes, a proper release will be performed, the packages will be available through NPM (and other distributions), and this message will be removed. However, in the meantime, please feel free to report any issues you may come across.
|
|
37
|
+
|
|
38
|
+
<!-- markdownlint-restore -->
|
|
39
|
+
<!-- prettier-ignore-end -->
|
|
40
|
+
|
|
41
|
+
<div align="center">
|
|
42
|
+
<b>Be sure to ⭐ this repository on <a href="https://github.com/storm-software/razorwind" target="_blank">GitHub</a> so you can keep up to date on any daily progress!</b>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<br />
|
|
46
|
+
|
|
47
|
+
<!-- markdownlint-restore -->
|
|
48
|
+
<!-- prettier-ignore-end -->
|
|
2
49
|
|
|
3
50
|
<!-- END header -->
|
|
4
51
|
|
|
@@ -43,5 +90,176 @@ Run `nx build core` to build the library.
|
|
|
43
90
|
Run `nx test core` to execute the unit tests via [Vitest](https://vitest.dev/).
|
|
44
91
|
|
|
45
92
|
<!-- START footer -->
|
|
93
|
+
<!-- prettier-ignore-start -->
|
|
94
|
+
<!-- markdownlint-disable -->
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## Storm Workspaces
|
|
98
|
+
|
|
99
|
+
Storm workspaces are built using
|
|
100
|
+
<a href="https://nx.dev/" target="_blank">Nx</a>, a set of extensible dev tools
|
|
101
|
+
for monorepos, which helps you develop like Google, Facebook, and Microsoft.
|
|
102
|
+
Building on top of Nx, the Open System provides a set of tools and patterns that
|
|
103
|
+
help you scale your monorepo to many teams while keeping the codebase
|
|
104
|
+
maintainable.
|
|
105
|
+
|
|
106
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
107
|
+
<br />
|
|
108
|
+
|
|
109
|
+
## Roadmap
|
|
110
|
+
|
|
111
|
+
See the [open issues](https://github.com/storm-software/razorwind/issues) for
|
|
112
|
+
a list of proposed features (and known issues).
|
|
113
|
+
|
|
114
|
+
- [Top Feature Requests](https://github.com/storm-software/razorwind/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc)
|
|
115
|
+
(Add your votes using the 👍 reaction)
|
|
116
|
+
- [Top Bugs](https://github.com/storm-software/razorwind/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc)
|
|
117
|
+
(Add your votes using the 👍 reaction)
|
|
118
|
+
- [Newest Bugs](https://github.com/storm-software/razorwind/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
|
|
119
|
+
|
|
120
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
121
|
+
<br />
|
|
122
|
+
|
|
123
|
+
## Support
|
|
124
|
+
|
|
125
|
+
Reach out to the maintainer at one of the following places:
|
|
126
|
+
|
|
127
|
+
- [Contact](https://stormsoftware.com/contact)
|
|
128
|
+
- [GitHub discussions](https://github.com/storm-software/razorwind/discussions)
|
|
129
|
+
- <support@stormsoftware.com>
|
|
130
|
+
|
|
131
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
132
|
+
<br />
|
|
133
|
+
|
|
134
|
+
## License
|
|
135
|
+
|
|
136
|
+
This project is licensed under the **Apache License 2.0**. Feel free to edit and
|
|
137
|
+
distribute this template as you like.
|
|
138
|
+
|
|
139
|
+
See [LICENSE](LICENSE) for more information.
|
|
140
|
+
|
|
141
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
142
|
+
<br />
|
|
143
|
+
|
|
144
|
+
## Changelog
|
|
145
|
+
|
|
146
|
+
This project adheres to
|
|
147
|
+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html). Every release, along
|
|
148
|
+
with the migration instructions, is documented in the [CHANGELOG](CHANGELOG.md)
|
|
149
|
+
file
|
|
150
|
+
|
|
151
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
152
|
+
<br />
|
|
153
|
+
|
|
154
|
+
## Contributing
|
|
155
|
+
|
|
156
|
+
First off, thanks for taking the time to contribute! Contributions are what
|
|
157
|
+
makes the open-source community such an amazing place to learn, inspire, and
|
|
158
|
+
create. Any contributions you make will benefit everybody else and are **greatly
|
|
159
|
+
appreciated**.
|
|
160
|
+
|
|
161
|
+
Please try to create bug reports that are:
|
|
162
|
+
|
|
163
|
+
- _Reproducible._ Include steps to reproduce the problem.
|
|
164
|
+
- _Specific._ Include as much detail as possible: which version, what
|
|
165
|
+
environment, etc.
|
|
166
|
+
- _Unique._ Do not duplicate existing opened issues.
|
|
167
|
+
- _Scoped to a Single Bug._ One bug per report.
|
|
168
|
+
|
|
169
|
+
Please adhere to this project's [code of conduct](.github/CODE_OF_CONDUCT.md).
|
|
170
|
+
|
|
171
|
+
You can use
|
|
172
|
+
[markdownlint-cli](https://github.com/storm-software/razorwind/markdownlint-cli)
|
|
173
|
+
to check for common markdown style inconsistency.
|
|
174
|
+
|
|
175
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
176
|
+
<br />
|
|
177
|
+
|
|
178
|
+
## Contributors
|
|
179
|
+
|
|
180
|
+
Thanks goes to these wonderful people
|
|
181
|
+
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
|
182
|
+
|
|
183
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
184
|
+
|
|
185
|
+
<table>
|
|
186
|
+
<tbody>
|
|
187
|
+
<tr>
|
|
188
|
+
<td align="center" valign="top" width="14.28%"><a href="http://www.sullypat.com/"><img src="https://avatars.githubusercontent.com/u/99053093?v=4?s=100" width="100px;" alt="Patrick Sullivan"/><br /><sub><b>Patrick Sullivan</b></sub></a><br /><a href="#design-sullivanpj" title="Design">🎨</a> <a href="https://github.com/storm-software/razorwind/commits?author=sullivanpj" title="Code">💻</a> <a href="#tool-sullivanpj" title="Tools">🔧</a> <a href="https://github.com/storm-software/razorwind/commits?author=sullivanpj" title="Documentation">📖</a> <a href="https://github.com/storm-software/razorwind/commits?author=sullivanpj" title="Tests">⚠️</a></td>
|
|
189
|
+
<td align="center" valign="top" width="14.28%"><a href="https://tylerbenning.com/"><img src="https://avatars.githubusercontent.com/u/7265547?v=4?s=100" width="100px;" alt="Tyler Benning"/><br /><sub><b>Tyler Benning</b></sub></a><br /><a href="#design-tbenning" title="Design">🎨</a></td>
|
|
190
|
+
<td align="center" valign="top" width="14.28%"><a href="http://stormsoftware.com"><img src="https://avatars.githubusercontent.com/u/149802440?v=4?s=100" width="100px;" alt="Stormie"/><br /><sub><b>Stormie</b></sub></a><br /><a href="#maintenance-stormie-bot" title="Maintenance">🚧</a></td>
|
|
191
|
+
</tr>
|
|
192
|
+
</tbody>
|
|
193
|
+
<tfoot>
|
|
194
|
+
<tr>
|
|
195
|
+
<td align="center" size="13px" colspan="7">
|
|
196
|
+
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg" alt="All Contributors">
|
|
197
|
+
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
|
|
198
|
+
</img>
|
|
199
|
+
</td>
|
|
200
|
+
</tr>
|
|
201
|
+
</tfoot>
|
|
202
|
+
</table>
|
|
203
|
+
|
|
204
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
205
|
+
|
|
206
|
+
This project follows the
|
|
207
|
+
[all-contributors](https://github.com/all-contributors/all-contributors)
|
|
208
|
+
specification. Contributions of any kind welcome!
|
|
209
|
+
|
|
210
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
211
|
+
<br />
|
|
212
|
+
|
|
213
|
+
<hr />
|
|
214
|
+
<br />
|
|
215
|
+
|
|
216
|
+
<div align="center">
|
|
217
|
+
<picture>
|
|
218
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/storm-software/media/banner-1280x320-dark.webp">
|
|
219
|
+
<source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/storm-software/media/banner-1280x320-light.webp">
|
|
220
|
+
<img src="https://public.storm-cdn.com/storm-software/media/banner-1280x320-dark.webp" width="100%" alt="Storm Software" />
|
|
221
|
+
</picture>
|
|
222
|
+
</div>
|
|
223
|
+
<br />
|
|
224
|
+
|
|
225
|
+
<div align="center">
|
|
226
|
+
<a href="https://stormsoftware.com" target="_blank">Website</a> • <a href="https://stormsoftware.com/contact" target="_blank">Contact</a> • <a href="https://linkedin.com/in/patrick-sullivan-865526b0" target="_blank">LinkedIn</a> • <a href="https://medium.com/@pat.joseph.sullivan" target="_blank">Medium</a> • <a href="https://github.com/storm-software" target="_blank">GitHub</a> • <a href="https://keybase.io/sullivanp" target="_blank">OpenPGP Key</a>
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
<div align="center">
|
|
230
|
+
<b>Fingerprint:</b> 1BD2 7192 7770 2549 F4C9 F238 E6AD C420 DA5C 4C2D
|
|
231
|
+
</div>
|
|
232
|
+
<br />
|
|
233
|
+
|
|
234
|
+
Storm Software is an open source software development organization and creator
|
|
235
|
+
of Acidic, StormStack and StormCloud.
|
|
236
|
+
|
|
237
|
+
Our mission is to make software development more accessible. Our ideal future is
|
|
238
|
+
one where anyone can create software without years of prior development
|
|
239
|
+
experience serving as a barrier to entry. We hope to achieve this via LLMs,
|
|
240
|
+
Generative AI, and intuitive, high-level data modeling/programming languages.
|
|
241
|
+
|
|
242
|
+
Join us on [Discord](https://discord.gg/MQ6YVzakM5) to chat with the team,
|
|
243
|
+
receive release notifications, ask questions, and get involved.
|
|
244
|
+
|
|
245
|
+
If this sounds interesting, and you would like to help us in creating the next
|
|
246
|
+
generation of development tools, please reach out on our
|
|
247
|
+
[website](https://stormsoftware.com/contact) or join our
|
|
248
|
+
[Slack channel](https://join.slack.com/t/storm-software/shared_invite/zt-2gsmk04hs-i6yhK_r6urq0dkZYAwq2pA)!
|
|
249
|
+
|
|
250
|
+
<br />
|
|
251
|
+
|
|
252
|
+
<div align="center"><a href="https://stormsoftware.com" target="_blank"><picture><source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/storm-software/icons/circle-dark.webp"><source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/storm-software/icons/circle-light.webp"><img src="https://public.storm-cdn.com/storm-software/icons/circle-dark.webp" width="200px" alt="Storm Software" /></picture></a></div>
|
|
253
|
+
<br />
|
|
254
|
+
<div align="center"><a href="https://stormsoftware.com" target="_blank"><picture><source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/misc/text/visit-us-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/misc/text/visit-us-light.png"><img src="https://public.storm-cdn.com/misc/text/visit-us-dark.png" height="90px" alt="Visit us at stormsoftware.com" /></picture></a></div>
|
|
255
|
+
<br />
|
|
256
|
+
|
|
257
|
+
<div align="right">[ <a href="#table-of-contents">Back to top ▲</a> ]</div>
|
|
258
|
+
<br />
|
|
259
|
+
<br />
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
<!-- markdownlint-restore -->
|
|
263
|
+
<!-- prettier-ignore-end -->
|
|
46
264
|
|
|
47
265
|
<!-- END footer -->
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as Schema } from "./schema-BNfl9Tsw.mjs";
|
|
2
|
+
import { EnvPaths } from "@stryke/env";
|
|
3
|
+
import { GeneratedDocument } from "@power-plant/core";
|
|
4
|
+
import { PreprocessedTokens } from "style-dictionary";
|
|
5
|
+
import { Tokens } from "@power-plant/dtcg-schema";
|
|
6
|
+
import { MaybePromise, RequiredKeys } from "@stryke/types/base";
|
|
7
|
+
import { DesignTokens } from "style-dictionary/types";
|
|
8
|
+
//#region src/types/plugin.d.ts
|
|
9
|
+
interface TokensParser {
|
|
10
|
+
name?: string;
|
|
11
|
+
pattern: RegExp;
|
|
12
|
+
parser: (contents: string) => DesignTokens;
|
|
13
|
+
}
|
|
14
|
+
type TokensPreprocessor = {
|
|
15
|
+
name?: string;
|
|
16
|
+
preprocessor: (dictionary: PreprocessedTokens) => PreprocessedTokens;
|
|
17
|
+
} | ((dictionary: PreprocessedTokens) => PreprocessedTokens);
|
|
18
|
+
interface Plugin {
|
|
19
|
+
name: string;
|
|
20
|
+
parsers?: TokensParser[];
|
|
21
|
+
preprocessors?: TokensPreprocessor[];
|
|
22
|
+
extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
|
|
23
|
+
generate?: (spec: Schema, config: Config) => MaybePromise<Record<string, GeneratedDocument>>;
|
|
24
|
+
validate?: (spec: Schema, config: Config) => MaybePromise<void>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/types/config.d.ts
|
|
28
|
+
interface Options {
|
|
29
|
+
/**
|
|
30
|
+
* The directory or file containing a Razorwind configuration file.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue "razorwind.config.ts"
|
|
33
|
+
*/
|
|
34
|
+
configFile?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The path to the registry.json file.
|
|
37
|
+
*
|
|
38
|
+
* @see https://shadcn.com/docs/registry
|
|
39
|
+
*/
|
|
40
|
+
registryPath?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The directory or file containing the tokens.
|
|
43
|
+
*
|
|
44
|
+
* @see https://styledictionary.com/info/tokens/
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue "tokens.json" (or "tokens" directory)
|
|
47
|
+
*/
|
|
48
|
+
tokensPath?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The mode to use for the configuration.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue "production"
|
|
53
|
+
*/
|
|
54
|
+
mode?: "development" | "test" | "production";
|
|
55
|
+
}
|
|
56
|
+
interface UserConfig extends Options {
|
|
57
|
+
name?: string;
|
|
58
|
+
title?: string;
|
|
59
|
+
version?: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
author?: string;
|
|
62
|
+
license?: string;
|
|
63
|
+
repository?: string;
|
|
64
|
+
homepage?: string;
|
|
65
|
+
tags?: string[];
|
|
66
|
+
tokens?: Tokens | Record<string, Tokens>;
|
|
67
|
+
plugins?: Plugin[];
|
|
68
|
+
}
|
|
69
|
+
interface UserConfigParams {
|
|
70
|
+
cwd: string;
|
|
71
|
+
mode: string;
|
|
72
|
+
}
|
|
73
|
+
type UserConfigFnObject = (config: UserConfig) => UserConfig;
|
|
74
|
+
type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
|
|
75
|
+
type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
|
|
76
|
+
type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
|
|
77
|
+
type Config = RequiredKeys<UserConfig, "registryPath" | "plugins"> & {
|
|
78
|
+
cwd: string;
|
|
79
|
+
envPaths: EnvPaths & {
|
|
80
|
+
home: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
|
|
85
|
+
//# sourceMappingURL=config-DQHHeicR.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-DQHHeicR.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as Schema } from "./schema-1EWJvc56.cjs";
|
|
2
|
+
import { Tokens } from "@power-plant/dtcg-schema";
|
|
3
|
+
import { EnvPaths } from "@stryke/env";
|
|
4
|
+
import { MaybePromise, RequiredKeys } from "@stryke/types/base";
|
|
5
|
+
import { GeneratedDocument } from "@power-plant/core";
|
|
6
|
+
import { PreprocessedTokens } from "style-dictionary";
|
|
7
|
+
import { DesignTokens } from "style-dictionary/types";
|
|
8
|
+
//#region src/types/plugin.d.ts
|
|
9
|
+
interface TokensParser {
|
|
10
|
+
name?: string;
|
|
11
|
+
pattern: RegExp;
|
|
12
|
+
parser: (contents: string) => DesignTokens;
|
|
13
|
+
}
|
|
14
|
+
type TokensPreprocessor = {
|
|
15
|
+
name?: string;
|
|
16
|
+
preprocessor: (dictionary: PreprocessedTokens) => PreprocessedTokens;
|
|
17
|
+
} | ((dictionary: PreprocessedTokens) => PreprocessedTokens);
|
|
18
|
+
interface Plugin {
|
|
19
|
+
name: string;
|
|
20
|
+
parsers?: TokensParser[];
|
|
21
|
+
preprocessors?: TokensPreprocessor[];
|
|
22
|
+
extract?: (spec: Schema, config: Config) => MaybePromise<Schema>;
|
|
23
|
+
generate?: (spec: Schema, config: Config) => MaybePromise<Record<string, GeneratedDocument>>;
|
|
24
|
+
validate?: (spec: Schema, config: Config) => MaybePromise<void>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/types/config.d.ts
|
|
28
|
+
interface Options {
|
|
29
|
+
/**
|
|
30
|
+
* The directory or file containing a Razorwind configuration file.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue "razorwind.config.ts"
|
|
33
|
+
*/
|
|
34
|
+
configFile?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The path to the registry.json file.
|
|
37
|
+
*
|
|
38
|
+
* @see https://shadcn.com/docs/registry
|
|
39
|
+
*/
|
|
40
|
+
registryPath?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The directory or file containing the tokens.
|
|
43
|
+
*
|
|
44
|
+
* @see https://styledictionary.com/info/tokens/
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue "tokens.json" (or "tokens" directory)
|
|
47
|
+
*/
|
|
48
|
+
tokensPath?: string;
|
|
49
|
+
/**
|
|
50
|
+
* The mode to use for the configuration.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue "production"
|
|
53
|
+
*/
|
|
54
|
+
mode?: "development" | "test" | "production";
|
|
55
|
+
}
|
|
56
|
+
interface UserConfig extends Options {
|
|
57
|
+
name?: string;
|
|
58
|
+
title?: string;
|
|
59
|
+
version?: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
author?: string;
|
|
62
|
+
license?: string;
|
|
63
|
+
repository?: string;
|
|
64
|
+
homepage?: string;
|
|
65
|
+
tags?: string[];
|
|
66
|
+
tokens?: Tokens | Record<string, Tokens>;
|
|
67
|
+
plugins?: Plugin[];
|
|
68
|
+
}
|
|
69
|
+
interface UserConfigParams {
|
|
70
|
+
cwd: string;
|
|
71
|
+
mode: string;
|
|
72
|
+
}
|
|
73
|
+
type UserConfigFnObject = (config: UserConfig) => UserConfig;
|
|
74
|
+
type UserConfigFnPromise = (params: UserConfigParams) => Promise<UserConfig | UserConfig[]>;
|
|
75
|
+
type UserConfigFn = (params: UserConfigParams) => UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]>;
|
|
76
|
+
type UserConfigExport = UserConfig | UserConfig[] | Promise<UserConfig | UserConfig[]> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
|
|
77
|
+
type Config = RequiredKeys<UserConfig, "registryPath" | "plugins"> & {
|
|
78
|
+
cwd: string;
|
|
79
|
+
envPaths: EnvPaths & {
|
|
80
|
+
home: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//#endregion
|
|
84
|
+
export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
|
|
85
|
+
//# sourceMappingURL=config-Dj6RrLde.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-Dj6RrLde.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;UAyBiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;KAGpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;UAExB;EACf;EACA,UAAU;EACV,gBAAgB;EAChB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;EACzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;EACjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCxB9B;;;;;;EAMf;;;;;;EAOA;;;;;;;;EASA;;;;;;EAOA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aAAa;EAChC;EACA,UAAU;IACR"}
|
package/dist/config.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./plugin.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs");function n(e){return e}exports.defineConfig=n,exports.definePlugin=e.definePlugin,exports.resolveConfig=t.t;
|
package/dist/config.d.cts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { a as UserConfigFn, c as UserConfigParams, i as UserConfigExport, n as
|
|
1
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-Dj6RrLde.cjs";
|
|
2
|
+
import { definePlugin } from "./plugin.cjs";
|
|
3
|
+
//#region src/lib/resolve-config.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Loads the user configuration file for the project.
|
|
6
|
+
*
|
|
7
|
+
* @param cwd - The current working directory.
|
|
8
|
+
* @param options - The options for the configuration.
|
|
9
|
+
* @returns The resolved configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
12
|
+
//#endregion
|
|
2
13
|
//#region src/config.d.ts
|
|
3
14
|
/**
|
|
4
15
|
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a direct {@link UserConfig} object, or a function that returns it. The function receives a {@link ConfigParams} object.
|
|
@@ -29,5 +40,5 @@ declare function defineConfig(config: UserConfigFnPromise): UserConfigFnPromise;
|
|
|
29
40
|
declare function defineConfig(config: UserConfigFn): UserConfigFn;
|
|
30
41
|
declare function defineConfig(config: UserConfigExport): UserConfigExport;
|
|
31
42
|
//#endregion
|
|
32
|
-
export { type Config, type
|
|
43
|
+
export { type Config, type Options, type Plugin, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, defineConfig, definePlugin, resolveConfig };
|
|
33
44
|
//# sourceMappingURL=config.d.cts.map
|
package/dist/config.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.cts","names":[],"sources":["../src/config.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.cts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts"],"mappings":";;;;;;;;;;iBA8CsB,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCEK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB"}
|
package/dist/config.d.mts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { a as UserConfigFn, c as UserConfigParams, i as UserConfigExport, n as
|
|
1
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-DQHHeicR.mjs";
|
|
2
|
+
import { definePlugin } from "./plugin.mjs";
|
|
3
|
+
//#region src/lib/resolve-config.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Loads the user configuration file for the project.
|
|
6
|
+
*
|
|
7
|
+
* @param cwd - The current working directory.
|
|
8
|
+
* @param options - The options for the configuration.
|
|
9
|
+
* @returns The resolved configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
12
|
+
//#endregion
|
|
2
13
|
//#region src/config.d.ts
|
|
3
14
|
/**
|
|
4
15
|
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a direct {@link UserConfig} object, or a function that returns it. The function receives a {@link ConfigParams} object.
|
|
@@ -29,5 +40,5 @@ declare function defineConfig(config: UserConfigFnPromise): UserConfigFnPromise;
|
|
|
29
40
|
declare function defineConfig(config: UserConfigFn): UserConfigFn;
|
|
30
41
|
declare function defineConfig(config: UserConfigExport): UserConfigExport;
|
|
31
42
|
//#endregion
|
|
32
|
-
export { type Config, type
|
|
43
|
+
export { type Config, type Options, type Plugin, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, defineConfig, definePlugin, resolveConfig };
|
|
33
44
|
//# sourceMappingURL=config.d.mts.map
|
package/dist/config.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts"],"mappings":""}
|
package/dist/config.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
import{definePlugin as e}from"./plugin.mjs";import{t}from"./resolve-config-CBowa3KM.mjs";function n(e){return e}export{n as defineConfig,e as definePlugin,t as resolveConfig};
|
|
2
2
|
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./resolve-config-CBowa3KM.mjs";import{l as t,t as n}from"./tokens-B8Dv91EB.mjs";import{r}from"./schema-Bxzw_P4l.mjs";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{defineGenerator as a,defineSchema as o,useExecution as s}from"@power-plant/core";import{isEmptyObject as c}from"@stryke/type-checks/is-empty-object";import l from"style-dictionary";var u=a({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.7`,tags:[`razorwind`,`dtcg`]},schema:o({schema:r}),input:async r=>{let a=s();if(a.options=await e(a.cwd,r),a.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);t(a.options.plugins,l);let o=a.options.tokens;(!o||c(o))&&(o=await n(a.options,{cwd:a.cwd,tokensPath:i(a.options.tokensPath)?a.options.tokensPath:void 0}));let u={tokens:o??{},components:{}};for(let e of a.options.plugins.filter(e=>e.extract))u=await e.extract(u,a.options);if(!u.tokens||c(u.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of a.options.plugins.filter(e=>e.validate))await e.validate(u,a.options);return u},generator:async e=>{let t=s(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);Object.assign(n,i)}return n}});export{u as t};
|
|
2
|
+
//# sourceMappingURL=generator-BWQOEMGt.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-BWQOEMGt.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./resolve-config-CBowa3KM.mjs";import{l as t,t as n}from"./tokens-B8Dv91EB.mjs";import{r}from"./schema-Bxzw_P4l.mjs";import{isSetString as i}from"@stryke/type-checks/is-set-string";import{defineGenerator as a,defineSchema as o,useExecution as s}from"@power-plant/core";import{isEmptyObject as c}from"@stryke/type-checks/is-empty-object";import l from"style-dictionary";var u=a({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.6`,tags:[`razorwind`,`dtcg`]},schema:o({schema:r}),input:async r=>{let a=s();if(a.options=await e(a.cwd,r),a.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);t(a.options.plugins,l);let o=a.options.tokens;(!o||c(o))&&(o=await n(a.options,{cwd:a.cwd,tokensPath:i(a.options.tokensPath)?a.options.tokensPath:void 0}));let u={tokens:o??{},components:{}};for(let e of a.options.plugins.filter(e=>e.extract))u=await e.extract(u,a.options);if(!u.tokens||c(u.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of a.options.plugins.filter(e=>e.validate))await e.validate(u,a.options);return u},generator:async e=>{let t=s(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);Object.assign(n,i)}return n}});export{u as t};
|
|
2
|
+
//# sourceMappingURL=generator-DQ1WS7hN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-DQ1WS7hN.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs"),n=require("./tokens-CoQWg4mX.cjs"),r=require("./schema-CLeH9GGy.cjs");let i=require("@stryke/type-checks/is-set-string"),a=require("@power-plant/core"),o=require("@stryke/type-checks/is-empty-object"),s=require("style-dictionary");s=e.t(s,1);var c=(0,a.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.7`,tags:[`razorwind`,`dtcg`]},schema:(0,a.defineSchema)({schema:r.t}),input:async e=>{let r=(0,a.useExecution)();if(r.options=await t.t(r.cwd,e),r.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);n.l(r.options.plugins,s.default);let c=r.options.tokens;(!c||(0,o.isEmptyObject)(c))&&(c=await n.t(r.options,{cwd:r.cwd,tokensPath:(0,i.isSetString)(r.options.tokensPath)?r.options.tokensPath:void 0}));let l={tokens:c??{},components:{}};for(let e of r.options.plugins.filter(e=>e.extract))l=await e.extract(l,r.options);if(!l.tokens||(0,o.isEmptyObject)(l.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of r.options.plugins.filter(e=>e.validate))await e.validate(l,r.options);return l},generator:async e=>{let t=(0,a.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);Object.assign(n,i)}return n}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return c}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./resolve-config-D7XXy_Qk.cjs"),n=require("./tokens-CoQWg4mX.cjs"),r=require("./schema-CLeH9GGy.cjs");let i=require("@stryke/type-checks/is-set-string"),a=require("@power-plant/core"),o=require("@stryke/type-checks/is-empty-object"),s=require("style-dictionary");s=e.t(s,1);var c=(0,a.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`0.0.6`,tags:[`razorwind`,`dtcg`]},schema:(0,a.defineSchema)({schema:r.t}),input:async e=>{let r=(0,a.useExecution)();if(r.options=await t.t(r.cwd,e),r.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);n.l(r.options.plugins,s.default);let c=r.options.tokens;(!c||(0,o.isEmptyObject)(c))&&(c=await n.t(r.options,{cwd:r.cwd,tokensPath:(0,i.isSetString)(r.options.tokensPath)?r.options.tokensPath:void 0}));let l={tokens:c??{},components:{}};for(let e of r.options.plugins.filter(e=>e.extract))l=await e.extract(l,r.options);if(!l.tokens||(0,o.isEmptyObject)(l.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of r.options.plugins.filter(e=>e.validate))await e.validate(l,r.options);return l},generator:async e=>{let t=(0,a.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);Object.assign(n,i)}return n}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return c}});
|
package/dist/generator.cjs
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
`;)i++;i<e.length&&(t+=e[i]);continue}if(a===`/`&&o===`*`){for(i+=2;i<e.length;){if(e[i]===`*`&&e[i+1]===`/`){i++;break}e[i]===`
|
|
3
|
-
`&&(t+=`
|
|
4
|
-
`),i++}continue}if(a===`,`){let t=i+1;for(;t<e.length;){for(;/\s/.test(e[t]??``);)t++;if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<e.length&&e[t]!==`
|
|
5
|
-
`&&e[t]!==`\r`;)t++;continue}if(e[t]===`/`&&e[t+1]===`*`){for(t+=2;t<e.length&&(e[t]!==`*`||e[t+1]!==`/`);)t++;t+=2;continue}break}if(e[t]===`}`||e[t]===`]`)continue}t+=a}return t}function we(e){if(e.startsWith(`#`)||e.startsWith(`.`)||(0,re.isAbsolute)(e))return null;let t=e.split(`/`);return e.startsWith(`@`)?t.length<2?null:{packageName:`${t[0]}/${t[1]}`}:{packageName:t[0]}}const Te=new Map,I=new Map;function Ee(e){let t=[],n=!1,r=0;for(let i of e.split(`
|
|
6
|
-
`)){let e=i.trim();if(!e||e.startsWith(`#`))continue;let a=i.match(/^(\s*)([\w-]+)\s*:/);if(a){r=a[1]?.length??0,n=a[2]===`packages`;continue}if(!n)continue;let o=i.match(/^(\s*)-\s*(.+?)\s*(?:#.*)?$/);((!o||o[1]?.length)??r>=0)||t.push(o[2]?.trim().replace(/^["']|["']$/g,``)??``)}return t}async function De(e){let t=[],n=g.default.resolve(e,`pnpm-workspace.yaml`);if((0,b.existsSync)(n)){let e=await(0,y.readFile)(n);t.push(...Ee(e))}let r=(0,p.joinPaths)(e,`package.json`);if((0,b.existsSync)(r))try{let e=await(0,v.readJsonFile)(r),n=Array.isArray(e.workspaces)?e.workspaces:e.workspaces?.packages;Array.isArray(n)&&t.push(...n.filter(e=>!e.startsWith(`!`)))}catch{}return Array.from(new Set(t))}async function Oe(e){let t=await De(e),n=new Map;if(!t.length)return n;let r=await(0,h.default)(t.map(e=>g.default.posix.join(e.split(g.default.sep).join(`/`),`package.json`)),{cwd:e,ignore:[`**/node_modules/**`]});for(let t of r){let r=g.default.resolve(e,g.default.dirname(t)),i=(await N(r))?.name;i&&n.set(i,{packageName:i,packageRoot:r})}return n}async function ke(e,t){let n=(0,S.getWorkspaceRoot)(e);if(!n)return null;let r=Te.get(n);if(r?.has(t))return r.get(t)??null;let i=await Oe(n);return Te.set(n,i),i.get(t)??null}function Ae(e,t){if(t===`.`)return e;let n=t.slice(2).replace(/\/\*$/,``);return n?`${e}/${n}`:e}async function je(e){let t=`${e.packageRoot}:${e.packageName}`,n=I.get(t);if(n)return n;let r=(await N(e.packageRoot))?.exports;if(!r||typeof r!=`object`||Array.isArray(r))return I.set(t,[]),[];let i=[];for(let[t,n]of Object.entries(r)){if(t!==`.`&&!t.startsWith(`./`))continue;let r=A(n);if(!r)continue;let a=Ae(e.packageName,t);i.push({key:t.includes(`*`)?`${a}/*`:a,aliasBase:a,target:r,emitMode:se(r),hasWildcard:t.includes(`*`),rootDir:e.packageRoot})}return I.set(t,i),i}async function Me(e,t){let n=we(e);if(!n?.packageName)return null;let r=await ke(t,n.packageName);return r?ce(e,await je(r)):null}async function Ne(e,t){let n=t.cwd??t.baseUrl??(0,S.getWorkspaceRoot)();if(e.startsWith(`#`)){let t=await fe(e,n);if(t)return{path:t.path,source:`package_imports`,matchedAlias:t.matchedAlias,matchedTarget:t.matchedTarget,emitMode:t.emitMode}}let r=await Me(e,n);return r?{path:r.path,source:`workspace_package_exports`,matchedAlias:r.matchedAlias,matchedTarget:r.matchedTarget,emitMode:r.emitMode}:Fe(e,t)}function Pe(e){return/^@[^/]+\/[^/]+(?:\/.*)?$/.test(e)}function Fe(e,t){let n=(0,ne.createMatchPath)(t.baseUrl||t.cwd||(0,S.getWorkspaceRoot)(),t.paths??{})(e,void 0,()=>!0,[`.ts`,`.tsx`,`.jsx`,`.js`,`.css`]);if(!n)return null;let r=Ie(e,t.paths??{});return!r&&Pe(e)?null:{path:n,source:`tsconfig_paths`,matchedAlias:r?.key??e,matchedTarget:r?.target??n,emitMode:`strip_extension`}}function Ie(e,t){for(let[n,r]of Object.entries(t)){let t=Array.isArray(r)?r:[r],i=le(e,n);if(i!==null)return{key:n,target:t[0]?.includes(`*`)&&i!==null?t[0].replace(/\*/g,i):t[0]}}return null}const Le=(0,ee.cosmiconfig)(`components`,{searchPlaces:[`components.json`]});async function Re(e){let t=await Ve(e);return t?(t.iconLibrary||=t.style===`new-york`?`radix`:`lucide`,ze(e,t)):null}const L={"@shadcn":`${D}/styles/{style}/{name}.json`};async function ze(e,t){t.registries={...L,...t.registries??{}};let n=await(0,f.loadTsConfig)(e);if(!n)throw Error(`Failed to load tsconfig.json.`);let r=await R(`utils`,t.aliases.utils,e,n),i=await R(`components`,t.aliases.components,e,n),a=t.aliases.ui?await R(`ui`,t.aliases.ui,e,n):g.default.resolve(i??e,`ui`),o=t.aliases.lib?await R(`lib`,t.aliases.lib,e,n):g.default.resolve(r??e,`..`),s=t.aliases.hooks?await R(`hooks`,t.aliases.hooks,e,n):g.default.resolve(i??e,`..`,`hooks`);return Be(e,{components:i,utils:r,ui:a,lib:o,hooks:s}),_.configSchema.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?g.default.resolve(e,t.tailwind.config):``,tailwindCss:g.default.resolve(e,t.tailwind.css),utils:r,components:i,ui:a,lib:o,hooks:s}})}async function R(e,t,n,r){let i=await Ne(t,{...r,cwd:n});if(!i?.path||t.startsWith(`#`)&&i.path===(0,p.joinPaths)(n,t))return null;if(e!==`utils`&&(i.source===`package_imports`||i.source===`workspace_package_exports`)){if(!i.matchedAlias.includes(`*`)&&/\/index\.[^/]+$/.test(i.path))return g.default.dirname(i.path);if(i.matchedAlias.includes(`*`)&&/\.[^/]+$/.test(i.path))return i.path.replace(/\.[^/]+$/,``)}return i.path}function Be(e,t){let n=[`components`,`ui`,`lib`,`hooks`,`utils`].filter(e=>!t[e]);if(n.length)throw Error([`Could not resolve the following aliases in ${m.default.cyan(e)}: ${m.default.cyan(n.join(`, `))}.`,`Configure path aliases in ${m.default.cyan(`tsconfig.json`)} or imports in ${m.default.cyan(`package.json`)} for this workspace and try again.`].join(`
|
|
7
|
-
`))}async function Ve(e){try{let t=await Le.search(e);if(!t)return null;let n=_.rawConfigSchema.parse(t.config);if(n.registries){for(let e of Object.keys(n.registries))if(e in L)throw Error(`"${e}" is a built-in registry and cannot be overridden.`)}return n}catch(t){let n=`${e}/components.json`;throw t instanceof Error&&t.message.includes(`reserved registry`)?t:Error(`Invalid configuration found in ${m.default.cyan(n)}.`)}}function He(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:``,tailwindCss:``,utils:``,components:``,ui:``,lib:``,hooks:``},style:``,tailwind:{config:``,css:``,baseColor:``,cssVariables:!1},rsc:!1,tsx:!0,aliases:{components:``,utils:``},registries:{...L}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths??{}},tailwind:{...t.tailwind,...e.tailwind??{}},aliases:{...t.aliases,...e.aliases??{}},registries:{...t.registries,...e.registries??{}}}:t}const Ue=x.z.object({category:x.z.enum([`block`,`component`,`ui`,`page`]),name:x.z.string(),title:x.z.string(),description:x.z.string().optional(),tags:x.z.array(x.z.string()).optional(),related:x.z.array(x.z.string()).optional(),since:x.z.string().optional(),version:x.z.string().optional(),repository:x.z.string().optional(),homepage:x.z.string().optional(),dependencies:x.z.record(x.z.string(),x.z.string()).optional(),registryDependencies:x.z.record(x.z.string(),x.z.string()).optional(),files:x.z.array(x.z.string()).optional()});x.z.record(x.z.string(),Ue);function We(e){return x.default.unknown().transform((t,n)=>{let r=e.safeParse(t);if(!r.success){for(let e of r.error.issues)n.addIssue({code:`custom`,message:e.message,path:e.path});return x.default.NEVER}return r.data})}const Ge=x.default.union([C.tokensSchema,x.default.record(x.default.string(),C.tokensSchema)]),Ke=x.default.object({registry:We(_.configSchema),tokens:Ge}),qe=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],z=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],Je=z.join(`,`),Ye=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],Xe=`**/*.{${Je}}`,Ze=/^(light|dark|dim|high-contrast|hc|default|base|theme)([._-].+)?$/i,Qe={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},$e=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,et=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,tt=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,nt=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,rt=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,it=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,at=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ot=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,st=/^\{[^{}]+\}$/,ct={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},B=new Set([`px`,`rem`]);function V(e){return Math.min(1,Math.max(0,e))}function H(e,t=100){let n=e.trim();if(n.endsWith(`%`))return V(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return V(r>1?r/255:r)}function lt(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function ut(e){let t=lt(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function dt(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function U(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function W(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function G(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=Qe[n];if(r)return r}}function K(e,t=[]){let n=G(t);if(typeof e==`string`){let r=e.trim();if(st.test(r))return{value:r,type:n};let i=r.match(ot);if(i?.[1])return{value:dt(i[1]),type:n};if($e.test(r))return{value:ut(r),type:`color`};let a=r.match(et);if(a){let e=[H(a[1]),H(a[2]),H(a[3])],t=a[4]?a[4].endsWith(`%`)?V(Number.parseFloat(a[4])/100):V(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=r.match(tt);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?V(Number.parseFloat(o[4])/100):V(Number.parseFloat(o[4]))}:{}},type:`color`};let s=r.match(nt);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?V(Number.parseFloat(s[4])/100):V(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=r.match(rt);if(c){let e=c[2].toLowerCase(),t=Number.parseFloat(c[1]);return B.has(e)?{value:{value:t,unit:e},type:`dimension`}:{value:r,type:n===`dimension`?void 0:n}}let l=r.match(it);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=r.match(at);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ct[r.toLowerCase()];return d===void 0?n===`fontFamily`||/family|font|typeface/i.test(t.at(-1)??``)?r.includes(`,`)?{value:r.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:r.replace(/^["']|["']$/g,``),type:`fontFamily`}:n===`color`&&!r.startsWith(`{`)?{value:r,type:void 0}:{value:r,type:n}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return n===`fontWeight`?{value:e,type:`fontWeight`}:n===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:n===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:n??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(n===`cubicBezier`||t.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:n??`fontFamily`}:{value:e,type:n};if(U(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:B.has(t)?{value:e,type:`dimension`}:{value:e,type:n}}}return{value:e,type:n}}function ft(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=K(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function q(e,t=[]){if(Array.isArray(e))return e.map((e,n)=>q(e,[...t,String(n)]));if(!U(e))return e;if(W(e))return ft(e,t);let n={};for(let[r,i]of Object.entries(e)){if(r.startsWith(`$`)){n[r]=i;continue}n[r]=q(i,[...t,r])}if(!(`$type`in n)){let e=G(t);e&&t.length>0&&(n.$type=e)}return n}function J(e){let t={};for(let[n,r]of Object.entries(e)){let e=n.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let i=t;for(let t=0;t<e.length-1;t++){let n=e[t],r=i[n];U(r)?W(r)&&(i[n]={DEFAULT:r}):i[n]={},i=i[n]}let a=e.at(-1),o=K(r,e),s={$value:o.value,...o.type?{$type:o.type}:{}},c=i[a];U(c)&&!W(c)?c.DEFAULT=s:i[a]=s}return q(t)}const pt=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function mt(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pt)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return J(t)}const Y=`razorwind-infer`;function X(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return q(e)}function ht(e){try{return X(T.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function gt(e){try{return X((0,oe.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function _t(e){try{return X((0,ae.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const vt=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>ht(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>gt(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>_t(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>q(mt(e))}];function yt(){return Object.fromEntries(vt.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function bt(e){return q(e)}function xt(){return{[Y]:bt}}function St(e=d.default){for(let t of vt)e.registerParser(t);e.registerPreprocessor({name:Y,preprocessor:bt})}function Z(e,t){return(0,g.isAbsolute)(t)?t:(0,g.resolve)(e,t)}function Q(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function Ct(e){return z.includes(Q(e))}function wt(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function Tt(e){return(0,p.joinPaths)(e,Xe)}function Et(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e;if(n){let e=Z(t,n);if(!(0,w.existsSync)(e))throw Error(`tokensPath "${n}" does not exist (resolved: ${e}).`);return(0,E.isDirectory)(e)?{resolvedPath:e,source:[Tt(e)],origin:`tokensPath`}:wt(e)?{resolvedPath:e,source:[],origin:`tokensPath`}:{resolvedPath:e,source:[e],origin:`tokensPath`}}for(let e of Ye){let n=Z(t,e);if((0,w.existsSync)(n)){if((0,E.isDirectory)(n))return{resolvedPath:n,source:[Tt(n)],origin:`default`};if(wt(n))return{resolvedPath:n,source:[],origin:`default`};if(Ct(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=Z(t,e);if(!(!(0,w.existsSync)(n)||(0,E.isDirectory)(n))&&(Ct(n)||Q(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Dt(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(Ze)?.[1]?.toLowerCase()}let Ot=!1;function kt(){Ot||=(St(d.default),!0)}function At(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function jt(e){let t=await(0,ie.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Mt(e){kt();let t=new d.default({...e,parsers:[...qe,...e.parsers??[]],preprocessors:[Y,...e.preprocessors??[]],hooks:{...e.hooks,parsers:{...yt(),...e.hooks?.parsers},preprocessors:{...xt(),...e.hooks?.preprocessors}},usesDtcg:e.usesDtcg??!0,platforms:e.platforms??{}});return await t.hasInitialized,t}async function $(e){return e.length===0?{}:(await Mt({source:e})).tokens}async function Nt(e){return(await(0,h.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Pt(e){let t=await Nt(e);if(t.length===0)return{};let n=new Map,r=[];for(let e of t){let t=Dt(e);if(t){let r=n.get(t)??[];r.push(e),n.set(t,r)}else r.push(e)}if(n.size<2)return $(e);let i={};if(r.length>0){let e=await $(r);At(e)||(i.base=e)}for(let[e,t]of n)i[e]=await $(t);return i}async function Ft(e){let{splitThemes:t=!0,...n}=e,r=Et(n);return r.resolvedPath&&(0,w.existsSync)(r.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,g.basename)(r.resolvedPath))?(await Mt(await jt(r.resolvedPath))).tokens:r.source.length===0?{}:t?Pt(r.source):$(r.source)}async function It(){try{return await import(`@tailwindcss/node`)}catch(e){throw Error(`Cannot load '@tailwindcss/node'. Install tailwindcss v4 / @tailwindcss/node to extract workspace theme tokens.`,{cause:e})}}function Lt(e,t){return(0,g.isAbsolute)(t)?t:(0,g.resolve)(e,t)}async function Rt(e,t){let n=await he(e,{configCssFile:t??void 0});if(n?.tailwindVersion)return{configured:!!n.tailwindCssFile,version:n.tailwindVersion,cssFile:n.tailwindCssFile,configFile:n.tailwindConfigFile};let[r,i]=await Promise.all([F(e),_e(e,t??void 0)]);return{configured:!!(r&&i),version:r,cssFile:i,configFile:null}}function zt(e,t){for(let n of t){if(!(0,u.isSetString)(n))continue;let t=Lt(e,n);if((0,w.existsSync)(t))return t}return null}async function Bt(e){let{cwd:t,cssPath:n,omitDefaults:r=!1}=e,i=await Rt(t,n);if(!i.configured||i.version!==`v4`)return null;let a=zt(t,[n,i.cssFile]);if(!a)return null;let o=await(0,y.readFile)(a),s=await(await It()).__unstable__loadDesignSystem(o,{base:(0,g.dirname)(a)}),c={};for(let[e,t]of s.theme.entries())r&&(t.options&4)==4||!e.startsWith(`--`)||!t.value||(c[e]=t.value);return Object.keys(c).length===0?null:J(c)}function Vt(e){return!e||typeof e!=`object`||Object.keys(e).length===0}var Ht=(0,c.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:`1.0`,tags:[`razorwind`,`dtcg`]},schema:Ke,input:async e=>{let{registryPath:t,tokensPath:n}=e,{cwd:r}=(0,c.useExecution)(),i=(0,u.isSetString)(t)?(0,l.findFilePath)(t):r,a=await Re(i)??He({resolvedPaths:{cwd:i}});St(d.default);let o=[a.resolvedPaths?.tailwindCss,a.tailwind?.css],s;if((0,u.isSetString)(n))s=await Ft({cwd:r,tokensPath:n});else{let e=await Rt(r,a.tailwind?.css);e.configured&&e.version===`v4`&&(s=await Bt({cwd:r,cssPath:a.resolvedPaths?.tailwindCss??a.tailwind?.css??e.cssFile})),Vt(s)&&(s=await Ft({cwd:r,fallbackPaths:o}))}return{registry:a,tokens:s??{}}},generator:async(e,t)=>({})});module.exports=Ht;
|
|
1
|
+
const e=require("./generator-DjAElWpu.cjs");module.exports=e.t;
|
package/dist/generator.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
1
|
+
import { t as Schema } from "./schema-1EWJvc56.cjs";
|
|
2
|
+
import { n as Options } from "./config-Dj6RrLde.cjs";
|
|
3
|
+
import "./index-COAOe8bR.cjs";
|
|
3
4
|
//#region src/generator.d.ts
|
|
4
5
|
/**
|
|
5
6
|
* A Power Plant generator for Razorwind.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @returns Generated documents keyed by output filename.
|
|
8
|
+
* Orchestrates configured {@link Plugin}s: Style Dictionary parsers /
|
|
9
|
+
* preprocessors, then `extract` → `validate` on input, then `generate`.
|
|
10
10
|
*/
|
|
11
|
-
declare const _default: import("@power-plant/core").GeneratorConfigObject<Schema,
|
|
11
|
+
declare const _default: import("@power-plant/core").GeneratorConfigObject<Schema, Options, void>;
|
|
12
12
|
export = _default;
|
|
13
13
|
//# sourceMappingURL=generator.d.cts.map
|