@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 CHANGED
@@ -443,7 +443,8 @@ function createTailwindConfig(_ref) {
443
443
  width: _extends({
444
444
  full: '100%',
445
445
  screen: '100vw',
446
- auto: 'auto'
446
+ auto: 'auto',
447
+ fit: 'fit-content'
447
448
  }, Array.from({
448
449
  length: GRID_COUNT
449
450
  }, function (_, i) {
@@ -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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"}
@@ -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,CA8F1B;AAED,eAAO,MAAM,MAAM,EAAE,cAAyC,CAAA"}
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"}
@@ -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, {
@@ -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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"}
@@ -439,7 +439,8 @@ function createTailwindConfig(_ref) {
439
439
  width: _extends({
440
440
  full: '100%',
441
441
  screen: '100vw',
442
- auto: 'auto'
442
+ auto: 'auto',
443
+ fit: 'fit-content'
443
444
  }, Array.from({
444
445
  length: GRID_COUNT
445
446
  }, function (_, i) {
@@ -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": "1.0.1-alpha.7",
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": "^1.0.1-alpha.1",
31
- "@charcoal-ui/theme": "^2.0.0-alpha.7",
32
- "@charcoal-ui/utils": "^1.1.0-alpha.2"
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": "46e5c8b3bdecb446a83e5520a28a98f2a8840994"
51
+ "gitHead": "01429610d6100445690d4ca8ce4b1d0fd57c00b2"
52
52
  }
@@ -634,6 +634,7 @@ Array [
634
634
  "w-full",
635
635
  "w-screen",
636
636
  "w-auto",
637
+ "w-fit",
637
638
  "w-col-span-1",
638
639
  "w-col-span-2",
639
640
  "w-col-span-3",
package/src/index.ts CHANGED
@@ -69,6 +69,7 @@ export function createTailwindConfig({
69
69
  full: '100%',
70
70
  screen: '100vw',
71
71
  auto: 'auto',
72
+ fit: 'fit-content',
72
73
 
73
74
  /**
74
75
  * generates classes like "w-col-span-1"