@charcoal-ui/tailwind-config 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +20 -3
  2. package/dist/_lib/TailwindBuild.d.ts +2 -2
  3. package/dist/_lib/TailwindBuild.d.ts.map +1 -1
  4. package/dist/colors/plugin.d.ts +2 -2
  5. package/dist/colors/plugin.d.ts.map +1 -1
  6. package/dist/colors/toTailwindConfig.d.ts +2 -2
  7. package/dist/colors/toTailwindConfig.d.ts.map +1 -1
  8. package/dist/docs/borderRadius/index.d.ts +1 -1
  9. package/dist/docs/borderRadius/index.d.ts.map +1 -1
  10. package/dist/docs/colors/Colors.d.ts.map +1 -1
  11. package/dist/docs/colors/index.d.ts +1 -1
  12. package/dist/docs/colors/index.d.ts.map +1 -1
  13. package/dist/docs/screens/index.d.ts +1 -1
  14. package/dist/docs/screens/index.d.ts.map +1 -1
  15. package/dist/docs/spacing/index.d.ts +1 -1
  16. package/dist/docs/spacing/index.d.ts.map +1 -1
  17. package/dist/gradient/plugin.d.ts +4 -1
  18. package/dist/gradient/plugin.d.ts.map +1 -1
  19. package/dist/index.cjs.js +2 -0
  20. package/dist/index.cjs.js.map +1 -1
  21. package/dist/index.d.ts +4 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.esm.js +2 -0
  24. package/dist/index.esm.js.map +1 -1
  25. package/dist/tokenV2.d.ts +1 -2
  26. package/dist/tokenV2.d.ts.map +1 -1
  27. package/dist/typography/plugin.d.ts +4 -1
  28. package/dist/typography/plugin.d.ts.map +1 -1
  29. package/dist/util.d.ts +2 -2
  30. package/dist/util.d.ts.map +1 -1
  31. package/package.json +7 -7
  32. package/src/Custom.mdx +1 -1
  33. package/src/README.mdx +18 -1
  34. package/src/__snapshots__/index.test.ts.snap +3212 -1960
  35. package/src/__snapshots__/tokenV2.test.ts.snap +4814 -3784
  36. package/src/_lib/TailwindBuild.ts +2 -3
  37. package/src/colors/plugin.ts +3 -4
  38. package/src/colors/toTailwindConfig.ts +2 -2
  39. package/src/docs/borderRadius/index.ts +2 -1
  40. package/src/docs/colors/Colors.tsx +1 -0
  41. package/src/gradient/plugin.ts +1 -3
  42. package/src/index.test.ts +1 -0
  43. package/src/index.ts +6 -5
  44. package/src/tokenV2.test.ts +1 -0
  45. package/src/tokenV2.ts +3 -8
  46. package/src/typography/plugin.ts +1 -1
  47. package/src/util.ts +2 -5
package/README.md CHANGED
@@ -16,7 +16,24 @@ yarn
16
16
  yarn add -D @charcoal-ui/tailwind-config
