@charcoal-ui/tailwind-config 1.0.1-alpha.7 → 2.0.0-rc.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 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.modern.js +2 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +2 -1
- package/dist/index.module.js.map +1 -1
- package/package.json +5 -5
- package/src/__snapshots__/index.test.ts.snap +1 -0
- package/src/index.ts +1 -0
package/dist/index.cjs
CHANGED
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\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","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","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.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAqBnD,UAAU,OAAO;IACf,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAA0B,EAC1B,OAAc,GACf,EAAE,OAAO,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAqBnD,UAAU,OAAO;IACf,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAA0B,EAC1B,OAAc,GACf,EAAE,OAAO,GAAG,cAAc,CA+F1B;AAED,eAAO,MAAM,MAAM,EAAE,cAAyC,CAAA"}
|
package/dist/index.modern.js
CHANGED
|
@@ -412,7 +412,8 @@ function createTailwindConfig({
|
|
|
412
412
|
width: _extends({
|
|
413
413
|
full: '100%',
|
|
414
414
|
screen: '100vw',
|
|
415
|
-
auto: 'auto'
|
|
415
|
+
auto: 'auto',
|
|
416
|
+
fit: 'fit-content'
|
|
416
417
|
}, Array.from({
|
|
417
418
|
length: GRID_COUNT
|
|
418
419
|
}, (_, i) => i + 1).reduce((styles, i) => _extends({}, styles, {
|
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\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","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
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\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","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","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": "
|
|
3
|
+
"version": "2.0.0-rc.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": "^
|
|
31
|
-
"@charcoal-ui/theme": "^2.0.0-
|
|
32
|
-
"@charcoal-ui/utils": "^
|
|
30
|
+
"@charcoal-ui/foundation": "^2.0.0-rc.0",
|
|
31
|
+
"@charcoal-ui/theme": "^2.0.0-rc.0",
|
|
32
|
+
"@charcoal-ui/utils": "^2.0.0-rc.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": "01429610d6100445690d4ca8ce4b1d0fd57c00b2"
|
|
52
52
|
}
|