@charcoal-ui/tailwind-config 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +3 -5
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +3 -5
- package/dist/index.module.js.map +1 -1
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -56,7 +56,7 @@ function _wrapRegExp() {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
function _extends() {
|
|
59
|
-
_extends = Object.assign
|
|
59
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
60
60
|
for (var i = 1; i < arguments.length; i++) {
|
|
61
61
|
var source = arguments[i];
|
|
62
62
|
|
|
@@ -69,7 +69,6 @@ function _extends() {
|
|
|
69
69
|
|
|
70
70
|
return target;
|
|
71
71
|
};
|
|
72
|
-
|
|
73
72
|
return _extends.apply(this, arguments);
|
|
74
73
|
}
|
|
75
74
|
|
|
@@ -92,11 +91,10 @@ function _inherits(subClass, superClass) {
|
|
|
92
91
|
}
|
|
93
92
|
|
|
94
93
|
function _setPrototypeOf(o, p) {
|
|
95
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
94
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
96
95
|
o.__proto__ = p;
|
|
97
96
|
return o;
|
|
98
97
|
};
|
|
99
|
-
|
|
100
98
|
return _setPrototypeOf(o, p);
|
|
101
99
|
}
|
|
102
100
|
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","entries","name","theme","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","entries","name","theme","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","_defaultTheme","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TYPOGRAPHY_SIZE, SPACING, COLUMN_UNIT, GUTTER_UNIT, BORDER_RADIUS } from '@charcoal-ui/foundation';
|
|
2
2
|
import { light } from '@charcoal-ui/theme';
|
|
3
|
-
import { mapObject, applyEffect,
|
|
3
|
+
import { filterObject, mapObject, applyEffect, flatMapObject, mapKeys, applyEffectToGradient, gradient, halfLeading, px } from '@charcoal-ui/utils';
|
|
4
4
|
import plugin from 'tailwindcss/plugin';
|
|
5
5
|
|
|
6
6
|
function _wrapRegExp() {
|
|
@@ -52,7 +52,7 @@ function _wrapRegExp() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function _extends() {
|
|
55
|
-
_extends = Object.assign
|
|
55
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
56
56
|
for (var i = 1; i < arguments.length; i++) {
|
|
57
57
|
var source = arguments[i];
|
|
58
58
|
|
|
@@ -65,7 +65,6 @@ function _extends() {
|
|
|
65
65
|
|
|
66
66
|
return target;
|
|
67
67
|
};
|
|
68
|
-
|
|
69
68
|
return _extends.apply(this, arguments);
|
|
70
69
|
}
|
|
71
70
|
|
|
@@ -88,11 +87,10 @@ function _inherits(subClass, superClass) {
|
|
|
88
87
|
}
|
|
89
88
|
|
|
90
89
|
function _setPrototypeOf(o, p) {
|
|
91
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
90
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
92
91
|
o.__proto__ = p;
|
|
93
92
|
return o;
|
|
94
93
|
};
|
|
95
|
-
|
|
96
94
|
return _setPrototypeOf(o, p);
|
|
97
95
|
}
|
|
98
96
|
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","name","theme","entries","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","name","theme","entries","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
package/dist/index.module.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TYPOGRAPHY_SIZE, SPACING, COLUMN_UNIT, GUTTER_UNIT, BORDER_RADIUS } from '@charcoal-ui/foundation';
|
|
2
2
|
import { light } from '@charcoal-ui/theme';
|
|
3
|
-
import { mapObject, applyEffect,
|
|
3
|
+
import { filterObject, mapObject, applyEffect, flatMapObject, mapKeys, applyEffectToGradient, gradient, halfLeading, px } from '@charcoal-ui/utils';
|
|
4
4
|
import plugin from 'tailwindcss/plugin';
|
|
5
5
|
|
|
6
6
|
function _wrapRegExp() {
|
|
@@ -52,7 +52,7 @@ function _wrapRegExp() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function _extends() {
|
|
55
|
-
_extends = Object.assign
|
|
55
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
56
56
|
for (var i = 1; i < arguments.length; i++) {
|
|
57
57
|
var source = arguments[i];
|
|
58
58
|
|
|
@@ -65,7 +65,6 @@ function _extends() {
|
|
|
65
65
|
|
|
66
66
|
return target;
|
|
67
67
|
};
|
|
68
|
-
|
|
69
68
|
return _extends.apply(this, arguments);
|
|
70
69
|
}
|
|
71
70
|
|
|
@@ -88,11 +87,10 @@ function _inherits(subClass, superClass) {
|
|
|
88
87
|
}
|
|
89
88
|
|
|
90
89
|
function _setPrototypeOf(o, p) {
|
|
91
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
90
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
92
91
|
o.__proto__ = p;
|
|
93
92
|
return o;
|
|
94
93
|
};
|
|
95
|
-
|
|
96
94
|
return _setPrototypeOf(o, p);
|
|
97
95
|
}
|
|
98
96
|
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.js","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","entries","name","theme","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.module.js","sources":["../src/foundation.ts","../src/util.ts","../src/colors/utils.ts","../src/colors/toTailwindConfig.ts","../src/colors/plugin.ts","../src/gradient/plugin.ts","../src/typography/plugin.ts","../src/index.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 { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\n/**\n * the key \"default\" or \"DEFAULT\" has special meaning and dropped from class name\n *\n * @see https://tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default\n */\nexport function getDefaultKeyName(version: TailwindVersion) {\n switch (version) {\n case 'v3':\n case 'v2': {\n return 'DEFAULT'\n }\n\n case 'v1': {\n return 'default'\n }\n }\n}\n\nexport function getVariantOption(\n version: TailwindVersion\n): Partial<TailwindConfig> {\n switch (version) {\n case 'v3': {\n // v3 以上では variants は variantOrders に改名された\n // そしてこれは上書きをしたいモチベがない\n // https://v2.tailwindcss.com/docs/configuration#variant-order\n return {}\n }\n\n case 'v2':\n case 'v1': {\n return { variants: {} }\n }\n }\n}\n\nfunction setEquals<T>(a: Set<T>, b: Set<T>) {\n return a.size === b.size && Array.from(a).every((value) => b.has(value))\n}\n\nexport function assertAllThemeHaveSameKeys(themeMap: ThemeMap): void {\n const defaultTheme = themeMap[':root']\n const expectedColorKeys = new Set(Object.keys(defaultTheme.color))\n const expectedEffectKeys = new Set(Object.keys(defaultTheme.effect))\n\n for (const [name, theme] of Object.entries(themeMap)) {\n const colorKeys = new Set(Object.keys(theme.color))\n const effectKeys = new Set(Object.keys(theme.effect))\n\n if (!setEquals(colorKeys, expectedColorKeys)) {\n throw new Error(`:root and ${name} does not have same colors.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedColorKeys))}\nGot: ${JSON.stringify(Array.from(colorKeys))}`)\n }\n\n if (!setEquals(effectKeys, expectedEffectKeys)) {\n throw new Error(`:root and ${name} does not have same effects.\n\nExpected( :root ): ${JSON.stringify(Array.from(expectedEffectKeys))}\nGot: ${JSON.stringify(Array.from(effectKeys))}`)\n }\n }\n}\n\nexport function camelToKebab(value: string) {\n return value\n .replace(/(?<small>[\\da-z]|(?=[A-Z]))(?<capital>[A-Z])/gu, '$1-$2')\n .toLowerCase()\n}\n","import { 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 { applyEffect, filterObject, mapObject } from '@charcoal-ui/utils'\nimport { 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 { Material } from '@charcoal-ui/foundation'\nimport { CharcoalTheme as Theme } from '@charcoal-ui/theme'\nimport {\n applyEffect,\n filterObject,\n flatMapObject,\n mapObject,\n} from '@charcoal-ui/utils'\nimport plugin, { TailwindPlugin } from 'tailwindcss/plugin'\nimport { mergeEffect } from '../foundation'\nimport { CSSVariableName, CSSVariables, Definition, ThemeMap } from '../types'\nimport { COLOR_PREFIX, isSingleColor } from './utils'\n\n/**\n * `:root` 以外のケースで各 CSS Variable がどういう値を取るかを定義する\n */\nexport default function cssVariableColorPlugin({\n ':root': _defaultTheme,\n ...themes\n}: ThemeMap): TailwindPlugin {\n const definitions = defineCssVariables(themes)\n\n return plugin(({ addBase }) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase(definitions)\n })\n}\n\nexport function defineCssVariables(themes: Omit<ThemeMap, ':root'>) {\n return mapObject(themes, (selectorOrMediaQuery, theme) => {\n const css = toCssVariables(theme)\n\n if (selectorOrMediaQuery.startsWith('@media')) {\n return [\n selectorOrMediaQuery,\n {\n ':root': css,\n },\n ]\n } else {\n return [selectorOrMediaQuery, css]\n }\n }) as Definition\n}\n\nfunction toCssVariables(theme: Theme): CSSVariables {\n const colors = filterObject(theme.color, isSingleColor)\n const effects = Object.entries(mergeEffect(theme))\n\n return flatMapObject(colors, (name, color) => {\n const varName: keyof CSSVariables = `${COLOR_PREFIX}${name}`\n\n return [\n [varName, color],\n\n ...effects.map<[CSSVariableName, Material]>(([type, effect]) => [\n `${varName}--${type}`,\n applyEffect(color, effect),\n ]),\n ]\n })\n}\n","import plugin from 'tailwindcss/plugin'\nimport { camelToKebab } from '../util'\nimport { GradientMaterial } from '@charcoal-ui/foundation'\nimport { ThemeColorGradient } from '@charcoal-ui/theme'\nimport {\n applyEffectToGradient,\n flatMapObject,\n gradient,\n GradientDirection,\n mapKeys,\n mapObject,\n} from '@charcoal-ui/utils'\nimport { Values } from '../types'\nimport { MergedEffect } from '../foundation'\n\nconst VAR_PREFIX = '--tailwind-gradient-'\n\nexport default function cssVariableColorPlugin(\n gradients: ThemeColorGradient,\n effects: MergedEffect,\n selectorOrMediaQuery: string\n) {\n const utilities = getUtilities(gradients, effects)\n\n const classRules = mapObject(utilities, (name) => [\n `.bg-${name}`,\n { backgroundImage: `var(${VAR_PREFIX}${name})` },\n ])\n\n return plugin(({ addBase, addUtilities }) => {\n const css = mapKeys(utilities, (name) => `${VAR_PREFIX}${name}`)\n if (selectorOrMediaQuery.startsWith('@media')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: {\n ':root': css,\n },\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addBase({\n [selectorOrMediaQuery]: css,\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n addUtilities(classRules, {\n variants: ['responsive'],\n })\n })\n}\n\nconst DIRECTIONS = {\n 'to top': 'top',\n 'to bottom': 'bottom',\n 'to left': 'left',\n 'to right': 'right',\n} as const\n\n/**\n * こういう感じのやつ。この時点では `--tailwind-gradient-` のような CSS 変数名になってない\n *\n * ```js\n * {\n * 'hoge1': 'linear-gradient(to top, ...)',\n * ...\n * }\n * ```\n */\ntype Utilities = Record<string, LinearGradient>\n\ntype LinearGradient = `linear-gradient(${string})`\n\nexport function getUtilities(\n gradients: Record<string, GradientMaterial>,\n effect: MergedEffect\n): Utilities {\n const effects = Object.entries(effect)\n const directions = Object.entries(DIRECTIONS) as [\n GradientDirection,\n Values<typeof DIRECTIONS>\n ][]\n\n return flatMapObject(gradients, (name, colors) =>\n directions.flatMap(([direction, className]) => {\n const toLinearGradient = (colors: GradientMaterial) => {\n const style = gradient(direction)(colors)\n\n if (!('backgroundImage' in style)) {\n throw new Error(\n `Could not generate linear-gradient() from ${name} ${direction} ${className}`\n )\n }\n\n // 本当は backgroundColor も同時に生成されるんだけど、使うにはそれ用の CSS 変数も一緒に作らないといけない\n // とりあえず background-image だけで動くのでこっちだけを利用する\n return style.backgroundImage as LinearGradient\n }\n\n return [\n // こういう感じのやつ\n // { 'hoge1': 'linear-gradienr(to top, ...)' }\n [createUtilityName(name, className), toLinearGradient(colors)],\n\n // こういう感じのやつ\n // { 'hoge1--hover': 'linear-gradienr(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 } from '@charcoal-ui/utils'\nimport { 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","import { GRID_COUNT, mergeEffect } from './foundation'\n\nimport { TailwindConfig } from 'tailwindcss/tailwind-config'\nimport { TailwindVersion, ThemeMap } from './types'\n\nimport {\n assertAllThemeHaveSameKeys,\n getDefaultKeyName,\n getVariantOption,\n} from './util'\nimport {\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n BORDER_RADIUS,\n} from '@charcoal-ui/foundation'\nimport { light } from '@charcoal-ui/theme'\nimport { mapObject, px } from '@charcoal-ui/utils'\nimport { colorsToTailwindConfig } from './colors/toTailwindConfig'\n\nimport cssVariableColorPlugin from './colors/plugin'\nimport cssVariableGradientPlugin from './gradient/plugin'\nimport typographyPlugin from './typography/plugin'\n\ninterface Options {\n version?: TailwindVersion\n theme?: ThemeMap\n}\n\nexport function createTailwindConfig({\n theme = { ':root': light },\n version = 'v3',\n}: Options): TailwindConfig {\n assertAllThemeHaveSameKeys(theme)\n\n const defaultTheme = theme[':root']\n const effects = mergeEffect(defaultTheme)\n const DEFAULT = getDefaultKeyName(version)\n\n return {\n theme: {\n screens: {\n screen1: px(0),\n screen2: px(defaultTheme.breakpoint.screen1),\n screen3: px(defaultTheme.breakpoint.screen2),\n screen4: px(defaultTheme.breakpoint.screen3),\n screen5: px(defaultTheme.breakpoint.screen4),\n },\n colors: {\n // @deprecated\n black: '#000',\n\n // @deprecated\n white: '#fff',\n\n transparent: 'transparent',\n current: 'currentColor',\n ...colorsToTailwindConfig(version, defaultTheme.color, effects),\n },\n borderColor: {\n ...colorsToTailwindConfig(\n version,\n mapObject(defaultTheme.border, (k, v) => [k, v.color]),\n effects\n ),\n },\n spacing: mapObject(SPACING, (name, pixel) => [name, px(pixel)]),\n width: {\n full: '100%',\n screen: '100vw',\n auto: 'auto',\n fit: 'fit-content',\n\n /**\n * generates classes like \"w-col-span-1\"\n */\n ...Array.from({ length: GRID_COUNT }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`col-span-${i}`]: px(COLUMN_UNIT * i + GUTTER_UNIT * (i - 1)),\n }),\n {}\n ),\n\n /**\n * generates classes like \"w-1/12\" (except for 12/12, which just equals to w-full)\n */\n ...Array.from({ length: GRID_COUNT - 1 }, (_, i) => i + 1).reduce(\n (styles, i) => ({\n ...styles,\n [`${i}/${GRID_COUNT}`]: `${(i / GRID_COUNT) * 100}%`,\n }),\n {}\n ),\n },\n gap: {\n fixed: px(GUTTER_UNIT),\n },\n borderRadius: mapObject(BORDER_RADIUS, (name, value) => [\n name,\n px(value),\n ]),\n transitionDuration: {\n [DEFAULT]: '0.2s',\n },\n },\n\n ...getVariantOption(version),\n\n corePlugins: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error 配列にしろと言ってくるが、たぶん @types が間違っている\n lineHeight: false,\n },\n plugins: [\n typographyPlugin,\n cssVariableColorPlugin(theme),\n\n ...Object.entries(theme).map(([selectorOrMediaQuery, theme]) =>\n cssVariableGradientPlugin(\n theme.gradientColor,\n mergeEffect(theme),\n selectorOrMediaQuery\n )\n ),\n ],\n }\n}\n\nexport const config: TailwindConfig = createTailwindConfig({})\n"],"names":["GRID_COUNT","mergeEffect","elementEffect","effect","outline","type","opacity","getDefaultKeyName","version","getVariantOption","variants","setEquals","a","b","size","Array","from","every","value","has","assertAllThemeHaveSameKeys","themeMap","defaultTheme","expectedColorKeys","Set","Object","keys","color","expectedEffectKeys","entries","name","theme","colorKeys","effectKeys","Error","JSON","stringify","camelToKebab","replace","toLowerCase","COLOR_PREFIX","isSingleColor","colorsToTailwindConfig","colors","effects","targetColors","filterObject","DEFAULT","colorsForAllEffects","varName","mapObject","effectName","applyEffect","cssVariableColorPlugin","_defaultTheme","themes","definitions","defineCssVariables","plugin","addBase","selectorOrMediaQuery","css","toCssVariables","startsWith","flatMapObject","map","VAR_PREFIX","gradients","utilities","getUtilities","classRules","backgroundImage","addUtilities","mapKeys","DIRECTIONS","directions","flatMap","direction","className","toLinearGradient","style","gradient","createUtilityName","applyEffectToGradient","gradientName","suffix","filter","Boolean","join","leadingCancel","display","width","height","content","typographyStyle","margin","halfLeading","px","fontSize","lineHeight","marginTop","marginBottom","typographyPlugin","typographyClasses","TYPOGRAPHY_SIZE","createTailwindConfig","light","screens","screen1","screen2","breakpoint","screen3","screen4","screen5","black","white","transparent","current","borderColor","border","k","v","spacing","SPACING","pixel","full","screen","auto","fit","length","_","i","reduce","styles","COLUMN_UNIT","GUTTER_UNIT","gap","fixed","borderRadius","BORDER_RADIUS","transitionDuration","corePlugins","plugins","cssVariableGradientPlugin","gradientColor","config"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@charcoal-ui/tailwind-config",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"typescript": "^4.5.5"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@charcoal-ui/foundation": "^2.
|
|
31
|
-
"@charcoal-ui/theme": "^2.
|
|
32
|
-
"@charcoal-ui/utils": "^2.
|
|
30
|
+
"@charcoal-ui/foundation": "^2.4.0",
|
|
31
|
+
"@charcoal-ui/theme": "^2.4.0",
|
|
32
|
+
"@charcoal-ui/utils": "^2.4.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"csstype": ">=3.0.0",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"url": "https://github.com/pixiv/charcoal.git",
|
|
49
49
|
"directory": "packages/tailwind-config"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "db58bc1a8e14d5f1ccb6e1e275fa29cfb3ec4972"
|
|
52
52
|
}
|