17
17
  ```
18
18
 
19
- ## 使い方
19
+ ## 使い方 tailwind v4 (WIP)
20
+
21
+ Tailwind v4 の[@config](https://tailwindcss.com/docs/functions-and-directives#config-directive)経由で引き続既存の設定を利用できます。
22
+
23
+ 公式の[マイグレーションガイド](https://tailwindcss.com/docs/upgrade-guide)を参考した上以下の対応を行なってください。
24
+
25
+ ```diff
26
+ - @import 'tailwindcss';
27
+ /* 現時点@layer 未対応 */
28
+ + @import 'tailwindcss/theme.css';
29
+ + @import 'tailwindcss/utilities.css';
30
+
31
+ + @config '@charcoal-ui/tailwind-config' /** デフォルトのconfig使う場合 */
32
+ /* また */
33
+ + @config '../tailwind.config.ts' /** v3 configへのpath */
34
+ ```
35
+
36
+ ## 使い方 tailwind v2,v3
20
37
 
21
38
  tailwind.config.js の中で `require` して使います。
22
39
 
@@ -26,7 +43,7 @@ tailwind.config.js の中で `require` して使います。
26
43
  const { config } = require('@charcoal-ui/tailwind-config')
27
44
 
28
45
  /**
29
- * @type {import('tailwindcss/tailwind-config').TailwindConfig}
46
+ * @type {import('tailwindcss').Config}
30
47
  */
31
48
  module.exports = {
32
49
  darkMode: false,
@@ -42,7 +59,7 @@ const { light, dark } = require('@charcoal-ui/theme')
42
59
  const { createTailwindConfig } = require('@charcoal-ui/tailwind-config')
43
60
 
44
61
  /**
45
- * @type {import('tailwindcss/tailwind-config').TailwindConfig}
62
+ * @type {import('tailwindcss').Config}
46
63
  */
47
64
  module.exports = {
48
65
  darkMode: false,
@@ -1,4 +1,4 @@
1
- import type { TailwindConfig } from 'tailwindcss/tailwind-config';
1
+ import type { Config } from 'tailwindcss';
2
2
  /**
3
3
  * テスト用に tailwind.css のビルドを走らせる
4
4
  *
@@ -8,7 +8,7 @@ export declare class TailwindBuild {
8
8
  private result;
9
9
  private readonly parsedCss;
10
10
  private constructor();
11
- static run(config: TailwindConfig, css: string): Promise<TailwindBuild>;
11
+ static run(config: Config, css: string): Promise<TailwindBuild>;
12
12
  get css(): string;
13
13
  get classNames(): string[];
14
14
  getStylesByClassName(className: string): string[] | undefined;
@@ -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;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"}
1
+ {"version":3,"file":"TailwindBuild.d.ts","sourceRoot":"","sources":["../../src/_lib/TailwindBuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC;;;;GAIG;AACH,qBAAa,aAAa;IAGJ,OAAO,CAAC,MAAM;IAFlC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,OAAO;WAgCM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IA2B5C,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"}
@@ -1,9 +1,9 @@
1
- import { TailwindPlugin } from 'tailwindcss/plugin';
1
+ import plugin from 'tailwindcss/plugin';
2
2
  import { Definition, ThemeMap } from '../types';
3
3
  /**
4
4
  * --tailwind-* また --charcoal-* を生成する
5
5
  * TODO: --tailwindをやめる
6
6
  */
7
- export default function cssVariableColorPlugin(themeMap: ThemeMap, cssVariablesV1: boolean): TailwindPlugin;
7
+ export default function cssVariableColorPlugin(themeMap: ThemeMap, cssVariablesV1: boolean): ReturnType<typeof plugin>;
8
8
  export declare function defineCssVariables(themes: Omit<ThemeMap, ':root'>): Definition;
9
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;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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/colors/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAEvC,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,UAAU,CAAC,OAAO,MAAM,CAAC,CAe3B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,cAejE"}
@@ -1,6 +1,6 @@
1
- import type { TailwindConfig } from 'tailwindcss/tailwind-config';
1
+ import type { Config } from 'tailwindcss';
2
2
  import { MergedEffect } from '../foundation';
3
3
  import { TailwindVersion } from '../types';
4
4
  import { AnyColorTheme } from './utils';
5
- export declare function colorsToTailwindConfig(version: TailwindVersion, colors: AnyColorTheme, effects: MergedEffect): TailwindConfig['theme']['colors'];
5
+ export declare function colorsToTailwindConfig(version: TailwindVersion, colors: AnyColorTheme, effects: MergedEffect): NonNullable<Config['theme']>['colors'];
6
6
  //# sourceMappingURL=toTailwindConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toTailwindConfig.d.ts","sourceRoot":"","sources":["../../src/colors/toTailwindConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,EAAE,aAAa,EAA+B,MAAM,SAAS,CAAA;AAEpE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,GACpB,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAiCnC"}
1
+ {"version":3,"file":"toTailwindConfig.d.ts","sourceRoot":"","sources":["../../src/colors/toTailwindConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,EAAE,aAAa,EAA+B,MAAM,SAAS,CAAA;AAEpE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,GACpB,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAiCxC"}
@@ -1,3 +1,3 @@
1
- export declare const borderRadius: import("tailwindcss/tailwind-config").TailwindThemeValue;
1
+ export declare const borderRadius: import("tailwindcss/types/config").ResolvableTo<import("tailwindcss/types/config").KeyValuePair<string, string>>;
2
2
  export { BorderRadius } from './BorderRadius';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/borderRadius/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,0DAAkC,CAAA;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/borderRadius/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,kHAA+C,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/docs/colors/Colors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoD9B,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAiC1B,CAAA"}
1
+ {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../../src/docs/colors/Colors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoD9B,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAkC1B,CAAA"}
@@ -1,4 +1,4 @@
1
- export declare const colors: import("tailwindcss/tailwind-config").TailwindThemeColors;
1
+ export declare const colors: any;
2
2
  export { Colors } from './Colors';
3
3
  export { TextColors } from './TextColors';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/colors/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,2DAA4B,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/colors/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,KAA4B,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -1,3 +1,3 @@
1
- export declare const screens: import("tailwindcss/tailwind-config").TailwindThemeValue;
1
+ export declare const screens: any;
2
2
  export { Screens } from './Screens';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/screens/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,0DAA6B,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/screens/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,KAA6B,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -1,3 +1,3 @@
1
- export declare const spacing: import("tailwindcss/tailwind-config").TailwindThemeValue;
1
+ export declare const spacing: any;
2
2
  export { Spacing } from './Spacing';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/spacing/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,0DAA6B,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/docs/spacing/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,KAA6B,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -1,7 +1,10 @@
1
1
  import { GradientMaterial } from '@charcoal-ui/foundation';
2
2
  import { ThemeColorGradient } from '@charcoal-ui/theme';
3
3
  import { MergedEffect } from '../foundation';
4
- export default function cssVariableColorPlugin(gradients: ThemeColorGradient, effects: MergedEffect, selectorOrMediaQuery: string): import("tailwindcss/plugin").TailwindPlugin;
4
+ export default function cssVariableColorPlugin(gradients: ThemeColorGradient, effects: MergedEffect, selectorOrMediaQuery: string): {
5
+ handler: import("tailwindcss/types/config").PluginCreator;
6
+ config?: Partial<import("tailwindcss/types/config").Config> | undefined;
7
+ };
5
8
  /**
6
9
  * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない
7
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/gradient/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAI5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,YAAY,EACrB,oBAAoB,EAAE,MAAM,+CA8B7B;AASD;;;;;;;;;GASG;AACH,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAE/C,KAAK,cAAc,GAAG,mBAAmB,MAAM,GAAG,CAAA;AAElD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,MAAM,EAAE,YAAY,GACnB,SAAS,CAqCX"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/gradient/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAI5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,YAAY,EACrB,oBAAoB,EAAE,MAAM;;;EA4B7B;AASD;;;;;;;;;GASG;AACH,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAE/C,KAAK,cAAc,GAAG,mBAAmB,MAAM,GAAG,CAAA;AAElD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,MAAM,EAAE,YAAY,GACnB,SAAS,CAqCX"}
package/dist/index.cjs.js CHANGED
@@ -28,6 +28,7 @@ var src_exports = {};
28
28
  __export(src_exports, {
29
29
  config: () => config,
30
30
  createTailwindConfig: () => createTailwindConfig,
31
+ default: () => src_default,
31
32
  unstable_createTailwindConfigTokenV2: () => unstable_createTailwindConfigTokenV2
32
33
  });
33
34
  module.exports = __toCommonJS(src_exports);
@@ -516,6 +517,7 @@ function createTailwindConfig({
516
517
  };
517
518
  }
518
519
  var config = createTailwindConfig({});
520
+ var src_default = config;
519
521
  // Annotate the CommonJS export names for ESM import in node:
520
522
  0 && (module.exports = {
521
523
  config,
@@ -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/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"]}
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 { Config } from 'tailwindcss'\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): Omit<Config, 'content'> {\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<NonNullable<Config['theme']>> = 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 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: Omit<Config, 'content'> = createTailwindConfig({})\n\nexport default config\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 { Config } from 'tailwindcss'\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(version: TailwindVersion): Partial<Config> {\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 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 { Config } from 'tailwindcss'\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): NonNullable<Config['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 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): ReturnType<typeof plugin> {\n // `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n const { ':root': _defaultTheme, ...otherThemes } = themeMap\n const definitions = defineCssVariables(otherThemes)\n\n return plugin(({ addBase }) => {\n addBase(definitions)\n\n // styledのTokenInjector移植(background処理除く)\n if (cssVariablesV1) {\n const cssVariablesV1 = defineCssVariablesV1(themeMap)\n // @ts-expect-error FIXME\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 addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n addUtilities(classRules, {\n // @ts-expect-error FIXME\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 addUtilities(\n {\n ...typographyClasses,\n '.preserve-half-leading': {\n '&::before': {\n content: 'none',\n },\n '&::after': {\n content: 'none',\n },\n },\n },\n {\n // @ts-expect-error FIXME\n variants: ['responsive'],\n }\n )\n})\n\nexport default typographyPlugin\n","import light from '@charcoal-ui/theme/unstable-tokens/css-variables.json'\nimport type { Config } from 'tailwindcss'\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 NonNullable<Config['theme']>['fontSize']\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: Omit<Config, 'content'> = {\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,4 +1,4 @@
1
- import type { TailwindConfig } from 'tailwindcss/tailwind-config';
1
+ import type { Config } from 'tailwindcss';
2
2
  import { TailwindVersion, ThemeMap } from './types';
3
3
  import { unstable_createTailwindConfigTokenV2 } from './tokenV2';
4
4
  export { unstable_createTailwindConfigTokenV2 };
@@ -8,6 +8,7 @@ interface Options {
8
8
  cssVariablesV1?: boolean;
9
9
  unstableTokenV2?: boolean;
10
10
  }
11
- export declare function createTailwindConfig({ theme, version, cssVariablesV1, unstableTokenV2, }: Options): TailwindConfig;
12
- export declare const config: TailwindConfig;
11
+ export declare function createTailwindConfig({ theme, version, cssVariablesV1, unstableTokenV2, }: Options): Omit<Config, 'content'>;
12
+ export declare const config: Omit<Config, 'content'>;
13
+ export default config;
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,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,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CA+HnC;AAED,eAAO,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAA4B,CAAA;AAEvE,eAAe,MAAM,CAAA"}
package/dist/index.esm.js CHANGED
@@ -504,9 +504,11 @@ function createTailwindConfig({
504
504
  };
505
505
  }
506
506
  var config = createTailwindConfig({});
507
+ var src_default = config;
507
508
  export {
508
509
  config,
509
510
  createTailwindConfig,
511
+ src_default as default,
510
512
  unstable_createTailwindConfigTokenV2
511
513
  };
512
514
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/foundation.ts","../src/util.ts","../src/index.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 { 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 { 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 { 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":["light","mapObject","px","applyEffect","filterObject","flatMapObject","mapObject","applyEffect","filterObject","mapObject","cssVariablesV1","mapObject","filterObject","flatMapObject","applyEffect","plugin","flatMapObject","mapObject","cssVariableColorPlugin","plugin","colors","effect","plugin","mapObject","config","light","px","mapObject","theme","cssVariableColorPlugin"]}
1
+ {"version":3,"sources":["../src/foundation.ts","../src/util.ts","../src/index.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 { 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 { Config } from 'tailwindcss'\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(version: TailwindVersion): Partial<Config> {\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 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 { GRID_COUNT, mergeEffect } from './foundation'\n\nimport type { Config } from 'tailwindcss'\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): Omit<Config, 'content'> {\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<NonNullable<Config['theme']>> = 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 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: Omit<Config, 'content'> = createTailwindConfig({})\n\nexport default config\n","import { Material } from '@charcoal-ui/foundation'\nimport { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport type { Config } from 'tailwindcss'\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): NonNullable<Config['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 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): ReturnType<typeof plugin> {\n // `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n const { ':root': _defaultTheme, ...otherThemes } = themeMap\n const definitions = defineCssVariables(otherThemes)\n\n return plugin(({ addBase }) => {\n addBase(definitions)\n\n // styledのTokenInjector移植(background処理除く)\n if (cssVariablesV1) {\n const cssVariablesV1 = defineCssVariablesV1(themeMap)\n // @ts-expect-error FIXME\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 addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n addUtilities(classRules, {\n // @ts-expect-error FIXME\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 addUtilities(\n {\n ...typographyClasses,\n '.preserve-half-leading': {\n '&::before': {\n content: 'none',\n },\n '&::after': {\n content: 'none',\n },\n },\n },\n {\n // @ts-expect-error FIXME\n variants: ['responsive'],\n }\n )\n})\n\nexport default typographyPlugin\n","import light from '@charcoal-ui/theme/unstable-tokens/css-variables.json'\nimport type { Config } from 'tailwindcss'\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 NonNullable<Config['theme']>['fontSize']\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: Omit<Config, 'content'> = {\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":["light","mapObject","px","applyEffect","filterObject","flatMapObject","mapObject","applyEffect","filterObject","mapObject","cssVariablesV1","mapObject","filterObject","flatMapObject","applyEffect","plugin","flatMapObject","mapObject","cssVariableColorPlugin","plugin","colors","effect","plugin","mapObject","config","light","px","mapObject","theme","cssVariableColorPlugin"]}
package/dist/tokenV2.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- import { TailwindConfig } from 'tailwindcss/tailwind-config';
2
- export declare function unstable_createTailwindConfigTokenV2(): TailwindConfig;
1
+ export declare function unstable_createTailwindConfigTokenV2(): Omit<import("tailwindcss/types/config").Config, "content">;
3
2
  //# sourceMappingURL=tokenV2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenV2.d.ts","sourceRoot":"","sources":["../src/tokenV2.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EAEf,MAAM,6BAA6B,CAAA;AAMpC,wBAAgB,oCAAoC,mBA2DnD"}
1
+ {"version":3,"file":"tokenV2.d.ts","sourceRoot":"","sources":["../src/tokenV2.ts"],"names":[],"mappings":"AAOA,wBAAgB,oCAAoC,+DA2DnD"}
@@ -1,3 +1,6 @@
1
- declare const typographyPlugin: import("tailwindcss/plugin").TailwindPlugin;
1
+ declare const typographyPlugin: {
2
+ handler: import("tailwindcss/types/config").PluginCreator;
3
+ config?: Partial<import("tailwindcss/types/config").Config> | undefined;
4
+ };
2
5
  export default typographyPlugin;
3
6
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/typography/plugin.ts"],"names":[],"mappings":"AAkCA,QAAA,MAAM,gBAAgB,6CAuBpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/typography/plugin.ts"],"names":[],"mappings":"AAkCA,QAAA,MAAM,gBAAgB;;;CAuBpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}