boss-css 0.0.14 → 0.0.16
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/LICENSE +21 -0
- package/README.md +146 -1
- package/dist/ai/server.cjs +1 -0
- package/dist/ai/server.mjs +1 -0
- package/dist/ai/skills.cjs +3 -0
- package/dist/ai/skills.mjs +3 -0
- package/dist/cli/tasks/init.cjs +54 -30
- package/dist/cli/tasks/init.mjs +54 -30
- package/dist/cli/templates/init.cjs +5 -5
- package/dist/cli/templates/init.mjs +5 -5
- package/dist/devtools-app/index.mjs +320 -0
- package/dist/devtools-app/monaco/vs/_commonjsHelpers-CT9FvmAN.js +1 -0
- package/dist/devtools-app/monaco/vs/abap-D-t0cyap.js +1 -0
- package/dist/devtools-app/monaco/vs/apex-CcIm7xu6.js +1 -0
- package/dist/devtools-app/monaco/vs/assets/css.worker-HnVq6Ewq.js +93 -0
- package/dist/devtools-app/monaco/vs/assets/editor.worker-Be8ye1pW.js +26 -0
- package/dist/devtools-app/monaco/vs/assets/html.worker-B51mlPHg.js +470 -0
- package/dist/devtools-app/monaco/vs/assets/json.worker-DKiEKt88.js +58 -0
- package/dist/devtools-app/monaco/vs/assets/ts.worker-CMbG-7ft.js +67731 -0
- package/dist/devtools-app/monaco/vs/azcli-BA0tQDCg.js +1 -0
- package/dist/devtools-app/monaco/vs/basic-languages/monaco.contribution.js +1 -0
- package/dist/devtools-app/monaco/vs/bat-C397hTD6.js +1 -0
- package/dist/devtools-app/monaco/vs/bicep-DF5aW17k.js +2 -0
- package/dist/devtools-app/monaco/vs/cameligo-plsz8qhj.js +1 -0
- package/dist/devtools-app/monaco/vs/clojure-Y2auQMzK.js +1 -0
- package/dist/devtools-app/monaco/vs/coffee-Bu45yuWE.js +1 -0
- package/dist/devtools-app/monaco/vs/cpp-CkKPQIni.js +1 -0
- package/dist/devtools-app/monaco/vs/csharp-CX28MZyh.js +1 -0
- package/dist/devtools-app/monaco/vs/csp-D8uWnyxW.js +1 -0
- package/dist/devtools-app/monaco/vs/css-CaeNmE3S.js +3 -0
- package/dist/devtools-app/monaco/vs/cssMode-CjiAH6dQ.js +1 -0
- package/dist/devtools-app/monaco/vs/cypher-DVThT8BS.js +1 -0
- package/dist/devtools-app/monaco/vs/dart-CmGfCvrO.js +1 -0
- package/dist/devtools-app/monaco/vs/dockerfile-CZqqYdch.js +1 -0
- package/dist/devtools-app/monaco/vs/ecl-30fUercY.js +1 -0
- package/dist/devtools-app/monaco/vs/editor/editor.main.css +1 -0
- package/dist/devtools-app/monaco/vs/editor/editor.main.js +5 -0
- package/dist/devtools-app/monaco/vs/editor.api-CalNCsUg.js +903 -0
- package/dist/devtools-app/monaco/vs/elixir-xjPaIfzF.js +1 -0
- package/dist/devtools-app/monaco/vs/flow9-DqtmStfK.js +1 -0
- package/dist/devtools-app/monaco/vs/freemarker2-Cz_sV6Md.js +3 -0
- package/dist/devtools-app/monaco/vs/fsharp-BOMdg4U1.js +1 -0
- package/dist/devtools-app/monaco/vs/go-D_hbi-Jt.js +1 -0
- package/dist/devtools-app/monaco/vs/graphql-CKUU4kLG.js +1 -0
- package/dist/devtools-app/monaco/vs/handlebars-OwglfO-1.js +1 -0
- package/dist/devtools-app/monaco/vs/hcl-DTaboeZW.js +1 -0
- package/dist/devtools-app/monaco/vs/html-Pa1xEWsY.js +1 -0
- package/dist/devtools-app/monaco/vs/htmlMode-Bz67EXwp.js +1 -0
- package/dist/devtools-app/monaco/vs/ini-CsNwO04R.js +1 -0
- package/dist/devtools-app/monaco/vs/java-CI4ZMsH9.js +1 -0
- package/dist/devtools-app/monaco/vs/javascript-PczUCGdz.js +1 -0
- package/dist/devtools-app/monaco/vs/jsonMode-DULH5oaX.js +7 -0
- package/dist/devtools-app/monaco/vs/julia-BwzEvaQw.js +1 -0
- package/dist/devtools-app/monaco/vs/kotlin-IUYPiTV8.js +1 -0
- package/dist/devtools-app/monaco/vs/language/css/monaco.contribution.js +1 -0
- package/dist/devtools-app/monaco/vs/language/html/monaco.contribution.js +1 -0
- package/dist/devtools-app/monaco/vs/language/json/monaco.contribution.js +1 -0
- package/dist/devtools-app/monaco/vs/language/typescript/monaco.contribution.js +1 -0
- package/dist/devtools-app/monaco/vs/less-C0eDYdqa.js +2 -0
- package/dist/devtools-app/monaco/vs/lexon-iON-Kj97.js +1 -0
- package/dist/devtools-app/monaco/vs/liquid-DqKjdPGy.js +1 -0
- package/dist/devtools-app/monaco/vs/loader.js +1368 -0
- package/dist/devtools-app/monaco/vs/lspLanguageFeatures-kM9O9rjY.js +4 -0
- package/dist/devtools-app/monaco/vs/lua-DtygF91M.js +1 -0
- package/dist/devtools-app/monaco/vs/m3-CsR4AuFi.js +1 -0
- package/dist/devtools-app/monaco/vs/markdown-C_rD0bIw.js +1 -0
- package/dist/devtools-app/monaco/vs/mdx-DEWtB1K5.js +1 -0
- package/dist/devtools-app/monaco/vs/mips-CiYP61RB.js +1 -0
- package/dist/devtools-app/monaco/vs/monaco.contribution-D2OdxNBt.js +1 -0
- package/dist/devtools-app/monaco/vs/monaco.contribution-DO3azKX8.js +1 -0
- package/dist/devtools-app/monaco/vs/monaco.contribution-EcChJV6a.js +1 -0
- package/dist/devtools-app/monaco/vs/monaco.contribution-qLAYrEOP.js +1 -0
- package/dist/devtools-app/monaco/vs/msdax-C38-sJlp.js +1 -0
- package/dist/devtools-app/monaco/vs/mysql-CdtbpvbG.js +1 -0
- package/dist/devtools-app/monaco/vs/nls.messages-loader.js +1 -0
- package/dist/devtools-app/monaco/vs/nls.messages.cs.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.de.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.es.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.fr.js.js +15 -0
- package/dist/devtools-app/monaco/vs/nls.messages.it.js.js +15 -0
- package/dist/devtools-app/monaco/vs/nls.messages.ja.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.js.js +10 -0
- package/dist/devtools-app/monaco/vs/nls.messages.ko.js.js +25 -0
- package/dist/devtools-app/monaco/vs/nls.messages.pl.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.pt-br.js.js +6 -0
- package/dist/devtools-app/monaco/vs/nls.messages.ru.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.tr.js.js +15 -0
- package/dist/devtools-app/monaco/vs/nls.messages.zh-cn.js.js +17 -0
- package/dist/devtools-app/monaco/vs/nls.messages.zh-tw.js.js +15 -0
- package/dist/devtools-app/monaco/vs/objective-c-CntZFaHX.js +1 -0
- package/dist/devtools-app/monaco/vs/pascal-r6kuqfl_.js +1 -0
- package/dist/devtools-app/monaco/vs/pascaligo-BiXoTmXh.js +1 -0
- package/dist/devtools-app/monaco/vs/perl-DABw_TcH.js +1 -0
- package/dist/devtools-app/monaco/vs/pgsql-me_jFXeX.js +1 -0
- package/dist/devtools-app/monaco/vs/php-D_kh-9LK.js +1 -0
- package/dist/devtools-app/monaco/vs/pla-VfZjczW0.js +1 -0
- package/dist/devtools-app/monaco/vs/postiats-BBSzz8Pk.js +1 -0
- package/dist/devtools-app/monaco/vs/powerquery-Dt-g_2cc.js +1 -0
- package/dist/devtools-app/monaco/vs/powershell-B-7ap1zc.js +1 -0
- package/dist/devtools-app/monaco/vs/protobuf-BmtuEB1A.js +2 -0
- package/dist/devtools-app/monaco/vs/pug-BRpRNeEb.js +1 -0
- package/dist/devtools-app/monaco/vs/python-Cr0UkIbn.js +1 -0
- package/dist/devtools-app/monaco/vs/qsharp-BzsFaUU9.js +1 -0
- package/dist/devtools-app/monaco/vs/r-f8dDdrp4.js +1 -0
- package/dist/devtools-app/monaco/vs/razor-BYAHOTkz.js +1 -0
- package/dist/devtools-app/monaco/vs/redis-fvZQY4PI.js +1 -0
- package/dist/devtools-app/monaco/vs/redshift-45Et0LQi.js +1 -0
- package/dist/devtools-app/monaco/vs/restructuredtext-C7UUFKFD.js +1 -0
- package/dist/devtools-app/monaco/vs/ruby-CZO8zYTz.js +1 -0
- package/dist/devtools-app/monaco/vs/rust-Bfetafyc.js +1 -0
- package/dist/devtools-app/monaco/vs/sb-3GYllVck.js +1 -0
- package/dist/devtools-app/monaco/vs/scala-foMgrKo1.js +1 -0
- package/dist/devtools-app/monaco/vs/scheme-CHdMtr7p.js +1 -0
- package/dist/devtools-app/monaco/vs/scss-C1cmLt9V.js +3 -0
- package/dist/devtools-app/monaco/vs/shell-ClXCKCEW.js +1 -0
- package/dist/devtools-app/monaco/vs/solidity-MZ6ExpPy.js +1 -0
- package/dist/devtools-app/monaco/vs/sophia-DWkuSsPQ.js +1 -0
- package/dist/devtools-app/monaco/vs/sparql-AUGFYSyk.js +1 -0
- package/dist/devtools-app/monaco/vs/sql-32GpJSV2.js +1 -0
- package/dist/devtools-app/monaco/vs/st-CuDFIVZ_.js +1 -0
- package/dist/devtools-app/monaco/vs/swift-n-2HociN.js +3 -0
- package/dist/devtools-app/monaco/vs/systemverilog-Ch4vA8Yt.js +1 -0
- package/dist/devtools-app/monaco/vs/tcl-D74tq1nH.js +1 -0
- package/dist/devtools-app/monaco/vs/tsMode-CZz1Umrk.js +11 -0
- package/dist/devtools-app/monaco/vs/twig-C6taOxMV.js +1 -0
- package/dist/devtools-app/monaco/vs/typescript-DfOrAzoV.js +1 -0
- package/dist/devtools-app/monaco/vs/typespec-D-PIh9Xw.js +1 -0
- package/dist/devtools-app/monaco/vs/vb-Dyb2648j.js +1 -0
- package/dist/devtools-app/monaco/vs/wgsl-BhLXMOR0.js +298 -0
- package/dist/devtools-app/monaco/vs/workers-DcJshg-q.js +1 -0
- package/dist/devtools-app/monaco/vs/xml-CdsdnY8S.js +1 -0
- package/dist/devtools-app/monaco/vs/yaml-DYGvmE88.js +1 -0
- package/dist/eslint-plugin/index.cjs +5 -2
- package/dist/eslint-plugin/index.mjs +5 -2
- package/dist/eslint-plugin/rules/prefer-unitless-values.cjs +217 -0
- package/dist/eslint-plugin/rules/prefer-unitless-values.mjs +217 -0
- package/dist/eslint-plugin/utils/api.cjs +3 -4
- package/dist/eslint-plugin/utils/api.mjs +2 -2
- package/dist/native/server.cjs +4 -4
- package/dist/native/server.mjs +4 -4
- package/dist/parser/jsx/extractCode.cjs +3 -2
- package/dist/parser/jsx/extractCode.mjs +3 -2
- package/dist/parser/jsx/extractProps.cjs +7 -1
- package/dist/parser/jsx/extractProps.mjs +7 -1
- package/dist/parser/jsx/server.cjs +13 -7
- package/dist/parser/jsx/server.mjs +13 -7
- package/dist/prop/at/shared.cjs +3 -3
- package/dist/prop/at/shared.mjs +3 -3
- package/dist/tasks/postcss.cjs +16 -5
- package/dist/tasks/postcss.mjs +16 -5
- package/dist/transform/cache.cjs +0 -3
- package/dist/transform/cache.mjs +0 -2
- package/dist/use/token/browser.cjs +17 -9
- package/dist/use/token/browser.mjs +18 -10
- package/dist/use/token/normalize.cjs +474 -0
- package/dist/use/token/normalize.mjs +473 -0
- package/dist/use/token/propMap.cjs +34 -5
- package/dist/use/token/propMap.mjs +34 -6
- package/dist/use/token/runtime-only.cjs +36 -47
- package/dist/use/token/runtime-only.mjs +37 -48
- package/dist/use/token/server.cjs +82 -15
- package/dist/use/token/server.mjs +83 -17
- package/dist/use/token/vars.cjs +14 -2
- package/dist/use/token/vars.mjs +15 -2
- package/package.json +13 -13
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const require_normalize = require('./normalize.cjs');
|
|
1
2
|
const require_vars = require('./vars.cjs');
|
|
2
3
|
const require_propMap = require('./propMap.cjs');
|
|
3
4
|
|
|
@@ -59,26 +60,13 @@ const tokenState = /* @__PURE__ */ new WeakMap();
|
|
|
59
60
|
const tokenAlphaKeyPattern = /^[a-zA-Z0-9_.-]+$/;
|
|
60
61
|
const getTokenState = (api) => {
|
|
61
62
|
if (tokenState.has(api)) return tokenState.get(api);
|
|
62
|
-
const
|
|
63
|
-
const byProp = /* @__PURE__ */ new Map();
|
|
64
|
-
for (const [group, values] of Object.entries(tokens)) {
|
|
65
|
-
const propsToMap = require_propMap.propMap.get(group) ?? new Set([group]);
|
|
66
|
-
for (const prop of propsToMap) {
|
|
67
|
-
const dashProp = api?.camelCaseToDash ? api.camelCaseToDash(prop) : prop;
|
|
68
|
-
byProp.set(prop, values);
|
|
69
|
-
byProp.set(dashProp, values);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const state = {
|
|
73
|
-
groups: tokens,
|
|
74
|
-
byProp
|
|
75
|
-
};
|
|
63
|
+
const state = { groups: require_normalize.normalizeTokens(mergeTokens(defaultTokens, api.tokens)) };
|
|
76
64
|
tokenState.set(api, state);
|
|
77
65
|
return state;
|
|
78
66
|
};
|
|
79
67
|
const resolveTokenParts = (values, pathParts) => {
|
|
80
68
|
if (!pathParts.length) return values;
|
|
81
|
-
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key], values);
|
|
69
|
+
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key]?.$value ?? acc?.[key], values);
|
|
82
70
|
};
|
|
83
71
|
const parseTokenAlphaValue = (value) => {
|
|
84
72
|
const slashIndex = value.lastIndexOf("/");
|
|
@@ -111,49 +99,50 @@ const getTokenPath = (api, prop, value) => {
|
|
|
111
99
|
source: "group"
|
|
112
100
|
};
|
|
113
101
|
if (typeof value !== "string") return null;
|
|
114
|
-
const {
|
|
102
|
+
const { groups } = getTokenState(api);
|
|
115
103
|
const dashProp = api?.camelCaseToDash ? api.camelCaseToDash(prop) : prop;
|
|
116
|
-
const groupCandidates = [
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const
|
|
135
|
-
if (
|
|
136
|
-
|
|
137
|
-
if (
|
|
104
|
+
const groupCandidates = [];
|
|
105
|
+
const seen = /* @__PURE__ */ new Set();
|
|
106
|
+
const addCandidate = (group) => {
|
|
107
|
+
if (!group || seen.has(group)) return;
|
|
108
|
+
seen.add(group);
|
|
109
|
+
groupCandidates.push(group);
|
|
110
|
+
};
|
|
111
|
+
for (const group of require_propMap.getTokenGroupsForProp(prop)) addCandidate(group);
|
|
112
|
+
for (const group of require_propMap.getTokenGroupsForProp(dashProp)) addCandidate(group);
|
|
113
|
+
addCandidate(prop);
|
|
114
|
+
addCandidate(dashProp);
|
|
115
|
+
if (!groupCandidates.length) return null;
|
|
116
|
+
if (typeof value !== "string") return null;
|
|
117
|
+
const tokenAlphaCandidate = parseTokenAlphaValue(value);
|
|
118
|
+
const baseParts = tokenAlphaCandidate ? tokenAlphaCandidate.base.split(".") : [];
|
|
119
|
+
const rawParts = value.split(".");
|
|
120
|
+
const colorTokens = groups?.color;
|
|
121
|
+
for (const group of groupCandidates) {
|
|
122
|
+
const values = groups?.[group];
|
|
123
|
+
if (!values) continue;
|
|
124
|
+
if (tokenAlphaCandidate && values === colorTokens) {
|
|
125
|
+
if (resolveTokenParts(values, baseParts) === void 0) continue;
|
|
126
|
+
if (tokenAlphaCandidate.alpha === null) return null;
|
|
138
127
|
return {
|
|
139
|
-
path: `${
|
|
128
|
+
path: `${group}.${tokenAlphaCandidate.base}`,
|
|
140
129
|
source: "prop",
|
|
141
130
|
values,
|
|
142
|
-
alpha:
|
|
131
|
+
alpha: tokenAlphaCandidate.alpha,
|
|
143
132
|
selectorValue: value
|
|
144
133
|
};
|
|
145
134
|
}
|
|
146
|
-
if (resolveTokenParts(values,
|
|
147
|
-
path: `${
|
|
135
|
+
if (resolveTokenParts(values, rawParts) !== void 0) return {
|
|
136
|
+
path: `${group}.${value}`,
|
|
137
|
+
source: "prop",
|
|
138
|
+
values
|
|
139
|
+
};
|
|
140
|
+
if (value in values) return {
|
|
141
|
+
path: `${group}.${value}`,
|
|
148
142
|
source: "prop",
|
|
149
143
|
values
|
|
150
144
|
};
|
|
151
145
|
}
|
|
152
|
-
if (value in values) return {
|
|
153
|
-
path: `${groupName}.${value}`,
|
|
154
|
-
source: "prop",
|
|
155
|
-
values
|
|
156
|
-
};
|
|
157
146
|
return null;
|
|
158
147
|
};
|
|
159
148
|
const resolveRuntimeToken = (api, prop, value) => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { normalizeTokens } from "./normalize.mjs";
|
|
1
2
|
import { createTokenVars } from "./vars.mjs";
|
|
2
|
-
import {
|
|
3
|
+
import { getTokenGroupsForProp, setTokenPropGroups } from "./propMap.mjs";
|
|
3
4
|
|
|
4
5
|
//#region src/use/token/runtime-only.ts
|
|
5
6
|
let currentApi = null;
|
|
@@ -59,26 +60,13 @@ const tokenState = /* @__PURE__ */ new WeakMap();
|
|
|
59
60
|
const tokenAlphaKeyPattern = /^[a-zA-Z0-9_.-]+$/;
|
|
60
61
|
const getTokenState = (api) => {
|
|
61
62
|
if (tokenState.has(api)) return tokenState.get(api);
|
|
62
|
-
const
|
|
63
|
-
const byProp = /* @__PURE__ */ new Map();
|
|
64
|
-
for (const [group, values] of Object.entries(tokens)) {
|
|
65
|
-
const propsToMap = propMap.get(group) ?? new Set([group]);
|
|
66
|
-
for (const prop of propsToMap) {
|
|
67
|
-
const dashProp = api?.camelCaseToDash ? api.camelCaseToDash(prop) : prop;
|
|
68
|
-
byProp.set(prop, values);
|
|
69
|
-
byProp.set(dashProp, values);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const state = {
|
|
73
|
-
groups: tokens,
|
|
74
|
-
byProp
|
|
75
|
-
};
|
|
63
|
+
const state = { groups: normalizeTokens(mergeTokens(defaultTokens, api.tokens)) };
|
|
76
64
|
tokenState.set(api, state);
|
|
77
65
|
return state;
|
|
78
66
|
};
|
|
79
67
|
const resolveTokenParts = (values, pathParts) => {
|
|
80
68
|
if (!pathParts.length) return values;
|
|
81
|
-
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key], values);
|
|
69
|
+
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key]?.$value ?? acc?.[key], values);
|
|
82
70
|
};
|
|
83
71
|
const parseTokenAlphaValue = (value) => {
|
|
84
72
|
const slashIndex = value.lastIndexOf("/");
|
|
@@ -111,49 +99,50 @@ const getTokenPath = (api, prop, value) => {
|
|
|
111
99
|
source: "group"
|
|
112
100
|
};
|
|
113
101
|
if (typeof value !== "string") return null;
|
|
114
|
-
const {
|
|
102
|
+
const { groups } = getTokenState(api);
|
|
115
103
|
const dashProp = api?.camelCaseToDash ? api.camelCaseToDash(prop) : prop;
|
|
116
|
-
const groupCandidates = [
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const
|
|
135
|
-
if (
|
|
136
|
-
|
|
137
|
-
if (
|
|
104
|
+
const groupCandidates = [];
|
|
105
|
+
const seen = /* @__PURE__ */ new Set();
|
|
106
|
+
const addCandidate = (group) => {
|
|
107
|
+
if (!group || seen.has(group)) return;
|
|
108
|
+
seen.add(group);
|
|
109
|
+
groupCandidates.push(group);
|
|
110
|
+
};
|
|
111
|
+
for (const group of getTokenGroupsForProp(prop)) addCandidate(group);
|
|
112
|
+
for (const group of getTokenGroupsForProp(dashProp)) addCandidate(group);
|
|
113
|
+
addCandidate(prop);
|
|
114
|
+
addCandidate(dashProp);
|
|
115
|
+
if (!groupCandidates.length) return null;
|
|
116
|
+
if (typeof value !== "string") return null;
|
|
117
|
+
const tokenAlphaCandidate = parseTokenAlphaValue(value);
|
|
118
|
+
const baseParts = tokenAlphaCandidate ? tokenAlphaCandidate.base.split(".") : [];
|
|
119
|
+
const rawParts = value.split(".");
|
|
120
|
+
const colorTokens = groups?.color;
|
|
121
|
+
for (const group of groupCandidates) {
|
|
122
|
+
const values = groups?.[group];
|
|
123
|
+
if (!values) continue;
|
|
124
|
+
if (tokenAlphaCandidate && values === colorTokens) {
|
|
125
|
+
if (resolveTokenParts(values, baseParts) === void 0) continue;
|
|
126
|
+
if (tokenAlphaCandidate.alpha === null) return null;
|
|
138
127
|
return {
|
|
139
|
-
path: `${
|
|
128
|
+
path: `${group}.${tokenAlphaCandidate.base}`,
|
|
140
129
|
source: "prop",
|
|
141
130
|
values,
|
|
142
|
-
alpha:
|
|
131
|
+
alpha: tokenAlphaCandidate.alpha,
|
|
143
132
|
selectorValue: value
|
|
144
133
|
};
|
|
145
134
|
}
|
|
146
|
-
if (resolveTokenParts(values,
|
|
147
|
-
path: `${
|
|
135
|
+
if (resolveTokenParts(values, rawParts) !== void 0) return {
|
|
136
|
+
path: `${group}.${value}`,
|
|
137
|
+
source: "prop",
|
|
138
|
+
values
|
|
139
|
+
};
|
|
140
|
+
if (value in values) return {
|
|
141
|
+
path: `${group}.${value}`,
|
|
148
142
|
source: "prop",
|
|
149
143
|
values
|
|
150
144
|
};
|
|
151
145
|
}
|
|
152
|
-
if (value in values) return {
|
|
153
|
-
path: `${groupName}.${value}`,
|
|
154
|
-
source: "prop",
|
|
155
|
-
values
|
|
156
|
-
};
|
|
157
146
|
return null;
|
|
158
147
|
};
|
|
159
148
|
const resolveRuntimeToken = (api, prop, value) => {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_normalize = require('./normalize.cjs');
|
|
2
3
|
const require_propMap = require('./propMap.cjs');
|
|
3
4
|
let ts_deepmerge = require("ts-deepmerge");
|
|
4
5
|
|
|
5
6
|
//#region src/use/token/server.ts
|
|
6
7
|
var server_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
7
8
|
getTokenGroupForProp: () => require_propMap.getTokenGroupForProp,
|
|
9
|
+
getTokenGroupsForProp: () => require_propMap.getTokenGroupsForProp,
|
|
8
10
|
getTokenPropGroups: () => require_propMap.getTokenPropGroups,
|
|
9
11
|
getTokens: () => getTokens,
|
|
10
12
|
name: () => name,
|
|
@@ -17,12 +19,14 @@ var server_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
17
19
|
setTokenPropGroups: () => require_propMap.setTokenPropGroups
|
|
18
20
|
});
|
|
19
21
|
const name = "token";
|
|
22
|
+
let rawOriginals = {};
|
|
20
23
|
let originals = {};
|
|
21
24
|
const getTokens = () => originals;
|
|
22
25
|
const set = (input) => {
|
|
23
26
|
const resolvedInput = typeof input === "object" ? input : input(valueMap);
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
rawOriginals = (0, ts_deepmerge.merge)(rawOriginals, resolvedInput);
|
|
28
|
+
originals = require_normalize.normalizeTokens(rawOriginals);
|
|
29
|
+
for (const [key, value] of Object.entries(originals)) {
|
|
26
30
|
const propsToMap = require_propMap.propMap.get(key) || [key];
|
|
27
31
|
for (const prop of propsToMap) valueMap.set(prop, value);
|
|
28
32
|
}
|
|
@@ -72,7 +76,7 @@ const parseTokenAlphaValue = (value) => {
|
|
|
72
76
|
};
|
|
73
77
|
const resolveTokenParts = (values, pathParts) => {
|
|
74
78
|
if (!pathParts.length) return values;
|
|
75
|
-
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key], values);
|
|
79
|
+
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key]?.$value ?? acc?.[key], values);
|
|
76
80
|
};
|
|
77
81
|
const warnAlpha = (message) => {
|
|
78
82
|
if (alphaWarnings.has(message)) return;
|
|
@@ -96,6 +100,7 @@ const emitAllTokenVars = (api) => {
|
|
|
96
100
|
for (const [group, value] of Object.entries(originals)) addTokenVars(group, value);
|
|
97
101
|
};
|
|
98
102
|
const onBoot = async (api) => {
|
|
103
|
+
rawOriginals = {};
|
|
99
104
|
hasTokens = false;
|
|
100
105
|
hasProxyTokens = false;
|
|
101
106
|
hasTokenOverrides = false;
|
|
@@ -257,23 +262,84 @@ const onPropTree = async (api, { tree, parser }) => {
|
|
|
257
262
|
if (typeof pathString !== "string") return;
|
|
258
263
|
const [tokenGroupName, ...rest] = pathString.split(".");
|
|
259
264
|
const isExplicitToken = isTokenCodeString || typeof prop.value === "string" && prop.value.startsWith("$$.token.");
|
|
260
|
-
const groupForProp = typeof name === "string" ? require_propMap.getTokenGroupForProp(name) : null;
|
|
261
|
-
const resolvedGroupName = isExplicitToken ? tokenGroupName : groupForProp ?? tokenGroupName;
|
|
262
265
|
const { aliases } = descriptor;
|
|
263
|
-
const valuesByGroupName = valueMap.get(resolvedGroupName) ?? valueMap.get(tokenGroupName);
|
|
264
|
-
const values = aliases.reduce((acc, alias) => {
|
|
265
|
-
if (acc) return acc;
|
|
266
|
-
const direct = valueMap.get(alias);
|
|
267
|
-
if (direct) return direct;
|
|
268
|
-
const dashed = api.camelCaseToDash(alias);
|
|
269
|
-
return valueMap.get(dashed) || null;
|
|
270
|
-
}, null) || valuesByGroupName;
|
|
271
|
-
if (!values) return;
|
|
272
266
|
const rawValue = prop.value;
|
|
267
|
+
const dashName = typeof name === "string" ? api.camelCaseToDash(name) : "";
|
|
268
|
+
const groupCandidates = [];
|
|
269
|
+
const seenCandidates = /* @__PURE__ */ new Set();
|
|
270
|
+
const addCandidate = (group) => {
|
|
271
|
+
if (!group || seenCandidates.has(group)) return;
|
|
272
|
+
seenCandidates.add(group);
|
|
273
|
+
groupCandidates.push(group);
|
|
274
|
+
};
|
|
275
|
+
const addGroupsForProp = (propName) => {
|
|
276
|
+
if (!propName) return;
|
|
277
|
+
for (const group of require_propMap.getTokenGroupsForProp(propName)) addCandidate(group);
|
|
278
|
+
};
|
|
279
|
+
if (typeof name === "string") {
|
|
280
|
+
addGroupsForProp(name);
|
|
281
|
+
if (dashName && dashName !== name) addGroupsForProp(dashName);
|
|
282
|
+
}
|
|
283
|
+
for (const alias of aliases) {
|
|
284
|
+
addGroupsForProp(alias);
|
|
285
|
+
const dashedAlias = api.camelCaseToDash(alias);
|
|
286
|
+
if (dashedAlias && dashedAlias !== alias) addGroupsForProp(dashedAlias);
|
|
287
|
+
}
|
|
288
|
+
const addOriginalGroup = (groupName) => {
|
|
289
|
+
if (!groupName) return;
|
|
290
|
+
if (Object.prototype.hasOwnProperty.call(originals, groupName)) addCandidate(groupName);
|
|
291
|
+
};
|
|
292
|
+
if (typeof name === "string") {
|
|
293
|
+
addOriginalGroup(name);
|
|
294
|
+
if (dashName && dashName !== name) addOriginalGroup(dashName);
|
|
295
|
+
}
|
|
296
|
+
for (const alias of aliases) {
|
|
297
|
+
addOriginalGroup(alias);
|
|
298
|
+
const dashedAlias = api.camelCaseToDash(alias);
|
|
299
|
+
if (dashedAlias && dashedAlias !== alias) addOriginalGroup(dashedAlias);
|
|
300
|
+
}
|
|
301
|
+
const getOriginalGroupValues = (group) => originals[group];
|
|
302
|
+
let resolvedGroupName = isExplicitToken ? tokenGroupName : require_propMap.getTokenGroupForProp(String(name)) ?? tokenGroupName;
|
|
303
|
+
let values = null;
|
|
304
|
+
if (isExplicitToken) {
|
|
305
|
+
const valuesByGroupName = getOriginalGroupValues(resolvedGroupName) ?? getOriginalGroupValues(tokenGroupName) ?? valueMap.get(resolvedGroupName) ?? valueMap.get(tokenGroupName);
|
|
306
|
+
const valuesByPropName = aliases.reduce((acc, alias) => {
|
|
307
|
+
if (acc) return acc;
|
|
308
|
+
const direct = getOriginalGroupValues(alias) ?? valueMap.get(alias);
|
|
309
|
+
if (direct) return direct;
|
|
310
|
+
const dashed = api.camelCaseToDash(alias);
|
|
311
|
+
return getOriginalGroupValues(dashed) ?? valueMap.get(dashed) ?? null;
|
|
312
|
+
}, null);
|
|
313
|
+
values = valuesByGroupName || valuesByPropName;
|
|
314
|
+
} else if (typeof rawValue === "string") {
|
|
315
|
+
const tokenAlphaCandidate = parseTokenAlphaValue(rawValue);
|
|
316
|
+
const baseParts = tokenAlphaCandidate ? tokenAlphaCandidate.base.split(".") : [];
|
|
317
|
+
const rawParts = rawValue.split(".");
|
|
318
|
+
const colorTokens$1 = getOriginalGroupValues("color");
|
|
319
|
+
for (const group of groupCandidates) {
|
|
320
|
+
const groupValues = getOriginalGroupValues(group);
|
|
321
|
+
if (!groupValues) continue;
|
|
322
|
+
if (tokenAlphaCandidate && groupValues === colorTokens$1) {
|
|
323
|
+
if (resolveTokenParts(groupValues, baseParts) !== void 0) {
|
|
324
|
+
resolvedGroupName = group;
|
|
325
|
+
values = groupValues;
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (resolveTokenParts(groupValues, rawParts) !== void 0) {
|
|
331
|
+
resolvedGroupName = group;
|
|
332
|
+
values = groupValues;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (!values) return;
|
|
273
338
|
const colorTokens = valueMap.get("color");
|
|
274
339
|
const tokenAlpha = typeof rawValue === "string" && values && colorTokens && values === colorTokens ? parseTokenAlphaValue(rawValue) : null;
|
|
275
340
|
if (tokenAlpha) {
|
|
276
|
-
const
|
|
341
|
+
const baseParts = tokenAlpha.base.split(".");
|
|
342
|
+
const baseValue = resolveTokenParts(values, baseParts);
|
|
277
343
|
if (baseValue === void 0) {
|
|
278
344
|
warnAlpha(`Unknown token "${tokenAlpha.base}" for "${name}:${rawValue}".`);
|
|
279
345
|
return;
|
|
@@ -316,6 +382,7 @@ const onPropTree = async (api, { tree, parser }) => {
|
|
|
316
382
|
|
|
317
383
|
//#endregion
|
|
318
384
|
exports.getTokenGroupForProp = require_propMap.getTokenGroupForProp;
|
|
385
|
+
exports.getTokenGroupsForProp = require_propMap.getTokenGroupsForProp;
|
|
319
386
|
exports.getTokenPropGroups = require_propMap.getTokenPropGroups;
|
|
320
387
|
exports.getTokens = getTokens;
|
|
321
388
|
exports.name = name;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { __exportAll } from "../../_virtual/rolldown_runtime.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { normalizeTokens } from "./normalize.mjs";
|
|
3
|
+
import { getTokenGroupForProp, getTokenGroupsForProp, getTokenPropGroups, propMap, setTokenPropGroups } from "./propMap.mjs";
|
|
3
4
|
import { merge } from "ts-deepmerge";
|
|
4
5
|
|
|
5
6
|
//#region src/use/token/server.ts
|
|
6
7
|
var server_exports = /* @__PURE__ */ __exportAll({
|
|
7
8
|
getTokenGroupForProp: () => getTokenGroupForProp,
|
|
9
|
+
getTokenGroupsForProp: () => getTokenGroupsForProp,
|
|
8
10
|
getTokenPropGroups: () => getTokenPropGroups,
|
|
9
11
|
getTokens: () => getTokens,
|
|
10
12
|
name: () => name,
|
|
@@ -17,12 +19,14 @@ var server_exports = /* @__PURE__ */ __exportAll({
|
|
|
17
19
|
setTokenPropGroups: () => setTokenPropGroups
|
|
18
20
|
});
|
|
19
21
|
const name = "token";
|
|
22
|
+
let rawOriginals = {};
|
|
20
23
|
let originals = {};
|
|
21
24
|
const getTokens = () => originals;
|
|
22
25
|
const set = (input) => {
|
|
23
26
|
const resolvedInput = typeof input === "object" ? input : input(valueMap);
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
rawOriginals = merge(rawOriginals, resolvedInput);
|
|
28
|
+
originals = normalizeTokens(rawOriginals);
|
|
29
|
+
for (const [key, value] of Object.entries(originals)) {
|
|
26
30
|
const propsToMap = propMap.get(key) || [key];
|
|
27
31
|
for (const prop of propsToMap) valueMap.set(prop, value);
|
|
28
32
|
}
|
|
@@ -72,7 +76,7 @@ const parseTokenAlphaValue = (value) => {
|
|
|
72
76
|
};
|
|
73
77
|
const resolveTokenParts = (values, pathParts) => {
|
|
74
78
|
if (!pathParts.length) return values;
|
|
75
|
-
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key], values);
|
|
79
|
+
return pathParts.reduce((acc, key) => acc?.[key]?.value ?? acc?.[key]?.$value ?? acc?.[key], values);
|
|
76
80
|
};
|
|
77
81
|
const warnAlpha = (message) => {
|
|
78
82
|
if (alphaWarnings.has(message)) return;
|
|
@@ -96,6 +100,7 @@ const emitAllTokenVars = (api) => {
|
|
|
96
100
|
for (const [group, value] of Object.entries(originals)) addTokenVars(group, value);
|
|
97
101
|
};
|
|
98
102
|
const onBoot = async (api) => {
|
|
103
|
+
rawOriginals = {};
|
|
99
104
|
hasTokens = false;
|
|
100
105
|
hasProxyTokens = false;
|
|
101
106
|
hasTokenOverrides = false;
|
|
@@ -257,23 +262,84 @@ const onPropTree = async (api, { tree, parser }) => {
|
|
|
257
262
|
if (typeof pathString !== "string") return;
|
|
258
263
|
const [tokenGroupName, ...rest] = pathString.split(".");
|
|
259
264
|
const isExplicitToken = isTokenCodeString || typeof prop.value === "string" && prop.value.startsWith("$$.token.");
|
|
260
|
-
const groupForProp = typeof name === "string" ? getTokenGroupForProp(name) : null;
|
|
261
|
-
const resolvedGroupName = isExplicitToken ? tokenGroupName : groupForProp ?? tokenGroupName;
|
|
262
265
|
const { aliases } = descriptor;
|
|
263
|
-
const valuesByGroupName = valueMap.get(resolvedGroupName) ?? valueMap.get(tokenGroupName);
|
|
264
|
-
const values = aliases.reduce((acc, alias) => {
|
|
265
|
-
if (acc) return acc;
|
|
266
|
-
const direct = valueMap.get(alias);
|
|
267
|
-
if (direct) return direct;
|
|
268
|
-
const dashed = api.camelCaseToDash(alias);
|
|
269
|
-
return valueMap.get(dashed) || null;
|
|
270
|
-
}, null) || valuesByGroupName;
|
|
271
|
-
if (!values) return;
|
|
272
266
|
const rawValue = prop.value;
|
|
267
|
+
const dashName = typeof name === "string" ? api.camelCaseToDash(name) : "";
|
|
268
|
+
const groupCandidates = [];
|
|
269
|
+
const seenCandidates = /* @__PURE__ */ new Set();
|
|
270
|
+
const addCandidate = (group) => {
|
|
271
|
+
if (!group || seenCandidates.has(group)) return;
|
|
272
|
+
seenCandidates.add(group);
|
|
273
|
+
groupCandidates.push(group);
|
|
274
|
+
};
|
|
275
|
+
const addGroupsForProp = (propName) => {
|
|
276
|
+
if (!propName) return;
|
|
277
|
+
for (const group of getTokenGroupsForProp(propName)) addCandidate(group);
|
|
278
|
+
};
|
|
279
|
+
if (typeof name === "string") {
|
|
280
|
+
addGroupsForProp(name);
|
|
281
|
+
if (dashName && dashName !== name) addGroupsForProp(dashName);
|
|
282
|
+
}
|
|
283
|
+
for (const alias of aliases) {
|
|
284
|
+
addGroupsForProp(alias);
|
|
285
|
+
const dashedAlias = api.camelCaseToDash(alias);
|
|
286
|
+
if (dashedAlias && dashedAlias !== alias) addGroupsForProp(dashedAlias);
|
|
287
|
+
}
|
|
288
|
+
const addOriginalGroup = (groupName) => {
|
|
289
|
+
if (!groupName) return;
|
|
290
|
+
if (Object.prototype.hasOwnProperty.call(originals, groupName)) addCandidate(groupName);
|
|
291
|
+
};
|
|
292
|
+
if (typeof name === "string") {
|
|
293
|
+
addOriginalGroup(name);
|
|
294
|
+
if (dashName && dashName !== name) addOriginalGroup(dashName);
|
|
295
|
+
}
|
|
296
|
+
for (const alias of aliases) {
|
|
297
|
+
addOriginalGroup(alias);
|
|
298
|
+
const dashedAlias = api.camelCaseToDash(alias);
|
|
299
|
+
if (dashedAlias && dashedAlias !== alias) addOriginalGroup(dashedAlias);
|
|
300
|
+
}
|
|
301
|
+
const getOriginalGroupValues = (group) => originals[group];
|
|
302
|
+
let resolvedGroupName = isExplicitToken ? tokenGroupName : getTokenGroupForProp(String(name)) ?? tokenGroupName;
|
|
303
|
+
let values = null;
|
|
304
|
+
if (isExplicitToken) {
|
|
305
|
+
const valuesByGroupName = getOriginalGroupValues(resolvedGroupName) ?? getOriginalGroupValues(tokenGroupName) ?? valueMap.get(resolvedGroupName) ?? valueMap.get(tokenGroupName);
|
|
306
|
+
const valuesByPropName = aliases.reduce((acc, alias) => {
|
|
307
|
+
if (acc) return acc;
|
|
308
|
+
const direct = getOriginalGroupValues(alias) ?? valueMap.get(alias);
|
|
309
|
+
if (direct) return direct;
|
|
310
|
+
const dashed = api.camelCaseToDash(alias);
|
|
311
|
+
return getOriginalGroupValues(dashed) ?? valueMap.get(dashed) ?? null;
|
|
312
|
+
}, null);
|
|
313
|
+
values = valuesByGroupName || valuesByPropName;
|
|
314
|
+
} else if (typeof rawValue === "string") {
|
|
315
|
+
const tokenAlphaCandidate = parseTokenAlphaValue(rawValue);
|
|
316
|
+
const baseParts = tokenAlphaCandidate ? tokenAlphaCandidate.base.split(".") : [];
|
|
317
|
+
const rawParts = rawValue.split(".");
|
|
318
|
+
const colorTokens$1 = getOriginalGroupValues("color");
|
|
319
|
+
for (const group of groupCandidates) {
|
|
320
|
+
const groupValues = getOriginalGroupValues(group);
|
|
321
|
+
if (!groupValues) continue;
|
|
322
|
+
if (tokenAlphaCandidate && groupValues === colorTokens$1) {
|
|
323
|
+
if (resolveTokenParts(groupValues, baseParts) !== void 0) {
|
|
324
|
+
resolvedGroupName = group;
|
|
325
|
+
values = groupValues;
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (resolveTokenParts(groupValues, rawParts) !== void 0) {
|
|
331
|
+
resolvedGroupName = group;
|
|
332
|
+
values = groupValues;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (!values) return;
|
|
273
338
|
const colorTokens = valueMap.get("color");
|
|
274
339
|
const tokenAlpha = typeof rawValue === "string" && values && colorTokens && values === colorTokens ? parseTokenAlphaValue(rawValue) : null;
|
|
275
340
|
if (tokenAlpha) {
|
|
276
|
-
const
|
|
341
|
+
const baseParts = tokenAlpha.base.split(".");
|
|
342
|
+
const baseValue = resolveTokenParts(values, baseParts);
|
|
277
343
|
if (baseValue === void 0) {
|
|
278
344
|
warnAlpha(`Unknown token "${tokenAlpha.base}" for "${name}:${rawValue}".`);
|
|
279
345
|
return;
|
|
@@ -315,4 +381,4 @@ const onPropTree = async (api, { tree, parser }) => {
|
|
|
315
381
|
};
|
|
316
382
|
|
|
317
383
|
//#endregion
|
|
318
|
-
export { getTokenGroupForProp, getTokenPropGroups, getTokens, name, onBoot, onParse, onPropTree, onReady, propMap, server_exports, set, setTokenPropGroups };
|
|
384
|
+
export { getTokenGroupForProp, getTokenGroupsForProp, getTokenPropGroups, getTokens, name, onBoot, onParse, onPropTree, onReady, propMap, server_exports, set, setTokenPropGroups };
|
package/dist/use/token/vars.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const require_normalize = require('./normalize.cjs');
|
|
1
2
|
|
|
2
3
|
//#region src/use/token/vars.ts
|
|
3
4
|
const isPlainObject = (value) => {
|
|
@@ -6,11 +7,15 @@ const isPlainObject = (value) => {
|
|
|
6
7
|
const hasValueEntry = (value) => {
|
|
7
8
|
return isPlainObject(value) && Object.prototype.hasOwnProperty.call(value, "value");
|
|
8
9
|
};
|
|
10
|
+
const hasDtcgValueEntry = (value) => {
|
|
11
|
+
return isPlainObject(value) && Object.prototype.hasOwnProperty.call(value, "$value");
|
|
12
|
+
};
|
|
9
13
|
const createTokenVars = ({ prefix = "", toValue } = {}) => {
|
|
10
14
|
const resolveValue = toValue ?? ((value) => value == null ? value : String(value));
|
|
11
15
|
return (input) => {
|
|
12
16
|
const result = {};
|
|
13
17
|
if (!input || typeof input !== "object") return result;
|
|
18
|
+
const normalizedInput = require_normalize.normalizeTokens(input);
|
|
14
19
|
const applyVar = (path, group, value) => {
|
|
15
20
|
if (!path.length) return;
|
|
16
21
|
const name = `--${prefix}${path.join("-")}`;
|
|
@@ -36,9 +41,16 @@ const createTokenVars = ({ prefix = "", toValue } = {}) => {
|
|
|
36
41
|
applyVar(path, group, node.value);
|
|
37
42
|
return;
|
|
38
43
|
}
|
|
39
|
-
|
|
44
|
+
if (hasDtcgValueEntry(node)) {
|
|
45
|
+
applyVar(path, group, node.$value);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
for (const [key, value] of Object.entries(node)) {
|
|
49
|
+
if (key.startsWith("$")) continue;
|
|
50
|
+
walk(value, [...path, key], group ?? key);
|
|
51
|
+
}
|
|
40
52
|
};
|
|
41
|
-
walk(
|
|
53
|
+
walk(normalizedInput, [], null);
|
|
42
54
|
return result;
|
|
43
55
|
};
|
|
44
56
|
};
|
package/dist/use/token/vars.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { normalizeTokens } from "./normalize.mjs";
|
|
2
|
+
|
|
1
3
|
//#region src/use/token/vars.ts
|
|
2
4
|
const isPlainObject = (value) => {
|
|
3
5
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
@@ -5,11 +7,15 @@ const isPlainObject = (value) => {
|
|
|
5
7
|
const hasValueEntry = (value) => {
|
|
6
8
|
return isPlainObject(value) && Object.prototype.hasOwnProperty.call(value, "value");
|
|
7
9
|
};
|
|
10
|
+
const hasDtcgValueEntry = (value) => {
|
|
11
|
+
return isPlainObject(value) && Object.prototype.hasOwnProperty.call(value, "$value");
|
|
12
|
+
};
|
|
8
13
|
const createTokenVars = ({ prefix = "", toValue } = {}) => {
|
|
9
14
|
const resolveValue = toValue ?? ((value) => value == null ? value : String(value));
|
|
10
15
|
return (input) => {
|
|
11
16
|
const result = {};
|
|
12
17
|
if (!input || typeof input !== "object") return result;
|
|
18
|
+
const normalizedInput = normalizeTokens(input);
|
|
13
19
|
const applyVar = (path, group, value) => {
|
|
14
20
|
if (!path.length) return;
|
|
15
21
|
const name = `--${prefix}${path.join("-")}`;
|
|
@@ -35,9 +41,16 @@ const createTokenVars = ({ prefix = "", toValue } = {}) => {
|
|
|
35
41
|
applyVar(path, group, node.value);
|
|
36
42
|
return;
|
|
37
43
|
}
|
|
38
|
-
|
|
44
|
+
if (hasDtcgValueEntry(node)) {
|
|
45
|
+
applyVar(path, group, node.$value);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
for (const [key, value] of Object.entries(node)) {
|
|
49
|
+
if (key.startsWith("$")) continue;
|
|
50
|
+
walk(value, [...path, key], group ?? key);
|
|
51
|
+
}
|
|
39
52
|
};
|
|
40
|
-
walk(
|
|
53
|
+
walk(normalizedInput, [], null);
|
|
41
54
|
return result;
|
|
42
55
|
};
|
|
43
56
|
};
|