@gemini-suite/vera-cli 0.1.2-next.0

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/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit guidelines.
4
+
5
+ <!-- MONOWEAVE:BELOW -->
6
+
7
+ ## [0.1.1](https://github.com/Volue/vera/compare/@gemini-suite/vera-cli@0.1.0...@gemini-suite/vera-cli@0.1.1) "@gemini-suite/vera-cli" (2026-02-12)
8
+
9
+
10
+
11
+
12
+ ## [0.1.0](https://github.com/Volue/vera/compare/@gemini-suite/vera-cli@0.0.0...@gemini-suite/vera-cli@0.1.0) "@gemini-suite/vera-cli" (2026-01-28)
13
+
14
+
15
+ ### Features
16
+
17
+ * add simple CLI and CC plugin ([#706](https://github.com/Volue/vera/issues/706)) ([e1c5234](https://github.com/Volue/vera/commit/e1c5234dd4b73ac444f30d5eca7e241160a9887a))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * streamline docs explorer ([b876537](https://github.com/Volue/vera/commit/b8765377526fb1814c94f745f4f63f1b0731fcc4))
23
+
24
+
25
+
package/README.md ADDED
@@ -0,0 +1,112 @@
1
+ # @gemini-suite/vera-cli
2
+
3
+ > [!NOTE]
4
+ > Experimental. Feedback welcome.
5
+
6
+ A simple CLI and Claude Code plugin for working with Wave Design System.
7
+
8
+ ## CLI Usage
9
+
10
+ ```bash
11
+ npx @gemini-suite/vera-cli <command>
12
+ ```
13
+
14
+ ### Commands
15
+
16
+ **Icons** - list, search, and get icon details:
17
+
18
+ ```bash
19
+ npx @gemini-suite/vera-cli icons list
20
+ npx @gemini-suite/vera-cli icons search arrow
21
+ npx @gemini-suite/vera-cli icons get ArrowRight
22
+ ```
23
+
24
+ **Tokens** - list design tokens by category:
25
+
26
+ ```bash
27
+ npx @gemini-suite/vera-cli tokens
28
+ npx @gemini-suite/vera-cli tokens colors
29
+ npx @gemini-suite/vera-cli tokens space --json
30
+ ```
31
+
32
+ **Media** - list responsive breakpoints:
33
+
34
+ ```bash
35
+ npx @gemini-suite/vera-cli media
36
+ npx @gemini-suite/vera-cli media --json
37
+ ```
38
+
39
+ ## Claude Code Plugin
40
+
41
+ This package also serves as a Claude Code plugin with skills and agents for AI-assisted development. Use this as an alternative to the [Wave MCP server](../mcp#readme).
42
+
43
+ ### Installation
44
+
45
+ #### Quick Install
46
+
47
+ ```bash
48
+ # Add the marketplace (run inside Claude Code)
49
+ /plugin marketplace add volue/wave
50
+
51
+ # Install the plugin
52
+ /plugin install wave@wave-marketplace
53
+ ```
54
+
55
+ Or using the CLI outside of Claude Code:
56
+
57
+ ```bash
58
+ claude plugin marketplace add volue/wave
59
+ claude plugin install wave@wave-marketplace
60
+ ```
61
+
62
+ > [!NOTE]
63
+ > There's currently a [bug in Claude Code](https://github.com/anthropics/claude-code/issues/15791) where plugins installed at project level (`--scope project`) in one repo won't appear in the install list for other repos.
64
+
65
+ #### Team Setup (optional)
66
+
67
+ To have team members automatically prompted to install the plugin, add to `.claude/settings.json`:
68
+
69
+ ```json
70
+ {
71
+ "extraKnownMarketplaces": {
72
+ "wave-marketplace": {
73
+ "source": {
74
+ "source": "github",
75
+ "repo": "volue/wave"
76
+ }
77
+ }
78
+ },
79
+ "enabledPlugins": {
80
+ "wave@wave-marketplace": true
81
+ }
82
+ }
83
+ ```
84
+
85
+ #### Manage the Plugin
86
+
87
+ ```bash
88
+ # View installed plugins
89
+ /plugin
90
+
91
+ # Disable without uninstalling
92
+ /plugin disable wave@wave-marketplace
93
+
94
+ # Re-enable
95
+ /plugin enable wave@wave-marketplace
96
+
97
+ # Uninstall completely
98
+ /plugin uninstall wave@wave-marketplace
99
+
100
+ # Update to latest version
101
+ /plugin marketplace update wave-marketplace
102
+ ```
103
+
104
+ ### Skills
105
+
106
+ - `wave-docs` - Wave documentation lookup
107
+ - `wave-icons` - Icon lookup and usage guidance
108
+ - `wave-styling` - Styling APIs and design token usage
109
+
110
+ ### Agents
111
+
112
+ - `wave-docs-explorer` - Explore and search Wave documentation
package/dist/index.js ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+ var w=Object.defineProperty;var a=(o,n)=>w(o,"name",{value:n,configurable:!0});import{command as f,cli as A}from"cleye";import*as I from"@gemini-suite/design-icons";import*as k from"@gemini-suite/design-media-queries";var y="0.1.2-next.0",P={version:y};function d(o){return JSON.stringify(o,null,2)}a(d,"formatJson");function b(o){return o.map(n=>`- ${n}`).join(`
3
+ `)}a(b,"formatList");const L=f({name:"icons",parameters:["[action]","[query]"],flags:{json:{type:Boolean,description:"Output as JSON"}},help:{description:"List and search Wave Design System icons",examples:["wave-cli icons list","wave-cli icons search arrow","wave-cli icons get ArrowRight"]}},o=>{const n=o._.action??"list",e=o._.query,c=o.flags.json??!1;switch(n){case"list":{const t=u().map(r=>r.name);console.log(c?d(t):b(t));return}case"search":{e||(console.error("Usage: wave-cli icons search <term>"),process.exit(1));const r=z(u(),e).map(g=>g.name);r.length===0?console.log(`No icons found matching "${e}"`):console.log(c?d(r):b(r));return}case"get":{e||(console.error("Usage: wave-cli icons get <name>"),process.exit(1));const t=R(u(),e);t||(console.error(`Icon "${e}" not found`),process.exit(1)),G(t,c);return}}console.error(`Unknown action: ${n}. Use: list, search, get`),process.exit(1)});function u(){return Object.entries(I).map(([o,n])=>({name:o,svg:n}))}a(u,"listIcons");function R(o,n){const e=n.trim().toLowerCase();return o.find(c=>c.name.toLowerCase()===e)}a(R,"findIconByName");function z(o,n){const e=n.trim().toLowerCase();return o.filter(c=>c.name.toLowerCase().includes(e))}a(z,"searchIcons");function G(o,n){if(n){console.log(d({name:o.name,svg:o.svg,react:`<SvgIcon iconName="${o.name}" />`,html:`<div class="svgIcon svgIcon--stroked">
4
+ <svg focusable="false" aria-hidden="true">
5
+ <use xlink:href="#svg--${o.name}"></use>
6
+ </svg>
7
+ </div>`}));return}console.log(`# ${o.name}
8
+
9
+ ## React component:
10
+
11
+ \`\`\`tsx
12
+ <SvgIcon iconName="${o.name}" />
13
+ \`\`\`
14
+
15
+ ## HTML markup:
16
+
17
+ \`\`\`html
18
+ <div class="svgIcon svgIcon--stroked">
19
+ <svg focusable="false" aria-hidden="true">
20
+ <use xlink:href="#svg--${o.name}"></use>
21
+ </svg>
22
+ </div>
23
+ \`\`\`
24
+
25
+ ## Raw SVG:
26
+
27
+ \`\`\`svg
28
+ ${o.svg}
29
+ \`\`\``)}a(G,"printIconDetails");const O=f({name:"media",flags:{json:{type:Boolean,description:"Output as JSON"}},help:{description:"List media query breakpoints for responsive styling",examples:["wave-cli media","wave-cli media --json"]}},o=>{const{json:n}=o.flags;if(n){console.log(d(k));return}console.log(b(Object.entries(k).map(([e,c])=>`@${String(e)}: ${c}`)))});function s(){return s=Object.assign?Object.assign.bind():function(o){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var c in e)({}).hasOwnProperty.call(e,c)&&(o[c]=e[c])}return o},s.apply(null,arguments)}a(s,"_extends");const T="#ffffff",M="#f9fafb",W="#f3f5f6",N="#e6ebec",C="#c2cdd0",H="#9dafb3",$="#789297",j="#53747b",E="#2f565e",q="#223f44",_="#1c353a",U="#082d35",J="#f8fbfc",F="#f3f8f9",V="#e8f1f3",X="#c4dbe0",Y="#a8cbd3",K="#7eb0bc",Q="#5b9ba9",Z="#388597",oo="#157084",no="#11596a",eo="#0c4957",co="#f0fcff",ao="#e1f9ff",to="#d0f6ff",ro="#bff3ff",so="#9aecff",lo="#00cceb",io="#00a7c2",go="#008299",fo="#006c80",bo="#005766",uo="#eeffef",mo="#dbffdf",po="#c6ffcd",ko="#b0ffbb",vo="#7dfd95",So="#31d962",ho="#1eb84f",Bo="#1d873c",Do="#187233",xo="#125426",wo="#fff9ed",Ao="#fff2da",Io="#ffecc8",yo="#ffdd99",Po="#ffd787",Lo="#ffcd61",Ro="#ffb900",zo="#dc9f00",Go="#b17600",Oo="#805400",To="#fff7f8",Mo="#ffeff0",Wo="#ffdbde",No="#ffbfc1",Co="#ffadb1",Ho="#ff7d89",$o="#ff3b3d",jo="#df001f",Eo="#b20016",qo="#9d0012",_o="#f7e6e8",Uo="#ecc7c9",Jo="#e6a1a5",Fo="#eb7072",Vo="#bb3a42",Xo="#faebdc",Yo="#f5caa3",Ko="#eda35e",Qo="#e57b1a",Zo="#a4540a",on="#f4edde",nn="#e8cf96",en="#d8b155",cn="#b89749",an="#7f672e",tn="#fcfcdb",rn="#e8e54c",sn="#cbc920",dn="#afad07",ln="#767605",gn="#f1fcdc",fn="#cbed7a",bn="#a7d441",un="#84ba12",mn="#587d0c",pn="#dff5e1",kn="#ade2b0",vn="#76ce7a",Sn="#3fb845",hn="#2a792e",Bn="#dcf4ef",Dn="#a7dfd6",xn="#6fc9ba",wn="#3ab19e",An="#25796b",In="#e3f1f6",yn="#b1dae4",Pn="#7ac4d3",Ln="#42abc2",Rn="#297585",zn="#e6eff7",Gn="#bfd5e9",On="#93bbdf",Tn="#60a1df",Mn="#346da2",Wn="#ecedf9",Nn="#cccfee",Cn="#aab2e9",Hn="#7f94f2",$n="#4b5cdd",jn="#f4eaf8",En="#e2c6ec",qn="#d2a1e3",_n="#c574e4",Un="#9e3dc2",Jn="#f8e9f2",Fn="#ebc5de",Vn="#e29dc9",Xn="#e26ab5",Yn="#b53b8c",Kn="#ffffff",Qn="#f9fafb",Zn="#f3f5f6",oe="#e6ebec",ne="#53747b",ee="#223f44",ce="#082d35",ae="#f8fbfc",te="#f3f8f9",re="#e8f1f3",se="#f3f8f9",de="#e8f1f3",le="#c4dbe0",ie="#e8f1f3",ge="#c4dbe0",fe="#a8cbd3",be="#5b9ba9",ue="#388597",me="#157084",pe="#157084",ke="#11596a",ve="#0c4957",Se="#fff7f8",he="#ffeff0",Be="#ffdbde",De="#ffeff0",xe="#ffdbde",we="#ffbfc1",Ae="#ff3b3d",Ie="#df001f",ye="#b20016",Pe="#df001f",Le="#b20016",Re="#9d0012",ze="#fff9ed",Ge="#fff2da",Oe="#ffecc8",Te="#fff2da",Me="#ffecc8",We="#ffdd99",Ne="#ffb900",Ce="#dc9f00",He="#b17600",$e="#dc9f00",je="#b17600",Ee="#805400",qe="#eeffef",_e="#dbffdf",Ue="#c6ffcd",Je="#dbffdf",Fe="#c6ffcd",Ve="#b0ffbb",Xe="#1eb84f",Ye="#1d873c",Ke="#187233",Qe="#1d873c",Ze="#187233",oc="#125426",nc="#f0fcff",ec="#e1f9ff",cc="#d0f6ff",ac="#e1f9ff",tc="#d0f6ff",rc="#bff3ff",sc="#00a7c2",dc="#008299",lc="#006c80",ic="#008299",gc="#006c80",fc="#005766",bc="#e6ebec",uc="#f3f5f6",mc="#082d35",pc="#223f44",kc="#53747b",vc="#9dafb3",Sc="#0c4957",hc="#157084",Bc="#388597",Dc="#9d0012",xc="#b20016",wc="#ff3b3d",Ac="#805400",Ic="#b17600",yc="#ffb900",Pc="#082d35",Lc="#125426",Rc="#187233",zc="#1eb84f",Gc="#005766",Oc="#006c80",Tc="#00a7c2",Mc="#9dafb3",Wc="#c2cdd0",Nc="#ffffff",Cc="#e6ebec",Hc="#c2cdd0",$c="#9dafb3",jc="#2f565e",Ec="#082d35",qc="#c4dbe0",_c="#a8cbd3",Uc="#7eb0bc",Jc="#5b9ba9",Fc="#388597",Vc="#11596a",Xc="#ffbfc1",Yc="#df001f",Kc="#b20016",Qc="#ffd787",Zc="#dc9f00",oa="#b17600",na="#7dfd95",ea="#1d873c",ca="#187233",aa="#9aecff",ta="#008299",ra="#006c80",sa="#e6ebec",da="#f3f5f6",la="rgba(255, 255, 255, 0.85)",ia="255, 255, 255",ga="230, 235, 236",fa="83, 116, 123",ba="34, 63, 68",ua="232, 241, 243",ma="91, 155, 169",pa="21, 112, 132",ka="255, 239, 240",va="255, 59, 61",Sa="223, 0, 31",ha="255, 242, 218",Ba="255, 185, 0",Da="220, 159, 0",xa="219, 255, 223",wa="30, 184, 79",Aa="29, 135, 60",Ia="225, 249, 255",ya="0, 167, 194",Pa="0, 130, 153",La="220, 244, 239",Ra="167, 223, 214",za="111, 201, 186",Ga="58, 177, 158",Oa="37, 121, 107",Ta="244, 234, 248",Ma="226, 198, 236",Wa="210, 161, 227",Na="197, 116, 228",Ca="158, 61, 194",Ha="248, 233, 242",$a="235, 197, 222",ja="226, 157, 201",Ea="226, 106, 181",qa="181, 59, 140",_a="227, 241, 246",Ua="177, 218, 228",Ja="122, 196, 211",Fa="66, 171, 194",Va="41, 117, 133",Xa="230, 239, 247",Ya="191, 213, 233",Ka="147, 187, 223",Qa="96, 161, 223",Za="52, 109, 162",ot="236, 237, 249",nt="204, 207, 238",et="170, 178, 233",ct="127, 148, 242",at="75, 92, 221",tt="223, 245, 225",rt="173, 226, 176",st="118, 206, 122",dt="63, 184, 69",lt="42, 121, 46",it="241, 252, 220",gt="203, 237, 122",ft="167, 212, 65",bt="132, 186, 18",ut="88, 125, 12",mt="250, 235, 220",pt="245, 202, 163",kt="237, 163, 94",vt="229, 123, 26",St="164, 84, 10",ht="252, 252, 219",Bt="232, 229, 76",Dt="203, 201, 32",xt="175, 173, 7",wt="118, 118, 5",At="244, 237, 222",It="232, 207, 150",yt="216, 177, 85",Pt="184, 151, 73",Lt="127, 103, 46",Rt="247, 230, 232",zt="236, 199, 201",Gt="230, 161, 165",Ot="235, 112, 114",Tt="187, 58, 66",Mt={colorWhite:T,colorGray0:M,colorGray5:W,colorGray10:N,colorGray20:C,colorGray30:H,colorGray40:$,colorGray60:j,colorGray70:E,colorGray80:q,colorGray90:_,colorGray100:U,colorAccent0:J,colorAccent5:F,colorAccent10:V,colorAccent20:X,colorAccent30:Y,colorAccent40:K,colorAccent60:Q,colorAccent70:Z,colorAccent80:oo,colorAccent90:no,colorAccent100:eo,colorBlue5:co,colorBlue10:ao,colorBlue20:to,colorBlue30:ro,colorBlue40:so,colorBlue60:lo,colorBlue70:io,colorBlue80:go,colorBlue90:fo,colorBlue100:bo,colorGreen5:uo,colorGreen10:mo,colorGreen20:po,colorGreen30:ko,colorGreen40:vo,colorGreen60:So,colorGreen70:ho,colorGreen80:Bo,colorGreen90:Do,colorGreen100:xo,colorOrange5:wo,colorOrange10:Ao,colorOrange20:Io,colorOrange30:yo,colorOrange40:Po,colorOrange60:Lo,colorOrange70:Ro,colorOrange80:zo,colorOrange90:Go,colorOrange100:Oo,colorRed5:To,colorRed10:Mo,colorRed20:Wo,colorRed30:No,colorRed40:Co,colorRed60:Ho,colorRed70:$o,colorRed80:jo,colorRed90:Eo,colorRed100:qo},Wt={dataRed20:_o,dataRed40:Uo,dataRed60:Jo,dataRed80:Fo,dataRed100:Vo,dataOrange20:Xo,dataOrange40:Yo,dataOrange60:Ko,dataOrange80:Qo,dataOrange100:Zo,dataBrown20:on,dataBrown40:nn,dataBrown60:en,dataBrown80:cn,dataBrown100:an,dataPear20:tn,dataPear40:rn,dataPear60:sn,dataPear80:dn,dataPear100:ln,dataLime20:gn,dataLime40:fn,dataLime60:bn,dataLime80:un,dataLime100:mn,dataGreen20:pn,dataGreen40:kn,dataGreen60:vn,dataGreen80:Sn,dataGreen100:hn,dataTeal20:Bn,dataTeal40:Dn,dataTeal60:xn,dataTeal80:wn,dataTeal100:An,dataAqua20:In,dataAqua40:yn,dataAqua60:Pn,dataAqua80:Ln,dataAqua100:Rn,dataBlue20:zn,dataBlue40:Gn,dataBlue60:On,dataBlue80:Tn,dataBlue100:Mn,dataLazuli20:Wn,dataLazuli40:Nn,dataLazuli60:Cn,dataLazuli80:Hn,dataLazuli100:$n,dataPurple20:jn,dataPurple40:En,dataPurple60:qn,dataPurple80:_n,dataPurple100:Un,dataPink20:Jn,dataPink40:Fn,dataPink60:Vn,dataPink80:Xn,dataPink100:Yn},Nt={backgroundNeutralMinimal:Kn,backgroundNeutralSubtle:Qn,backgroundNeutralModerate:Zn,backgroundNeutral:oe,backgroundNeutralBold:ne,backgroundNeutralStrong:ee,backgroundNeutralContrast:ce,backgroundAccentMinimal:ae,backgroundAccentMinimalHover:te,backgroundAccentMinimalActive:re,backgroundAccentSubtle:se,backgroundAccentSubtleHover:de,backgroundAccentSubtleActive:le,backgroundAccent:ie,backgroundAccentHover:ge,backgroundAccentActive:fe,backgroundAccentBold:be,backgroundAccentBoldHover:ue,backgroundAccentBoldActive:me,backgroundAccentStrong:pe,backgroundAccentStrongHover:ke,backgroundAccentStrongActive:ve,backgroundDangerSubtle:Se,backgroundDangerSubtleHover:he,backgroundDangerSubtleActive:Be,backgroundDanger:De,backgroundDangerHover:xe,backgroundDangerActive:we,backgroundDangerBold:Ae,backgroundDangerBoldHover:Ie,backgroundDangerBoldActive:ye,backgroundDangerStrong:Pe,backgroundDangerStrongHover:Le,backgroundDangerStrongActive:Re,backgroundWarningSubtle:ze,backgroundWarningSubtleHover:Ge,backgroundWarningSubtleActive:Oe,backgroundWarning:Te,backgroundWarningHover:Me,backgroundWarningActive:We,backgroundWarningBold:Ne,backgroundWarningBoldHover:Ce,backgroundWarningBoldActive:He,backgroundWarningStrong:$e,backgroundWarningStrongHover:je,backgroundWarningStrongActive:Ee,backgroundSuccessSubtle:qe,backgroundSuccessSubtleHover:_e,backgroundSuccessSubtleActive:Ue,backgroundSuccess:Je,backgroundSuccessHover:Fe,backgroundSuccessActive:Ve,backgroundSuccessBold:Xe,backgroundSuccessBoldHover:Ye,backgroundSuccessBoldActive:Ke,backgroundSuccessStrong:Qe,backgroundSuccessStrongHover:Ze,backgroundSuccessStrongActive:oc,backgroundInfoSubtle:nc,backgroundInfoSubtleHover:ec,backgroundInfoSubtleActive:cc,backgroundInfo:ac,backgroundInfoHover:tc,backgroundInfoActive:rc,backgroundInfoBold:sc,backgroundInfoBoldHover:dc,backgroundInfoBoldActive:lc,backgroundInfoStrong:ic,backgroundInfoStrongHover:gc,backgroundInfoStrongActive:fc,backgroundDisabled:bc,backgroundDisabledSubtle:uc},Ct={foregroundNeutral:mc,foregroundNeutralModerate:pc,foregroundNeutralSubtle:kc,foregroundNeutralMinimal:vc,foregroundAccent:Sc,foregroundAccentModerate:hc,foregroundAccentSubtle:Bc,foregroundDanger:Dc,foregroundDangerModerate:xc,foregroundDangerSubtle:wc,foregroundWarning:Ac,foregroundWarningModerate:Ic,foregroundWarningSubtle:yc,foregroundWarningInverse:Pc,foregroundSuccess:Lc,foregroundSuccessModerate:Rc,foregroundSuccessSubtle:zc,foregroundInfo:Gc,foregroundInfoModerate:Oc,foregroundInfoSubtle:Tc,foregroundDisabled:Mc,foregroundDisabledSubtle:Wc,foregroundInverse:Nc},Ht={borderNeutralSubtle:Cc,borderNeutralModerate:Hc,borderNeutral:$c,borderNeutralBold:jc,borderNeutralContrast:Ec,borderAccentModerate:qc,borderAccent:_c,borderAccentHover:Uc,borderAccentActive:Jc,borderAccentBold:Fc,borderAccentStrong:Vc,borderDanger:Xc,borderDangerBold:Yc,borderDangerStrong:Kc,borderWarning:Qc,borderWarningBold:Zc,borderWarningStrong:oa,borderSuccess:na,borderSuccessBold:ea,borderSuccessStrong:ca,borderInfo:aa,borderInfoBold:ta,borderInfoStrong:ra,borderDisabled:sa,borderDisabledSubtle:da,borderInverse:la},$t={rgbBackgroundNeutralMinimal:ia,rgbBackgroundNeutral:ga,rgbBackgroundNeutralBold:fa,rgbBackgroundNeutralStrong:ba,rgbBackgroundAccent:ua,rgbBackgroundAccentBold:ma,rgbBackgroundAccentStrong:pa,rgbBackgroundDanger:ka,rgbBackgroundDangerBold:va,rgbBackgroundDangerStrong:Sa,rgbBackgroundWarning:ha,rgbBackgroundWarningBold:Ba,rgbBackgroundWarningStrong:Da,rgbBackgroundSuccess:xa,rgbBackgroundSuccessBold:wa,rgbBackgroundSuccessStrong:Aa,rgbBackgroundInfo:Ia,rgbBackgroundInfoBold:ya,rgbBackgroundInfoStrong:Pa,rgbDataTeal20:La,rgbDataTeal40:Ra,rgbDataTeal60:za,rgbDataTeal80:Ga,rgbDataTeal100:Oa,rgbDataPurple20:Ta,rgbDataPurple40:Ma,rgbDataPurple60:Wa,rgbDataPurple80:Na,rgbDataPurple100:Ca,rgbDataPink20:Ha,rgbDataPink40:$a,rgbDataPink60:ja,rgbDataPink80:Ea,rgbDataPink100:qa,rgbDataAqua20:_a,rgbDataAqua40:Ua,rgbDataAqua60:Ja,rgbDataAqua80:Fa,rgbDataAqua100:Va,rgbDataBlue20:Xa,rgbDataBlue40:Ya,rgbDataBlue60:Ka,rgbDataBlue80:Qa,rgbDataBlue100:Za,rgbDataLazuli20:ot,rgbDataLazuli40:nt,rgbDataLazuli60:et,rgbDataLazuli80:ct,rgbDataLazuli100:at,rgbDataGreen20:tt,rgbDataGreen40:rt,rgbDataGreen60:st,rgbDataGreen80:dt,rgbDataGreen100:lt,rgbDataLime20:it,rgbDataLime40:gt,rgbDataLime60:ft,rgbDataLime80:bt,rgbDataLime100:ut,rgbDataOrange20:mt,rgbDataOrange40:pt,rgbDataOrange60:kt,rgbDataOrange80:vt,rgbDataOrange100:St,rgbDataPear20:ht,rgbDataPear40:Bt,rgbDataPear60:Dt,rgbDataPear80:xt,rgbDataPear100:wt,rgbDataBrown20:At,rgbDataBrown40:It,rgbDataBrown60:yt,rgbDataBrown80:Pt,rgbDataBrown100:Lt,rgbDataRed20:Rt,rgbDataRed40:zt,rgbDataRed60:Gt,rgbDataRed80:Ot,rgbDataRed100:Tt},jt="0 1px 2.5px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.08)), 0 3px 9px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.048))",Et="0 0.4px 2.2px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.022)), 0 1.4px 5px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.04)), 0 5px 14px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.06))",qt="0 0.3px 2px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.015)), 0 1.5px 8px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.024)), 0 4px 16px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.04)), 0 8px 24px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.07))",_t="0 0.7px 2px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.015)), 0 1.6px 8px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.024)), 0 3.3px 16px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.034)), 0 5px 26px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.06)), 0 12px 42px hsla(var(--shadow-color, 191, 74%, 6%), calc(var(--shadow-intensity, 1) * 0.08))";var Ut=Object.freeze({__proto__:null,elevationL:_t,elevationM:qt,elevationS:Et,elevationXs:jt}),i={base:{2:"0.125rem",4:"0.25rem",6:"0.375rem",8:"0.5rem",12:"0.75rem",14:"0.875rem",16:"1rem",20:"1.25rem",24:"1.5rem",28:"1.75rem",32:"2rem",36:"2.25rem",40:"2.5rem",44:"2.75rem",48:"3rem",64:"4rem",72:"4.5rem",80:"5rem",96:"6rem",112:"7rem",128:"8rem"},borderRadius:{xs:"0.25rem",s:"0.375rem",m:"0.5rem",l:"0.75rem",xl:"1rem",full:"100vh"},spacing:{xs:"0.25rem",s:"0.5rem",m:"1rem",l:"1.5rem",xl:"2rem",xxl:"3rem",xxxl:"4.5rem"}},l={font:{family:{base:"'Source Sans Pro', system-ui, -apple-system, 'Segoe UI'",display:"'FK Display', 'Source Sans Pro', system-ui, -apple-system, 'Segoe UI', sans-serif",mono:"ui-monospace, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"},weight:{normal:"400",semibold:"600"}},size:{font:{base:"16px",eta:"12px",zeta:"14px",epsilon:"16px",delta:"19px",gamma:"21px",beta:"28px",alpha:"38px",giga:"51px"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"normal",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",body:"1.5",base:"1.5rem",small:"1.25rem",xSmall:"1.125rem",zeta:"1.714286",epsilon:"1.5",delta:"1.263158",gamma:"1.52381",beta:"1.714286",alpha:"1.263158",giga:"1.411765"}}};function Jt(o){return o.charAt(0).toUpperCase()+o.slice(1)}a(Jt,"capitalizeFirstLetter");var v=Object.keys(i.spacing).reduce(function(o,n){var e;return s({},o,(e={},e["spacing"+Jt(n)]=i.spacing[n],e))},{}),m={colors:s({},Mt,Wt,Nt,Ct,Ht,$t),space:v,zIndices:{auto:"auto",0:"0",1:"100",2:"200",3:"300",4:"400",5:"500",9:"900"},fonts:l.font.family,fontWeights:l.font.weight,fontSizes:l.size.font,lineHeights:l.size.lineHeight,letterSpacings:l.size.letterSpacing,sizes:s({},i.base,{measureNarrow:"30ch",measureMedium:"60ch",measureWide:"90ch",containerNarrow:"32rem",containerMedium:"48rem",containerWide:"74rem"}),radii:s({},i.borderRadius,v),shadows:s({},Ut,{lift:"0 10px 20px -5px rgba(0, 0, 0, 0.15)"})};const p=Object.keys(m),S={colors:"Background, border, text, and fill colors",fonts:"Font family definitions",fontSizes:"Typography scale sizes",fontWeights:"Font weight values",lineHeights:"Line height values",letterSpacings:"Letter spacing values",radii:"Border radius values",sizes:"Width, height, and flex sizing",space:"Margins, padding, and gaps",zIndices:"Z-index layering values",shadows:"Box and text shadow definitions"},h={colors:["background","backgroundColor","backgroundImage","border","borderBlock","borderBlockEnd","borderBlockStart","borderBottom","borderBottomColor","borderColor","borderInline","borderInlineEnd","borderInlineStart","borderLeft","borderLeftColor","borderRight","borderRightColor","borderTop","borderTopColor","caretColor","color","columnRuleColor","fill","outlineColor","stroke","textDecorationColor"],fonts:["fontFamily"],fontSizes:["fontSize"],fontWeights:["fontWeight"],lineHeights:["lineHeight"],letterSpacings:["letterSpacing"],radii:["borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],sizes:["blockSize","minBlockSize","maxBlockSize","inlineSize","minInlineSize","maxInlineSize","width","minWidth","maxWidth","height","minHeight","maxHeight","flexBasis","gridTemplateColumns","gridTemplateRows"],space:["gap","gridGap","columnGap","gridColumnGap","rowGap","gridRowGap","inset","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockEnd","marginBlockStart","marginInline","marginInlineEnd","marginInlineStart","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingInline","paddingInlineEnd","paddingInlineStart","top","right","bottom","left","scrollMargin","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","scrollMarginX","scrollMarginY","scrollMarginBlock","scrollMarginBlockEnd","scrollMarginBlockStart","scrollMarginInline","scrollMarginInlineEnd","scrollMarginInlineStart","scrollPadding","scrollPaddingTop","scrollPaddingRight","scrollPaddingBottom","scrollPaddingLeft","scrollPaddingX","scrollPaddingY","scrollPaddingBlock","scrollPaddingBlockEnd","scrollPaddingBlockStart","scrollPaddingInline","scrollPaddingInlineEnd","scrollPaddingInlineStart"],zIndices:["zIndex"],shadows:["boxShadow","textShadow"]},Ft=f({name:"tokens",parameters:["[category]"],flags:{json:{type:Boolean,description:"Output as JSON"},mappings:{type:Boolean,description:"Include CSS property name mappings"}},help:{description:`List Wave Design System design tokens
30
+
31
+ Categories:
32
+ ${p.map(o=>` ${o.padEnd(15)} ${S[o]}`).join(`
33
+ `)}`,examples:["wave-cli tokens","wave-cli tokens colors","wave-cli tokens space --mappings"]}},o=>{const{category:n}=o._,{json:e,mappings:c}=o.flags;if(!n){x({title:"Wave Design Tokens",tokens:B(),tokenMappings:c?D():void 0,json:e});return}Vt(n)||(console.error(`Invalid category "${n}".
34
+
35
+ Valid categories:
36
+ ${p.map(t=>` ${t.padEnd(15)} ${S[t]}`).join(`
37
+ `)}`),process.exit(1)),x({title:`Wave Design Tokens - ${n}`,tokens:B(n),tokenMappings:c?D(n):void 0,json:e})});function Vt(o){return p.includes(o)}a(Vt,"isValidCategory");function B(o){return o?m[o]:m}a(B,"getTokens");function D(o){return o?h[o]:h}a(D,"getTokenMappings");function x({title:o,tokens:n,tokenMappings:e,json:c}){if(c){console.log(d(e?{tokens:n,mappings:e}:n));return}if(console.log(`# ${o}
38
+ `),console.log(d(n)),e){const t=Array.isArray(e)?`Property names: ${e.join(", ")}`:Object.entries(e).map(([r,g])=>`### ${r}
39
+ Property names: ${g.join(", ")}`).join(`
40
+
41
+ `);console.log(`
42
+ ## CSS Property Name Mappings
43
+
44
+ ${t}`)}}a(x,"printTokens"),A({name:"wave-cli",version:P.version,commands:[L,O,Ft]});
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@gemini-suite/vera-cli",
3
+ "version": "0.1.2-next.0",
4
+ "description": "CLI tool for Wave Design System",
5
+ "license": "UNLICENSED",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Volue/vera",
9
+ "directory": "cli"
10
+ },
11
+ "type": "module",
12
+ "bin": "./dist/index.js",
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "engines": {
17
+ "node": ">=22"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "lint": "eslint . --cache",
24
+ "lint:fix": "yarn run lint --fix",
25
+ "lint:types": "tsc",
26
+ "_prettier": "prettier \"**/*.{json,md,yml}\"",
27
+ "format": "yarn run _prettier --write",
28
+ "test": "run-p lint:types lint \"_prettier --check\" jest",
29
+ "jest": "yarn node --experimental-vm-modules $(yarn bin jest)",
30
+ "clean": "premove dist",
31
+ "build": "yarn run clean && pkgroll --minify",
32
+ "prepack": "yarn run build"
33
+ },
34
+ "dependencies": {
35
+ "@gemini-suite/design-icons": "^1.9.9-next.0",
36
+ "@gemini-suite/design-media-queries": "^1.3.18-next.0",
37
+ "cleye": "1.3.4"
38
+ },
39
+ "devDependencies": {
40
+ "@gemini-suite/vera-react": "1.6.1-next.0",
41
+ "@jest/globals": "30.2.0",
42
+ "@types/jest": "30.0.0",
43
+ "@types/node": "22.19.7",
44
+ "@volue/eslint-config": "1.3.12",
45
+ "eslint": "9.39.2",
46
+ "jest": "30.2.0",
47
+ "npm-run-all2": "8.0.4",
48
+ "pkgroll": "2.24.1",
49
+ "premove": "4.0.0",
50
+ "prettier": "3.8.1",
51
+ "ts-jest": "29.4.6",
52
+ "tsx": "4.21.0",
53
+ "typescript": "5.9.3"
54
+ }
55
+ }