@charcoal-ui/tailwind-config 4.0.0-beta.8 → 4.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/_lib/TailwindBuild.d.ts.map +1 -1
- package/dist/colors/plugin.d.ts +3 -2
- package/dist/colors/plugin.d.ts.map +1 -1
- package/dist/colors/pluginTokenV1.d.ts +32 -0
- package/dist/colors/pluginTokenV1.d.ts.map +1 -0
- package/dist/index.cjs.js +194 -45
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +187 -33
- package/dist/index.esm.js.map +1 -1
- package/dist/tokenV2.d.ts +3 -0
- package/dist/tokenV2.d.ts.map +1 -0
- package/dist/tokenV2.test.d.ts +2 -0
- package/dist/tokenV2.test.d.ts.map +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.d.ts.map +1 -1
- package/package.json +10 -7
- package/src/Custom.mdx +122 -0
- package/src/README.mdx +61 -0
- package/src/__snapshots__/index.test.ts.snap +373 -5
- package/src/__snapshots__/tokenV2.test.ts.snap +6082 -0
- package/src/_lib/TailwindBuild.ts +3 -4
- package/src/colors/plugin.ts +17 -6
- package/src/colors/pluginTokenV1.ts +99 -0
- package/src/docs/colors/__snapshots__/TextBgColor.story.storyshot +1 -1
- package/src/index.test.ts +4 -0
- package/src/index.ts +47 -8
- package/src/tokenV2.test.ts +21 -0
- package/src/tokenV2.ts +72 -0
- package/src/util.ts +29 -0
package/README.md
CHANGED
|
@@ -158,4 +158,4 @@ https://tailwindcss.com/
|
|
|
158
158
|
|
|
159
159
|
`@charcoal-ui/tailwind-config` が独自に定義しているクラスについては Storybook を見てください。
|
|
160
160
|
|
|
161
|
-
https://pixiv.github.io/charcoal/?path=/docs/tailwind-config-colors-doc--
|
|
161
|
+
https://pixiv.github.io/charcoal/?path=/docs/tailwind-config-colors-doc--docs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindBuild.d.ts","sourceRoot":"","sources":["../../src/_lib/TailwindBuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAIjE;;;;GAIG;AACH,qBAAa,aAAa;IAGJ,OAAO,CAAC,MAAM;IAFlC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,OAAO;WAgCM,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"TailwindBuild.d.ts","sourceRoot":"","sources":["../../src/_lib/TailwindBuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAIjE;;;;GAIG;AACH,qBAAa,aAAa;IAGJ,OAAO,CAAC,MAAM;IAFlC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,OAAO;WAgCM,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM;IA4BpD,IAAI,GAAG,WAEN;IAED,IAAI,UAAU,aAEb;IAED,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI7D,eAAe;IAaf,cAAc,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE;CAWtC"}
|
package/dist/colors/plugin.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { TailwindPlugin } from 'tailwindcss/plugin';
|
|
2
2
|
import { Definition, ThemeMap } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* --tailwind-* また --charcoal-* を生成する
|
|
5
|
+
* TODO: --tailwindをやめる
|
|
5
6
|
*/
|
|
6
|
-
export default function cssVariableColorPlugin(
|
|
7
|
+
export default function cssVariableColorPlugin(themeMap: ThemeMap, cssVariablesV1: boolean): TailwindPlugin;
|
|
7
8
|
export declare function defineCssVariables(themes: Omit<ThemeMap, ':root'>): Definition;
|
|
8
9
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/colors/plugin.ts"],"names":[],"mappings":"AAQA,OAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAiC,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/colors/plugin.ts"],"names":[],"mappings":"AAQA,OAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAiC,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAI9E;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,OAAO,GACtB,cAAc,CAgBhB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,cAejE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ThemeMap } from '../types';
|
|
2
|
+
import { CharcoalAbstractTheme, EffectType, Key, CharcoalTheme as Theme } from '@charcoal-ui/theme';
|
|
3
|
+
export declare function defineCssVariablesV1(themeMap: ThemeMap): Record<string, unknown>;
|
|
4
|
+
export declare const defineColorVariableCSS: (theme: Theme) => Record<string, string>;
|
|
5
|
+
/**
|
|
6
|
+
* Check whether a value is non-null and non-undefined
|
|
7
|
+
*
|
|
8
|
+
* @param value nullable
|
|
9
|
+
*/
|
|
10
|
+
export declare const isPresent: <T>(value: T) => value is NonNullable<T>;
|
|
11
|
+
/**
|
|
12
|
+
* 子孫要素で使われるカラーテーマの CSS Variables を上書きする
|
|
13
|
+
*
|
|
14
|
+
* @params colorParams - 上書きしたい色の定義( `theme.color` の一部だけ書けば良い )
|
|
15
|
+
* @params effectParams - effect の定義を上書きしたい場合は渡す(必須ではない)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const LocalTheme = styled.div`
|
|
20
|
+
* ${defineThemeVariables({ text1: '#ff0000' })}
|
|
21
|
+
* // `text1` is now defined as red
|
|
22
|
+
* ${theme((o) => [o.font.text1])}
|
|
23
|
+
* `
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function defineThemeVariables(colorParams: Partial<CharcoalAbstractTheme['color']>, effectParams?: Partial<CharcoalAbstractTheme['effect']>): (props: {
|
|
27
|
+
theme: Pick<CharcoalAbstractTheme, 'effect'>;
|
|
28
|
+
}) => Record<string, string>;
|
|
29
|
+
export declare function isSupportedEffect(effect: Key): effect is EffectType;
|
|
30
|
+
export declare const variable: (value: string) => string;
|
|
31
|
+
export declare function withPrefixes(...parts: string[]): string;
|
|
32
|
+
//# sourceMappingURL=pluginTokenV1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginTokenV1.d.ts","sourceRoot":"","sources":["../../src/colors/pluginTokenV1.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,GAAG,EACH,aAAa,IAAI,KAAK,EACvB,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,2BActD;AAED,eAAO,MAAM,sBAAsB,UAAW,KAAK,2BASlD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,0CAA0D,CAAA;AAEhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,EACpD,YAAY,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,WAEpB;IACjC,KAAK,EAAE,KAAK,qBAAqB,EAAE,QAAQ,CAAC,CAAA;CAC7C,4BAkBF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,UAAU,CAEnE;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,WAAoB,CAAA;AAE1D,wBAAgB,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,UAE9C"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -27,7 +27,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
27
27
|
var src_exports = {};
|
|
28
28
|
__export(src_exports, {
|
|
29
29
|
config: () => config,
|
|
30
|
-
createTailwindConfig: () => createTailwindConfig
|
|
30
|
+
createTailwindConfig: () => createTailwindConfig,
|
|
31
|
+
unstable_createTailwindConfigTokenV2: () => unstable_createTailwindConfigTokenV2
|
|
31
32
|
});
|
|
32
33
|
module.exports = __toCommonJS(src_exports);
|
|
33
34
|
|
|
@@ -97,11 +98,32 @@ Got: ${JSON.stringify(Array.from(effectKeys))}`);
|
|
|
97
98
|
function camelToKebab(value) {
|
|
98
99
|
return value.replace(/(?<small>[\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, "$1-$2").toLowerCase();
|
|
99
100
|
}
|
|
101
|
+
var mapDefaultKey = (o) => {
|
|
102
|
+
return JSON.parse(JSON.stringify(o), function reviver(k, v) {
|
|
103
|
+
if (k === "default") {
|
|
104
|
+
const DefaultKey = getDefaultKeyName("v3");
|
|
105
|
+
this[DefaultKey] = v;
|
|
106
|
+
return void 0;
|
|
107
|
+
}
|
|
108
|
+
return v;
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
var flattenKey = (o, join) => {
|
|
112
|
+
return Object.fromEntries(
|
|
113
|
+
Object.entries(o).flatMap(([key, v]) => {
|
|
114
|
+
if (typeof v === "string")
|
|
115
|
+
return [[key, v]];
|
|
116
|
+
return Object.entries(v).map(([kk, vv]) => {
|
|
117
|
+
return [join?.(key) ?? true ? [key, kk].join("-") : kk, vv];
|
|
118
|
+
});
|
|
119
|
+
})
|
|
120
|
+
);
|
|
121
|
+
};
|
|
100
122
|
|
|
101
123
|
// src/index.ts
|
|
102
124
|
var import_foundation4 = require("@charcoal-ui/foundation");
|
|
103
125
|
var import_theme = require("@charcoal-ui/theme");
|
|
104
|
-
var
|
|
126
|
+
var import_utils8 = require("@charcoal-ui/utils");
|
|
105
127
|
|
|
106
128
|
// src/colors/toTailwindConfig.ts
|
|
107
129
|
var import_utils = require("@charcoal-ui/utils");
|
|
@@ -133,19 +155,68 @@ function colorsToTailwindConfig(version, colors, effects) {
|
|
|
133
155
|
}
|
|
134
156
|
|
|
135
157
|
// src/colors/plugin.ts
|
|
136
|
-
var
|
|
158
|
+
var import_utils4 = require("@charcoal-ui/utils");
|
|
137
159
|
var import_plugin = __toESM(require("tailwindcss/plugin"));
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
|
|
161
|
+
// src/colors/pluginTokenV1.ts
|
|
162
|
+
var import_utils3 = require("@charcoal-ui/utils");
|
|
163
|
+
function defineCssVariablesV1(themeMap) {
|
|
164
|
+
return (0, import_utils3.mapObject)(themeMap, (key, theme) => {
|
|
165
|
+
if (key.startsWith("@media")) {
|
|
166
|
+
return [
|
|
167
|
+
key,
|
|
168
|
+
{
|
|
169
|
+
":root": defineColorVariableCSS(theme)
|
|
170
|
+
}
|
|
171
|
+
];
|
|
172
|
+
} else {
|
|
173
|
+
return [key, defineColorVariableCSS(theme)];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
var defineColorVariableCSS = (theme) => {
|
|
178
|
+
const borders = (0, import_utils3.mapObject)(theme.border, (name, { color }) => [
|
|
179
|
+
withPrefixes("border", name),
|
|
180
|
+
color
|
|
181
|
+
]);
|
|
182
|
+
const colors = defineThemeVariables({ ...theme.color, ...borders })({ theme });
|
|
183
|
+
return colors;
|
|
184
|
+
};
|
|
185
|
+
var isPresent = (value) => value != null;
|
|
186
|
+
function defineThemeVariables(colorParams, effectParams) {
|
|
187
|
+
return function toCssObject(props) {
|
|
188
|
+
const colors = (0, import_utils3.filterObject)(colorParams, isPresent);
|
|
189
|
+
const effects = Object.entries({
|
|
190
|
+
...props.theme.effect,
|
|
191
|
+
...effectParams
|
|
192
|
+
});
|
|
193
|
+
return (0, import_utils3.flatMapObject)(colors, (colorKey, color) => [
|
|
194
|
+
[(0, import_utils3.customPropertyToken)(colorKey), color],
|
|
195
|
+
...effects.map(([effectKey, effect]) => [
|
|
196
|
+
(0, import_utils3.customPropertyToken)(colorKey, [effectKey]),
|
|
197
|
+
(0, import_utils3.applyEffect)(color, [effect])
|
|
198
|
+
])
|
|
199
|
+
]);
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function withPrefixes(...parts) {
|
|
203
|
+
return parts.join("-");
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// src/colors/plugin.ts
|
|
207
|
+
function cssVariableColorPlugin(themeMap, cssVariablesV1) {
|
|
208
|
+
const { ":root": _defaultTheme, ...otherThemes } = themeMap;
|
|
209
|
+
const definitions = defineCssVariables(otherThemes);
|
|
143
210
|
return (0, import_plugin.default)(({ addBase }) => {
|
|
144
211
|
addBase(definitions);
|
|
212
|
+
if (cssVariablesV1) {
|
|
213
|
+
const cssVariablesV12 = defineCssVariablesV1(themeMap);
|
|
214
|
+
addBase(cssVariablesV12);
|
|
215
|
+
}
|
|
145
216
|
});
|
|
146
217
|
}
|
|
147
218
|
function defineCssVariables(themes) {
|
|
148
|
-
return (0,
|
|
219
|
+
return (0, import_utils4.mapObject)(themes, (selectorOrMediaQuery, theme) => {
|
|
149
220
|
const css = toCssVariables(theme);
|
|
150
221
|
if (selectorOrMediaQuery.startsWith("@media")) {
|
|
151
222
|
return [
|
|
@@ -160,15 +231,15 @@ function defineCssVariables(themes) {
|
|
|
160
231
|
});
|
|
161
232
|
}
|
|
162
233
|
function toCssVariables(theme) {
|
|
163
|
-
const colors = (0,
|
|
234
|
+
const colors = (0, import_utils4.filterObject)(theme.color, isSingleColor);
|
|
164
235
|
const effects = Object.entries(mergeEffect(theme));
|
|
165
|
-
return (0,
|
|
236
|
+
return (0, import_utils4.flatMapObject)(colors, (name, color) => {
|
|
166
237
|
const varName = `${COLOR_PREFIX}${name}`;
|
|
167
238
|
return [
|
|
168
239
|
[varName, color],
|
|
169
240
|
...effects.map(([type, effect]) => [
|
|
170
241
|
`${varName}--${type}`,
|
|
171
|
-
(0,
|
|
242
|
+
(0, import_utils4.applyEffect)(color, effect)
|
|
172
243
|
])
|
|
173
244
|
];
|
|
174
245
|
});
|
|
@@ -176,16 +247,16 @@ function toCssVariables(theme) {
|
|
|
176
247
|
|
|
177
248
|
// src/gradient/plugin.ts
|
|
178
249
|
var import_plugin2 = __toESM(require("tailwindcss/plugin"));
|
|
179
|
-
var
|
|
250
|
+
var import_utils6 = require("@charcoal-ui/utils");
|
|
180
251
|
var VAR_PREFIX = "--tailwind-gradient-";
|
|
181
252
|
function cssVariableColorPlugin2(gradients, effects, selectorOrMediaQuery) {
|
|
182
253
|
const utilities = getUtilities(gradients, effects);
|
|
183
|
-
const classRules = (0,
|
|
254
|
+
const classRules = (0, import_utils6.mapObject)(utilities, (name) => [
|
|
184
255
|
`.bg-${name}`,
|
|
185
256
|
{ backgroundImage: `var(${VAR_PREFIX}${name})` }
|
|
186
257
|
]);
|
|
187
258
|
return (0, import_plugin2.default)(({ addBase, addUtilities }) => {
|
|
188
|
-
const css = (0,
|
|
259
|
+
const css = (0, import_utils6.mapKeys)(utilities, (name) => `${VAR_PREFIX}${name}`);
|
|
189
260
|
if (selectorOrMediaQuery.startsWith("@media")) {
|
|
190
261
|
addBase({
|
|
191
262
|
[selectorOrMediaQuery]: {
|
|
@@ -211,11 +282,11 @@ var DIRECTIONS = {
|
|
|
211
282
|
function getUtilities(gradients, effect) {
|
|
212
283
|
const effects = Object.entries(effect);
|
|
213
284
|
const directions = Object.entries(DIRECTIONS);
|
|
214
|
-
return (0,
|
|
285
|
+
return (0, import_utils6.flatMapObject)(
|
|
215
286
|
gradients,
|
|
216
287
|
(name, colors) => directions.flatMap(([direction, className]) => {
|
|
217
288
|
const toLinearGradient = (colors2) => {
|
|
218
|
-
const style = (0,
|
|
289
|
+
const style = (0, import_utils6.gradient)(direction)(colors2);
|
|
219
290
|
if (!("backgroundImage" in style)) {
|
|
220
291
|
throw new Error(
|
|
221
292
|
`Could not generate linear-gradient() from ${name} ${direction} ${className}`
|
|
@@ -227,7 +298,7 @@ function getUtilities(gradients, effect) {
|
|
|
227
298
|
[createUtilityName(name, className), toLinearGradient(colors)],
|
|
228
299
|
...effects.map(([effectName, effect2]) => [
|
|
229
300
|
createUtilityName(name, className, effectName),
|
|
230
|
-
toLinearGradient((0,
|
|
301
|
+
toLinearGradient((0, import_utils6.applyEffectToGradient)(effect2)(colors))
|
|
231
302
|
])
|
|
232
303
|
];
|
|
233
304
|
})
|
|
@@ -240,7 +311,7 @@ function createUtilityName(gradientName, direction, suffix = "") {
|
|
|
240
311
|
// src/typography/plugin.ts
|
|
241
312
|
var import_plugin3 = __toESM(require("tailwindcss/plugin"));
|
|
242
313
|
var import_foundation2 = require("@charcoal-ui/foundation");
|
|
243
|
-
var
|
|
314
|
+
var import_utils7 = require("@charcoal-ui/utils");
|
|
244
315
|
var leadingCancel = {
|
|
245
316
|
display: "block",
|
|
246
317
|
width: 0,
|
|
@@ -248,22 +319,22 @@ var leadingCancel = {
|
|
|
248
319
|
content: '""'
|
|
249
320
|
};
|
|
250
321
|
var typographyStyle = (style) => {
|
|
251
|
-
const margin = -(0,
|
|
322
|
+
const margin = -(0, import_utils7.halfLeading)(style);
|
|
252
323
|
return {
|
|
253
|
-
"font-size": (0,
|
|
254
|
-
"line-height": (0,
|
|
324
|
+
"font-size": (0, import_utils7.px)(style.fontSize),
|
|
325
|
+
"line-height": (0, import_utils7.px)(style.lineHeight),
|
|
255
326
|
"&::before": {
|
|
256
327
|
...leadingCancel,
|
|
257
|
-
marginTop: (0,
|
|
328
|
+
marginTop: (0, import_utils7.px)(margin)
|
|
258
329
|
},
|
|
259
330
|
"&::after": {
|
|
260
331
|
...leadingCancel,
|
|
261
|
-
marginBottom: (0,
|
|
332
|
+
marginBottom: (0, import_utils7.px)(margin)
|
|
262
333
|
}
|
|
263
334
|
};
|
|
264
335
|
};
|
|
265
336
|
var typographyPlugin = (0, import_plugin3.default)(({ addUtilities }) => {
|
|
266
|
-
const typographyClasses = (0,
|
|
337
|
+
const typographyClasses = (0, import_utils7.mapObject)(import_foundation2.TYPOGRAPHY_SIZE, (fontSize, style) => [
|
|
267
338
|
`.typography-${fontSize}`,
|
|
268
339
|
typographyStyle(style)
|
|
269
340
|
]);
|
|
@@ -286,39 +357,106 @@ var typographyPlugin = (0, import_plugin3.default)(({ addUtilities }) => {
|
|
|
286
357
|
});
|
|
287
358
|
var plugin_default = typographyPlugin;
|
|
288
359
|
|
|
360
|
+
// src/tokenV2.ts
|
|
361
|
+
var import_css_variables = __toESM(require("@charcoal-ui/theme/unstable-tokens/css-variables.json"));
|
|
362
|
+
function unstable_createTailwindConfigTokenV2() {
|
|
363
|
+
const fontSize = Object.fromEntries(
|
|
364
|
+
Object.entries(import_css_variables.default.text["font-size"]).flatMap(([k, v]) => {
|
|
365
|
+
if (typeof v === "string") {
|
|
366
|
+
return [
|
|
367
|
+
[
|
|
368
|
+
k,
|
|
369
|
+
[
|
|
370
|
+
v,
|
|
371
|
+
{ lineHeight: import_css_variables.default.text["line-height"][k] }
|
|
372
|
+
]
|
|
373
|
+
]
|
|
374
|
+
];
|
|
375
|
+
}
|
|
376
|
+
return Object.entries(v).map(([kk, vv]) => {
|
|
377
|
+
return [
|
|
378
|
+
[k, kk].join("-"),
|
|
379
|
+
[
|
|
380
|
+
vv,
|
|
381
|
+
{ lineHeight: import_css_variables.default.text["line-height"][k][kk] }
|
|
382
|
+
]
|
|
383
|
+
];
|
|
384
|
+
});
|
|
385
|
+
})
|
|
386
|
+
);
|
|
387
|
+
const spacing = flattenKey(import_css_variables.default.space, (key) => !/(gap|padding)/.test(key));
|
|
388
|
+
const colors = mapDefaultKey(import_css_variables.default.color);
|
|
389
|
+
const config2 = {
|
|
390
|
+
darkMode: "media",
|
|
391
|
+
theme: {
|
|
392
|
+
borderWidth: flattenKey(import_css_variables.default["border-width"]),
|
|
393
|
+
borderRadius: import_css_variables.default.radius,
|
|
394
|
+
borderColor: flattenKey(colors.border),
|
|
395
|
+
colors,
|
|
396
|
+
fontSize,
|
|
397
|
+
fontWeight: import_css_variables.default.text["font-weight"],
|
|
398
|
+
spacing,
|
|
399
|
+
gap: spacing,
|
|
400
|
+
width: import_css_variables.default["paragraph-width"]
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
return config2;
|
|
404
|
+
}
|
|
405
|
+
|
|
289
406
|
// src/index.ts
|
|
290
407
|
function createTailwindConfig({
|
|
291
408
|
theme = { ":root": import_theme.light },
|
|
292
|
-
version = "v3"
|
|
409
|
+
version = "v3",
|
|
410
|
+
cssVariablesV1 = true,
|
|
411
|
+
unstableTokenV2 = false
|
|
293
412
|
}) {
|
|
294
413
|
assertAllThemeHaveSameKeys(theme);
|
|
295
414
|
const defaultTheme = theme[":root"];
|
|
296
415
|
const effects = mergeEffect(defaultTheme);
|
|
297
416
|
const DEFAULT = getDefaultKeyName(version);
|
|
417
|
+
const {
|
|
418
|
+
borderWidth: borderWidthV2,
|
|
419
|
+
borderRadius: borderRadiusV2,
|
|
420
|
+
borderColor: borderColorV2,
|
|
421
|
+
colors: colorsV2,
|
|
422
|
+
fontSize: fontSizeV2,
|
|
423
|
+
fontWeight: fontWeightV2,
|
|
424
|
+
spacing: spacingV2,
|
|
425
|
+
gap: gapV2,
|
|
426
|
+
width: widthV2
|
|
427
|
+
} = unstableTokenV2 ? unstable_createTailwindConfigTokenV2().theme : {};
|
|
298
428
|
return {
|
|
299
429
|
theme: {
|
|
300
430
|
screens: {
|
|
301
|
-
screen1: (0,
|
|
302
|
-
screen2: (0,
|
|
303
|
-
screen3: (0,
|
|
304
|
-
screen4: (0,
|
|
305
|
-
screen5: (0,
|
|
431
|
+
screen1: (0, import_utils8.px)(0),
|
|
432
|
+
screen2: (0, import_utils8.px)(defaultTheme.breakpoint.screen1),
|
|
433
|
+
screen3: (0, import_utils8.px)(defaultTheme.breakpoint.screen2),
|
|
434
|
+
screen4: (0, import_utils8.px)(defaultTheme.breakpoint.screen3),
|
|
435
|
+
screen5: (0, import_utils8.px)(defaultTheme.breakpoint.screen4)
|
|
306
436
|
},
|
|
307
437
|
colors: {
|
|
308
438
|
black: "#000",
|
|
309
439
|
white: "#fff",
|
|
310
440
|
transparent: "transparent",
|
|
311
441
|
current: "currentColor",
|
|
312
|
-
...colorsToTailwindConfig(version, defaultTheme.color, effects)
|
|
442
|
+
...colorsToTailwindConfig(version, defaultTheme.color, effects),
|
|
443
|
+
...colorsV2
|
|
313
444
|
},
|
|
314
445
|
borderColor: {
|
|
315
446
|
...colorsToTailwindConfig(
|
|
316
447
|
version,
|
|
317
|
-
(0,
|
|
448
|
+
(0, import_utils8.mapObject)(defaultTheme.border, (k, v) => [k, v.color]),
|
|
318
449
|
effects
|
|
319
|
-
)
|
|
450
|
+
),
|
|
451
|
+
...borderColorV2
|
|
452
|
+
},
|
|
453
|
+
spacing: {
|
|
454
|
+
...(0, import_utils8.mapObject)(
|
|
455
|
+
import_foundation4.SPACING,
|
|
456
|
+
(name, pixel) => [name, (0, import_utils8.px)(pixel)]
|
|
457
|
+
),
|
|
458
|
+
...spacingV2
|
|
320
459
|
},
|
|
321
|
-
spacing: (0, import_utils7.mapObject)(import_foundation4.SPACING, (name, pixel) => [name, (0, import_utils7.px)(pixel)]),
|
|
322
460
|
width: {
|
|
323
461
|
full: "100%",
|
|
324
462
|
screen: "100vw",
|
|
@@ -327,7 +465,7 @@ function createTailwindConfig({
|
|
|
327
465
|
...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(
|
|
328
466
|
(styles, i) => ({
|
|
329
467
|
...styles,
|
|
330
|
-
[`col-span-${i}`]: (0,
|
|
468
|
+
[`col-span-${i}`]: (0, import_utils8.px)(import_foundation4.COLUMN_UNIT * i + import_foundation4.GUTTER_UNIT * (i - 1))
|
|
331
469
|
}),
|
|
332
470
|
{}
|
|
333
471
|
),
|
|
@@ -337,18 +475,28 @@ function createTailwindConfig({
|
|
|
337
475
|
[`${i}/${GRID_COUNT}`]: `${i / GRID_COUNT * 100}%`
|
|
338
476
|
}),
|
|
339
477
|
{}
|
|
340
|
-
)
|
|
478
|
+
),
|
|
479
|
+
...widthV2
|
|
341
480
|
},
|
|
342
481
|
gap: {
|
|
343
|
-
fixed: (0,
|
|
482
|
+
fixed: (0, import_utils8.px)(import_foundation4.GUTTER_UNIT),
|
|
483
|
+
...gapV2
|
|
484
|
+
},
|
|
485
|
+
borderRadius: {
|
|
486
|
+
...(0, import_utils8.mapObject)(
|
|
487
|
+
import_foundation4.BORDER_RADIUS,
|
|
488
|
+
(name, value) => [name, (0, import_utils8.px)(value)]
|
|
489
|
+
),
|
|
490
|
+
...borderRadiusV2
|
|
344
491
|
},
|
|
345
|
-
borderRadius: (0, import_utils7.mapObject)(import_foundation4.BORDER_RADIUS, (name, value) => [
|
|
346
|
-
name,
|
|
347
|
-
(0, import_utils7.px)(value)
|
|
348
|
-
]),
|
|
349
492
|
transitionDuration: {
|
|
350
493
|
[DEFAULT]: "0.2s"
|
|
351
|
-
}
|
|
494
|
+
},
|
|
495
|
+
...unstableTokenV2 ? {
|
|
496
|
+
borderWidth: borderWidthV2,
|
|
497
|
+
fontSize: fontSizeV2,
|
|
498
|
+
fontWeight: fontWeightV2
|
|
499
|
+
} : {}
|
|
352
500
|
},
|
|
353
501
|
...getVariantOption(version),
|
|
354
502
|
corePlugins: {
|
|
@@ -356,7 +504,7 @@ function createTailwindConfig({
|
|
|
356
504
|
},
|
|
357
505
|
plugins: [
|
|
358
506
|
plugin_default,
|
|
359
|
-
cssVariableColorPlugin(theme),
|
|
507
|
+
cssVariableColorPlugin(theme, Boolean(cssVariablesV1)),
|
|
360
508
|
...Object.entries(theme).map(
|
|
361
509
|
([selectorOrMediaQuery, theme2]) => cssVariableColorPlugin2(
|
|
362
510
|
theme2.gradientColor,
|
|
@@ -371,6 +519,7 @@ var config = createTailwindConfig({});
|
|
|
371
519
|
// Annotate the CommonJS export names for ESM import in node:
|
|
372
520
|
0 && (module.exports = {
|
|
373
521
|
config,
|
|
374
|
-
createTailwindConfig
|
|
522
|
+
createTailwindConfig,
|
|
523
|
+
unstable_createTailwindConfigTokenV2
|
|
375
524
|
});
|
|
376
525
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/foundation.ts","../src/util.ts","../src/colors/toTailwindConfig.ts","../src/colors/utils.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts"],"sourcesContent":["import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport type { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n","import { Effect } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\n\nexport const GRID_COUNT = 12\n\nexport function mergeEffect({\n elementEffect,\n effect,\n}: Pick<Theme, 'elementEffect' | 'effect'>): MergedEffect {\n return {\n ...elementEffect,\n ...effect,\n outline: {\n type: 'opacity',\n opacity: 0.32,\n } as Effect,\n }\n}\n\nexport type MergedEffect = Record<string, Effect>\n","import type { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { Material } from '@charcoal-ui/foundation'\nimport { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport type { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { MergedEffect } from '../foundation'\n\nimport { TailwindVersion } from '../types'\nimport { getDefaultKeyName } from '../util'\n\nimport { AnyColorTheme, COLOR_PREFIX, isSingleColor } from './utils'\n\nexport function colorsToTailwindConfig(\n version: TailwindVersion,\n colors: AnyColorTheme,\n effects: MergedEffect\n): TailwindConfig['theme']['colors'] {\n const targetColors = filterObject(colors, isSingleColor)\n const DEFAULT = getDefaultKeyName(version)\n\n /**\n * こういう感じのを吐き出す\n *\n * ```js\n * {\n * DEFAULT: 'var(--tailwind-color-hoge1, #fff)',\n * hover: 'var(--tailwind-color-hoge1--hover, #eee)',\n * press: 'var(--tailwind-color-hoge1--press, #ddd)',\n * disabled: 'var(--tailwind-color-hoge1--disabled, #eee)',\n * }\n * ```\n */\n function colorsForAllEffects(name: string, color: Material) {\n const varName = `${COLOR_PREFIX}${name}`\n\n return {\n [DEFAULT]: `var(${varName}, ${color})`,\n\n ...mapObject(effects, (effectName, effect) => [\n effectName,\n `var(${varName}--${effectName}, ${applyEffect(color, effect)})`,\n ]),\n }\n }\n\n return mapObject(targetColors, (name, color) => [\n name,\n colorsForAllEffects(name, color),\n ])\n}\n","import { GradientMaterial, Material } from '@charcoal-ui/foundation'\n\nexport const COLOR_PREFIX = '--tailwind-color-'\n\nexport function isSingleColor(color: AnyColor): color is Material {\n return typeof color === 'string'\n}\n\ntype AnyColor = Material | GradientMaterial\n\nexport type AnyColorTheme = Record<string, AnyColor>\n","import { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradient(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradient(to top, ...)' }\n ...effects.map<[string, LinearGradient]>(([effectName, effect]) => [\n createUtilityName(name, className, effectName),\n toLinearGradient(applyEffectToGradient(effect)(colors)),\n ]),\n ]\n })\n )\n}\n\nfunction createUtilityName(\n gradientName: string,\n direction: Values<typeof DIRECTIONS>,\n suffix = ''\n) {\n return [camelToKebab(gradientName), direction, suffix]\n .filter(Boolean)\n .join('-')\n}\n","import plugin from 'tailwindcss/plugin'\nimport { TypographyDescriptor, TYPOGRAPHY_SIZE } from '@charcoal-ui/foundation'\nimport { halfLeading, mapObject, px } from '@charcoal-ui/utils'\n\nconst leadingCancel = {\n display: 'block',\n width: 0,\n height: 0,\n content: '\"\"',\n}\n\nconst typographyStyle = (style: TypographyDescriptor) => {\n const margin = -halfLeading(style)\n\n return {\n 'font-size': px(style.fontSize),\n 'line-height': px(style.lineHeight),\n\n /**\n * cancel leading\n *\n * @see https://yuyakinoshita.com/blog/2020/01/20/line-height-crop/\n */\n '&::before': {\n ...leadingCancel,\n marginTop: px(margin),\n },\n '&::after': {\n ...leadingCancel,\n marginBottom: px(margin),\n },\n }\n}\n\nconst typographyPlugin = plugin(({ addUtilities }) => {\n const typographyClasses = mapObject(TYPOGRAPHY_SIZE, (fontSize, style) => [\n `.typography-${fontSize}`,\n typographyStyle(style),\n ])\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(\n {\n ...typographyClasses,\n '.preserve-half-leading': {\n '&::before': {\n content: 'none',\n },\n '&::after': {\n content: 'none',\n },\n },\n },\n {\n variants: ['responsive'],\n }\n )\n})\n\nexport default typographyPlugin\n"],"mappings":"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","names":["import_foundation","import_utils","import_utils","plugin","import_plugin","import_utils","cssVariableColorPlugin","plugin","colors","effect","import_plugin","import_foundation","import_utils","plugin","theme","cssVariableColorPlugin"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/foundation.ts","../src/util.ts","../src/colors/toTailwindConfig.ts","../src/colors/utils.ts","../src/colors/plugin.ts","../src/colors/pluginTokenV1.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/tokenV2.ts"],"sourcesContent":["import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport type { TailwindConfig, TailwindTheme } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\nimport { unstable_createTailwindConfigTokenV2 } from './tokenV2'\nexport { unstable_createTailwindConfigTokenV2 }\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n cssVariablesV1?: boolean\n unstableTokenV2?: boolean\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n cssVariablesV1 = true,\n unstableTokenV2 = false,\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n const {\n borderWidth: borderWidthV2,\n borderRadius: borderRadiusV2,\n borderColor: borderColorV2,\n colors: colorsV2,\n fontSize: fontSizeV2,\n fontWeight: fontWeightV2,\n spacing: spacingV2,\n gap: gapV2,\n width: widthV2,\n }: Partial<TailwindTheme> = unstableTokenV2\n ? unstable_createTailwindConfigTokenV2().theme\n : {}\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n ...colorsV2,\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n ...borderColorV2,\n },\n spacing: {\n ...mapObject(\n SPACING,\n (name, pixel) => [name, px(pixel)] as [string, string]\n ),\n ...spacingV2,\n },\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n ...widthV2,\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n ...gapV2,\n },\n borderRadius: {\n ...mapObject(\n BORDER_RADIUS,\n (name, value) => [name, px(value)] as [string, string]\n ),\n ...borderRadiusV2,\n },\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n ...(unstableTokenV2\n ? {\n borderWidth: borderWidthV2,\n fontSize: fontSizeV2,\n fontWeight: fontWeightV2,\n }\n : {}),\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme, Boolean(cssVariablesV1)),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n","import { Effect } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\n\nexport const GRID_COUNT = 12\n\nexport function mergeEffect({\n elementEffect,\n effect,\n}: Pick<Theme, 'elementEffect' | 'effect'>): MergedEffect {\n return {\n ...elementEffect,\n ...effect,\n outline: {\n type: 'opacity',\n opacity: 0.32,\n } as Effect,\n }\n}\n\nexport type MergedEffect = Record<string, Effect>\n","import type { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n\nexport const mapDefaultKey = <O extends object>(o: O) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(JSON.stringify(o), function reviver(k: string, v: string) {\n if (k === 'default') {\n const DefaultKey = getDefaultKeyName('v3')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n this[DefaultKey] = v\n return undefined\n }\n return v\n })\n}\n\nexport const flattenKey = <O extends object>(\n o: O,\n join?: (key: string) => boolean\n) => {\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.entries(o).flatMap(([key, v]) => {\n if (typeof v === 'string') return [[key, v]]\n return Object.entries(v as object).map(([kk, vv]) => {\n return [join?.(key) ?? true ? [key, kk].join('-') : kk, vv]\n })\n })\n )\n}\n","import { Material } from '@charcoal-ui/foundation'\nimport { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport type { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { MergedEffect } from '../foundation'\n\nimport { TailwindVersion } from '../types'\nimport { getDefaultKeyName } from '../util'\n\nimport { AnyColorTheme, COLOR_PREFIX, isSingleColor } from './utils'\n\nexport function colorsToTailwindConfig(\n version: TailwindVersion,\n colors: AnyColorTheme,\n effects: MergedEffect\n): TailwindConfig['theme']['colors'] {\n const targetColors = filterObject(colors, isSingleColor)\n const DEFAULT = getDefaultKeyName(version)\n\n /**\n * こういう感じのを吐き出す\n *\n * ```js\n * {\n * DEFAULT: 'var(--tailwind-color-hoge1, #fff)',\n * hover: 'var(--tailwind-color-hoge1--hover, #eee)',\n * press: 'var(--tailwind-color-hoge1--press, #ddd)',\n * disabled: 'var(--tailwind-color-hoge1--disabled, #eee)',\n * }\n * ```\n */\n function colorsForAllEffects(name: string, color: Material) {\n const varName = `${COLOR_PREFIX}${name}`\n\n return {\n [DEFAULT]: `var(${varName}, ${color})`,\n\n ...mapObject(effects, (effectName, effect) => [\n effectName,\n `var(${varName}--${effectName}, ${applyEffect(color, effect)})`,\n ]),\n }\n }\n\n return mapObject(targetColors, (name, color) => [\n name,\n colorsForAllEffects(name, color),\n ])\n}\n","import { GradientMaterial, Material } from '@charcoal-ui/foundation'\n\nexport const COLOR_PREFIX = '--tailwind-color-'\n\nexport function isSingleColor(color: AnyColor): color is Material {\n return typeof color === 'string'\n}\n\ntype AnyColor = Material | GradientMaterial\n\nexport type AnyColorTheme = Record<string, AnyColor>\n","import { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\nimport { defineCssVariablesV1 } from './pluginTokenV1'\n\n/**\n * --tailwind-* また --charcoal-* を生成する\n * TODO: --tailwindをやめる\n */\nexport default function cssVariableColorPlugin(\n themeMap: ThemeMap,\n cssVariablesV1: boolean\n): TailwindPlugin {\n // `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n const { ':root': _defaultTheme, ...otherThemes } = themeMap\n const definitions = defineCssVariables(otherThemes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n\n // styledのTokenInjector移植(background処理除く)\n if (cssVariablesV1) {\n const cssVariablesV1 = defineCssVariablesV1(themeMap)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(cssVariablesV1)\n }\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import {\n applyEffect,\n customPropertyToken,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { ThemeMap } from '../types'\nimport {\n CharcoalAbstractTheme,\n EffectType,\n Key,\n CharcoalTheme as Theme,\n} from '@charcoal-ui/theme'\n\nexport function defineCssVariablesV1(themeMap: ThemeMap) {\n // @ts-expect-error FIXME\n return mapObject(themeMap, (key, theme) => {\n if (key.startsWith('@media')) {\n return [\n key,\n {\n ':root': defineColorVariableCSS(theme),\n },\n ]\n } else {\n return [key, defineColorVariableCSS(theme)]\n }\n })\n}\n\nexport const defineColorVariableCSS = (theme: Theme) => {\n const borders = mapObject(theme.border, (name, { color }) => [\n // REVIEW: もしtheme.colorにたまたまborder-〇〇で始まる色名がいたら被りうる\n withPrefixes('border', name),\n color,\n ])\n\n const colors = defineThemeVariables({ ...theme.color, ...borders })({ theme })\n return colors\n}\n\n/**\n * Check whether a value is non-null and non-undefined\n *\n * @param value nullable\n */\nexport const isPresent = <T>(value: T): value is NonNullable<T> => value != null\n\n/**\n * 子孫要素で使われるカラーテーマの CSS Variables を上書きする\n *\n * @params colorParams - 上書きしたい色の定義( `theme.color` の一部だけ書けば良い )\n * @params effectParams - effect の定義を上書きしたい場合は渡す(必須ではない)\n *\n * @example\n * ```tsx\n * const LocalTheme = styled.div`\n * ${defineThemeVariables({ text1: '#ff0000' })}\n * // `text1` is now defined as red\n * ${theme((o) => [o.font.text1])}\n * `\n * ```\n */\nexport function defineThemeVariables(\n colorParams: Partial<CharcoalAbstractTheme['color']>,\n effectParams?: Partial<CharcoalAbstractTheme['effect']>\n) {\n return function toCssObject(props: {\n theme: Pick<CharcoalAbstractTheme, 'effect'>\n }) {\n const colors = filterObject(colorParams, isPresent)\n\n // flatMapObject の中で毎回 Object.entries を呼ぶのは無駄なので外で呼ぶ\n const effects = Object.entries({\n ...props.theme.effect,\n ...effectParams,\n })\n\n return flatMapObject(colors, (colorKey, color) => [\n [customPropertyToken(colorKey), color],\n\n ...effects.map<[string, string]>(([effectKey, effect]) => [\n customPropertyToken(colorKey, [effectKey]),\n applyEffect(color, [effect]),\n ]),\n ])\n }\n}\n\nexport function isSupportedEffect(effect: Key): effect is EffectType {\n return ['hover', 'press', 'disabled'].includes(effect as string)\n}\n\nexport const variable = (value: string) => `var(${value})`\n\nexport function withPrefixes(...parts: string[]) {\n return parts.join('-')\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradient(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradient(to top, ...)' }\n ...effects.map<[string, LinearGradient]>(([effectName, effect]) => [\n createUtilityName(name, className, effectName),\n toLinearGradient(applyEffectToGradient(effect)(colors)),\n ]),\n ]\n })\n )\n}\n\nfunction createUtilityName(\n gradientName: string,\n direction: Values<typeof DIRECTIONS>,\n suffix = ''\n) {\n return [camelToKebab(gradientName), direction, suffix]\n .filter(Boolean)\n .join('-')\n}\n","import plugin from 'tailwindcss/plugin'\nimport { TypographyDescriptor, TYPOGRAPHY_SIZE } from '@charcoal-ui/foundation'\nimport { halfLeading, mapObject, px } from '@charcoal-ui/utils'\n\nconst leadingCancel = {\n display: 'block',\n width: 0,\n height: 0,\n content: '\"\"',\n}\n\nconst typographyStyle = (style: TypographyDescriptor) => {\n const margin = -halfLeading(style)\n\n return {\n 'font-size': px(style.fontSize),\n 'line-height': px(style.lineHeight),\n\n /**\n * cancel leading\n *\n * @see https://yuyakinoshita.com/blog/2020/01/20/line-height-crop/\n */\n '&::before': {\n ...leadingCancel,\n marginTop: px(margin),\n },\n '&::after': {\n ...leadingCancel,\n marginBottom: px(margin),\n },\n }\n}\n\nconst typographyPlugin = plugin(({ addUtilities }) => {\n const typographyClasses = mapObject(TYPOGRAPHY_SIZE, (fontSize, style) => [\n `.typography-${fontSize}`,\n typographyStyle(style),\n ])\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(\n {\n ...typographyClasses,\n '.preserve-half-leading': {\n '&::before': {\n content: 'none',\n },\n '&::after': {\n content: 'none',\n },\n },\n },\n {\n variants: ['responsive'],\n }\n )\n})\n\nexport default typographyPlugin\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport light from '@charcoal-ui/theme/unstable-tokens/css-variables.json'\nimport {\n TailwindConfig,\n TailwindThemeFontSizes,\n} from 'tailwindcss/tailwind-config'\nimport {\n flattenKey as flattenKeys,\n mapDefaultKey as mapDefaultKeys,\n} from './util'\n\nexport function unstable_createTailwindConfigTokenV2() {\n const fontSize = Object.fromEntries(\n Object.entries(light.text['font-size']).flatMap(([k, v]) => {\n // text.fontSize.paragraph + text.lineHeight.paragraph -> text-paragraph\n if (typeof v === 'string') {\n return [\n [\n k,\n [\n v,\n // @ts-expect-error k is keyof line-height\n { lineHeight: light.text['line-height'][k] },\n ],\n ],\n ]\n }\n\n // text.fontSize.heading.s + text.lineHeight.heading.s -> text-heading-s\n return Object.entries(v as Record<string, string>).map(([kk, vv]) => {\n return [\n [k, kk].join('-'),\n [\n vv,\n // @ts-expect-error k is keyof line-height\n { lineHeight: light.text['line-height'][k][kk] },\n ],\n ]\n })\n })\n ) as TailwindThemeFontSizes\n\n // space.target.s -> p-target-s\n // space.gap.gapButtons -> p-gap-buttons\n const spacing = flattenKeys(light.space, (key) => !/(gap|padding)/.test(key))\n // color.container.default -> bg-container\n // color.container.hover -> bg-container-hover\n const colors = mapDefaultKeys(light.color)\n\n const config: TailwindConfig = {\n darkMode: 'media',\n theme: {\n // borderWidth.m -> border-m\n // borderWidth.focus.1 -> border-focus-1\n borderWidth: flattenKeys(light['border-width']),\n borderRadius: light.radius,\n borderColor: flattenKeys(colors.border),\n\n colors,\n\n fontSize,\n fontWeight: light.text['font-weight'],\n\n spacing: spacing,\n gap: spacing,\n width: light['paragraph-width'],\n },\n }\n\n return config\n}\n"],"mappings":"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","names":["import_foundation","import_utils","import_utils","import_utils","plugin","cssVariablesV1","import_plugin","import_utils","cssVariableColorPlugin","plugin","colors","effect","import_plugin","import_foundation","import_utils","plugin","light","config","theme","cssVariableColorPlugin"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { TailwindConfig } from 'tailwindcss/tailwind-config';
|
|
2
2
|
import { TailwindVersion, ThemeMap } from './types';
|
|
3
|
+
import { unstable_createTailwindConfigTokenV2 } from './tokenV2';
|
|
4
|
+
export { unstable_createTailwindConfigTokenV2 };
|
|
3
5
|
interface Options {
|
|
4
6
|
version?: TailwindVersion;
|
|
5
7
|
theme?: ThemeMap;
|
|
8
|
+
cssVariablesV1?: boolean;
|
|
9
|
+
unstableTokenV2?: boolean;
|
|
6
10
|
}
|
|
7
|
-
export declare function createTailwindConfig({ theme, version, }: Options): TailwindConfig;
|
|
11
|
+
export declare function createTailwindConfig({ theme, version, cssVariablesV1, unstableTokenV2, }: Options): TailwindConfig;
|
|
8
12
|
export declare const config: TailwindConfig;
|
|
9
|
-
export {};
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,6BAA6B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAoBnD,OAAO,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,oCAAoC,EAAE,CAAA;AAE/C,UAAU,OAAO;IACf,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAA0B,EAC1B,OAAc,EACd,cAAqB,EACrB,eAAuB,GACxB,EAAE,OAAO,GAAG,cAAc,CAgI1B;AAED,eAAO,MAAM,MAAM,EAAE,cAAyC,CAAA"}
|