@charcoal-ui/theme 4.2.1 → 4.3.0-beta.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.js CHANGED
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -99,13 +103,16 @@ var light = {
99
103
  hover: {
100
104
  type: "alpha",
101
105
  color: (0, import_rgba.default)("#000000", 0.04)
106
+ // surface3
102
107
  },
103
108
  press: {
104
109
  type: "alpha",
105
110
  color: (0, import_rgba.default)("#000000", 0.16)
111
+ // surface10
106
112
  }
107
113
  },
108
114
  color: {
115
+ // TODO: colors should be picked from foundation color palette
109
116
  transparent: (0, import_rgba.default)("#000000", 0),
110
117
  background1: "#ffffff",
111
118
  background2: "#f5f5f5",
@@ -145,10 +152,12 @@ var dark = {
145
152
  hover: {
146
153
  type: "alpha",
147
154
  color: (0, import_rgba.default)("#ffffff", 0.12)
155
+ // surface3
148
156
  },
149
157
  press: {
150
158
  type: "alpha",
151
159
  color: (0, import_rgba.default)("#ffffff", 0.2)
160
+ // surface10
152
161
  }
153
162
  },
154
163
  color: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/default.ts"],"sourcesContent":["export * from './theme'\nexport * from './abstract-theme'\nexport * from './default'\n","import rgba from 'polished/lib/color/rgba'\nimport { CharcoalTheme } from './theme'\nimport {\n BORDER_RADIUS,\n BREAKPOINT,\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n TYPOGRAPHY_SIZE,\n} from '@charcoal-ui/foundation'\nimport { applyEffect } from '@charcoal-ui/utils'\n\nconst outlineEffect = {\n type: 'opacity',\n opacity: 0.32,\n} as const\n\nconst assertive = '#ff2b00'\nconst brand = '#0096fa'\nconst borderForLight = rgba('#000000', 0.08)\nconst borderForDark = rgba('#ffffff', 0.12)\n\nconst common = {\n typography: {\n size: TYPOGRAPHY_SIZE,\n },\n spacing: SPACING,\n grid: {\n unit: {\n column: COLUMN_UNIT,\n gutter: GUTTER_UNIT,\n },\n },\n borderRadius: BORDER_RADIUS,\n transition: {\n default: {\n duration: 0.2,\n },\n },\n breakpoint: {\n screen1: BREAKPOINT[6],\n screen2: BREAKPOINT[8],\n screen3: BREAKPOINT[10],\n screen4: BREAKPOINT[12],\n },\n gradientColor: {\n surface5: [\n { color: rgba('#000000', 0.32), ratio: 0 },\n { color: rgba('#000000', 0), ratio: 100 },\n ],\n callToAction: [\n { color: '#d1ff1a', ratio: 0 },\n { color: '#1ad1ff', ratio: 100 },\n ],\n },\n outline: {\n default: {\n color: applyEffect(brand, outlineEffect),\n weight: 4,\n },\n assertive: {\n color: applyEffect(assertive, outlineEffect),\n weight: 4,\n },\n },\n elementEffect: {\n disabled: {\n type: 'opacity',\n opacity: 0.32,\n },\n },\n} as const\n\nexport const light: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#000000', 0.04), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#000000', 0.16), // surface10\n },\n },\n color: {\n // TODO: colors should be picked from foundation color palette\n transparent: rgba('#000000', 0),\n background1: '#ffffff',\n background2: '#f5f5f5',\n icon6: rgba('#ffffff', 0.28),\n link1: '#3d7699',\n link2: rgba('#ffffff', 0.36),\n surface1: '#ffffff',\n surface2: rgba('#000000', 0.02),\n surface3: rgba('#000000', 0.04),\n surface4: rgba('#000000', 0.32),\n surface6: rgba('#000000', 0.88),\n surface7: rgba('#000000', 0.02),\n surface8: rgba('#000000', 0.88),\n surface9: '#ffffff',\n surface10: rgba('#000000', 0.16),\n text1: '#1f1f1f',\n text2: '#474747',\n text3: '#858585',\n text4: '#adadad',\n text5: '#ffffff',\n brand,\n assertive,\n warning: '#ffaf0f',\n success: '#b1cc29',\n updatedItem: rgba(0, 150, 250, 0.04),\n border: borderForLight,\n },\n border: {\n default: {\n color: borderForLight,\n },\n },\n}\n\nexport const dark: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#ffffff', 0.12), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#ffffff', 0.2), // surface10\n },\n },\n color: {\n transparent: rgba('#000000', 0),\n background1: '#1f1f1f',\n background2: '#000000',\n icon6: light.color.icon6,\n link1: '#669FC2',\n link2: light.color.link2,\n surface1: '#1f1f1f',\n surface2: rgba('#000000', 0.16),\n surface3: rgba('#ffffff', 0.12),\n surface4: light.color.surface4,\n surface6: rgba('#ffffff', 0.12),\n surface7: rgba('#000000', 0),\n surface8: light.color.surface8,\n surface9: '#333333',\n surface10: rgba('#ffffff', 0.2),\n text1: '#f5f5f5',\n text2: '#d6d6d6',\n text3: '#858585',\n text4: '#5c5c5c',\n text5: '#f5f5f5',\n brand,\n assertive,\n warning: light.color.warning,\n success: light.color.success,\n updatedItem: rgba(0, 150, 250, 0.12),\n border: borderForDark,\n },\n border: {\n default: {\n color: borderForDark,\n },\n },\n}\n"],"mappings":"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","names":["rgba"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/default.ts"],"sourcesContent":["export * from './theme'\nexport * from './abstract-theme'\nexport * from './default'\n","import rgba from 'polished/lib/color/rgba'\nimport { CharcoalTheme } from './theme'\nimport {\n BORDER_RADIUS,\n BREAKPOINT,\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n TYPOGRAPHY_SIZE,\n} from '@charcoal-ui/foundation'\nimport { applyEffect } from '@charcoal-ui/utils'\n\nconst outlineEffect = {\n type: 'opacity',\n opacity: 0.32,\n} as const\n\nconst assertive = '#ff2b00'\nconst brand = '#0096fa'\nconst borderForLight = rgba('#000000', 0.08)\nconst borderForDark = rgba('#ffffff', 0.12)\n\nconst common = {\n typography: {\n size: TYPOGRAPHY_SIZE,\n },\n spacing: SPACING,\n grid: {\n unit: {\n column: COLUMN_UNIT,\n gutter: GUTTER_UNIT,\n },\n },\n borderRadius: BORDER_RADIUS,\n transition: {\n default: {\n duration: 0.2,\n },\n },\n breakpoint: {\n screen1: BREAKPOINT[6],\n screen2: BREAKPOINT[8],\n screen3: BREAKPOINT[10],\n screen4: BREAKPOINT[12],\n },\n gradientColor: {\n surface5: [\n { color: rgba('#000000', 0.32), ratio: 0 },\n { color: rgba('#000000', 0), ratio: 100 },\n ],\n callToAction: [\n { color: '#d1ff1a', ratio: 0 },\n { color: '#1ad1ff', ratio: 100 },\n ],\n },\n outline: {\n default: {\n color: applyEffect(brand, outlineEffect),\n weight: 4,\n },\n assertive: {\n color: applyEffect(assertive, outlineEffect),\n weight: 4,\n },\n },\n elementEffect: {\n disabled: {\n type: 'opacity',\n opacity: 0.32,\n },\n },\n} as const\n\nexport const light: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#000000', 0.04), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#000000', 0.16), // surface10\n },\n },\n color: {\n // TODO: colors should be picked from foundation color palette\n transparent: rgba('#000000', 0),\n background1: '#ffffff',\n background2: '#f5f5f5',\n icon6: rgba('#ffffff', 0.28),\n link1: '#3d7699',\n link2: rgba('#ffffff', 0.36),\n surface1: '#ffffff',\n surface2: rgba('#000000', 0.02),\n surface3: rgba('#000000', 0.04),\n surface4: rgba('#000000', 0.32),\n surface6: rgba('#000000', 0.88),\n surface7: rgba('#000000', 0.02),\n surface8: rgba('#000000', 0.88),\n surface9: '#ffffff',\n surface10: rgba('#000000', 0.16),\n text1: '#1f1f1f',\n text2: '#474747',\n text3: '#858585',\n text4: '#adadad',\n text5: '#ffffff',\n brand,\n assertive,\n warning: '#ffaf0f',\n success: '#b1cc29',\n updatedItem: rgba(0, 150, 250, 0.04),\n border: borderForLight,\n },\n border: {\n default: {\n color: borderForLight,\n },\n },\n}\n\nexport const dark: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#ffffff', 0.12), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#ffffff', 0.2), // surface10\n },\n },\n color: {\n transparent: rgba('#000000', 0),\n background1: '#1f1f1f',\n background2: '#000000',\n icon6: light.color.icon6,\n link1: '#669FC2',\n link2: light.color.link2,\n surface1: '#1f1f1f',\n surface2: rgba('#000000', 0.16),\n surface3: rgba('#ffffff', 0.12),\n surface4: light.color.surface4,\n surface6: rgba('#ffffff', 0.12),\n surface7: rgba('#000000', 0),\n surface8: light.color.surface8,\n surface9: '#333333',\n surface10: rgba('#ffffff', 0.2),\n text1: '#f5f5f5',\n text2: '#d6d6d6',\n text3: '#858585',\n text4: '#5c5c5c',\n text5: '#f5f5f5',\n brand,\n assertive,\n warning: light.color.warning,\n success: light.color.success,\n updatedItem: rgba(0, 150, 250, 0.12),\n border: borderForDark,\n },\n border: {\n default: {\n color: borderForDark,\n },\n },\n}\n"],"mappings":"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","names":["rgba"]}
package/dist/index.esm.js CHANGED
@@ -73,13 +73,16 @@ var light = {
73
73
  hover: {
74
74
  type: "alpha",
75
75
  color: rgba("#000000", 0.04)
76
+ // surface3
76
77
  },
77
78
  press: {
78
79
  type: "alpha",
79
80
  color: rgba("#000000", 0.16)
81
+ // surface10
80
82
  }
81
83
  },
82
84
  color: {
85
+ // TODO: colors should be picked from foundation color palette
83
86
  transparent: rgba("#000000", 0),
84
87
  background1: "#ffffff",
85
88
  background2: "#f5f5f5",
@@ -119,10 +122,12 @@ var dark = {
119
122
  hover: {
120
123
  type: "alpha",
121
124
  color: rgba("#ffffff", 0.12)
125
+ // surface3
122
126
  },
123
127
  press: {
124
128
  type: "alpha",
125
129
  color: rgba("#ffffff", 0.2)
130
+ // surface10
126
131
  }
127
132
  },
128
133
  color: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/default.ts"],"sourcesContent":["import rgba from 'polished/lib/color/rgba'\nimport { CharcoalTheme } from './theme'\nimport {\n BORDER_RADIUS,\n BREAKPOINT,\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n TYPOGRAPHY_SIZE,\n} from '@charcoal-ui/foundation'\nimport { applyEffect } from '@charcoal-ui/utils'\n\nconst outlineEffect = {\n type: 'opacity',\n opacity: 0.32,\n} as const\n\nconst assertive = '#ff2b00'\nconst brand = '#0096fa'\nconst borderForLight = rgba('#000000', 0.08)\nconst borderForDark = rgba('#ffffff', 0.12)\n\nconst common = {\n typography: {\n size: TYPOGRAPHY_SIZE,\n },\n spacing: SPACING,\n grid: {\n unit: {\n column: COLUMN_UNIT,\n gutter: GUTTER_UNIT,\n },\n },\n borderRadius: BORDER_RADIUS,\n transition: {\n default: {\n duration: 0.2,\n },\n },\n breakpoint: {\n screen1: BREAKPOINT[6],\n screen2: BREAKPOINT[8],\n screen3: BREAKPOINT[10],\n screen4: BREAKPOINT[12],\n },\n gradientColor: {\n surface5: [\n { color: rgba('#000000', 0.32), ratio: 0 },\n { color: rgba('#000000', 0), ratio: 100 },\n ],\n callToAction: [\n { color: '#d1ff1a', ratio: 0 },\n { color: '#1ad1ff', ratio: 100 },\n ],\n },\n outline: {\n default: {\n color: applyEffect(brand, outlineEffect),\n weight: 4,\n },\n assertive: {\n color: applyEffect(assertive, outlineEffect),\n weight: 4,\n },\n },\n elementEffect: {\n disabled: {\n type: 'opacity',\n opacity: 0.32,\n },\n },\n} as const\n\nexport const light: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#000000', 0.04), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#000000', 0.16), // surface10\n },\n },\n color: {\n // TODO: colors should be picked from foundation color palette\n transparent: rgba('#000000', 0),\n background1: '#ffffff',\n background2: '#f5f5f5',\n icon6: rgba('#ffffff', 0.28),\n link1: '#3d7699',\n link2: rgba('#ffffff', 0.36),\n surface1: '#ffffff',\n surface2: rgba('#000000', 0.02),\n surface3: rgba('#000000', 0.04),\n surface4: rgba('#000000', 0.32),\n surface6: rgba('#000000', 0.88),\n surface7: rgba('#000000', 0.02),\n surface8: rgba('#000000', 0.88),\n surface9: '#ffffff',\n surface10: rgba('#000000', 0.16),\n text1: '#1f1f1f',\n text2: '#474747',\n text3: '#858585',\n text4: '#adadad',\n text5: '#ffffff',\n brand,\n assertive,\n warning: '#ffaf0f',\n success: '#b1cc29',\n updatedItem: rgba(0, 150, 250, 0.04),\n border: borderForLight,\n },\n border: {\n default: {\n color: borderForLight,\n },\n },\n}\n\nexport const dark: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#ffffff', 0.12), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#ffffff', 0.2), // surface10\n },\n },\n color: {\n transparent: rgba('#000000', 0),\n background1: '#1f1f1f',\n background2: '#000000',\n icon6: light.color.icon6,\n link1: '#669FC2',\n link2: light.color.link2,\n surface1: '#1f1f1f',\n surface2: rgba('#000000', 0.16),\n surface3: rgba('#ffffff', 0.12),\n surface4: light.color.surface4,\n surface6: rgba('#ffffff', 0.12),\n surface7: rgba('#000000', 0),\n surface8: light.color.surface8,\n surface9: '#333333',\n surface10: rgba('#ffffff', 0.2),\n text1: '#f5f5f5',\n text2: '#d6d6d6',\n text3: '#858585',\n text4: '#5c5c5c',\n text5: '#f5f5f5',\n brand,\n assertive,\n warning: light.color.warning,\n success: light.color.success,\n updatedItem: rgba(0, 150, 250, 0.12),\n border: borderForDark,\n },\n border: {\n default: {\n color: borderForDark,\n },\n },\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/default.ts"],"sourcesContent":["import rgba from 'polished/lib/color/rgba'\nimport { CharcoalTheme } from './theme'\nimport {\n BORDER_RADIUS,\n BREAKPOINT,\n COLUMN_UNIT,\n GUTTER_UNIT,\n SPACING,\n TYPOGRAPHY_SIZE,\n} from '@charcoal-ui/foundation'\nimport { applyEffect } from '@charcoal-ui/utils'\n\nconst outlineEffect = {\n type: 'opacity',\n opacity: 0.32,\n} as const\n\nconst assertive = '#ff2b00'\nconst brand = '#0096fa'\nconst borderForLight = rgba('#000000', 0.08)\nconst borderForDark = rgba('#ffffff', 0.12)\n\nconst common = {\n typography: {\n size: TYPOGRAPHY_SIZE,\n },\n spacing: SPACING,\n grid: {\n unit: {\n column: COLUMN_UNIT,\n gutter: GUTTER_UNIT,\n },\n },\n borderRadius: BORDER_RADIUS,\n transition: {\n default: {\n duration: 0.2,\n },\n },\n breakpoint: {\n screen1: BREAKPOINT[6],\n screen2: BREAKPOINT[8],\n screen3: BREAKPOINT[10],\n screen4: BREAKPOINT[12],\n },\n gradientColor: {\n surface5: [\n { color: rgba('#000000', 0.32), ratio: 0 },\n { color: rgba('#000000', 0), ratio: 100 },\n ],\n callToAction: [\n { color: '#d1ff1a', ratio: 0 },\n { color: '#1ad1ff', ratio: 100 },\n ],\n },\n outline: {\n default: {\n color: applyEffect(brand, outlineEffect),\n weight: 4,\n },\n assertive: {\n color: applyEffect(assertive, outlineEffect),\n weight: 4,\n },\n },\n elementEffect: {\n disabled: {\n type: 'opacity',\n opacity: 0.32,\n },\n },\n} as const\n\nexport const light: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#000000', 0.04), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#000000', 0.16), // surface10\n },\n },\n color: {\n // TODO: colors should be picked from foundation color palette\n transparent: rgba('#000000', 0),\n background1: '#ffffff',\n background2: '#f5f5f5',\n icon6: rgba('#ffffff', 0.28),\n link1: '#3d7699',\n link2: rgba('#ffffff', 0.36),\n surface1: '#ffffff',\n surface2: rgba('#000000', 0.02),\n surface3: rgba('#000000', 0.04),\n surface4: rgba('#000000', 0.32),\n surface6: rgba('#000000', 0.88),\n surface7: rgba('#000000', 0.02),\n surface8: rgba('#000000', 0.88),\n surface9: '#ffffff',\n surface10: rgba('#000000', 0.16),\n text1: '#1f1f1f',\n text2: '#474747',\n text3: '#858585',\n text4: '#adadad',\n text5: '#ffffff',\n brand,\n assertive,\n warning: '#ffaf0f',\n success: '#b1cc29',\n updatedItem: rgba(0, 150, 250, 0.04),\n border: borderForLight,\n },\n border: {\n default: {\n color: borderForLight,\n },\n },\n}\n\nexport const dark: CharcoalTheme = {\n ...common,\n effect: {\n hover: {\n type: 'alpha',\n color: rgba('#ffffff', 0.12), // surface3\n },\n press: {\n type: 'alpha',\n color: rgba('#ffffff', 0.2), // surface10\n },\n },\n color: {\n transparent: rgba('#000000', 0),\n background1: '#1f1f1f',\n background2: '#000000',\n icon6: light.color.icon6,\n link1: '#669FC2',\n link2: light.color.link2,\n surface1: '#1f1f1f',\n surface2: rgba('#000000', 0.16),\n surface3: rgba('#ffffff', 0.12),\n surface4: light.color.surface4,\n surface6: rgba('#ffffff', 0.12),\n surface7: rgba('#000000', 0),\n surface8: light.color.surface8,\n surface9: '#333333',\n surface10: rgba('#ffffff', 0.2),\n text1: '#f5f5f5',\n text2: '#d6d6d6',\n text3: '#858585',\n text4: '#5c5c5c',\n text5: '#f5f5f5',\n brand,\n assertive,\n warning: light.color.warning,\n success: light.color.success,\n updatedItem: rgba(0, 150, 250, 0.12),\n border: borderForDark,\n },\n border: {\n default: {\n color: borderForDark,\n },\n },\n}\n"],"mappings":"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","names":[]}
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  return to;
19
19
  };
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/unstable-token-object/index.ts","../../src/unstable-token-object/reference-token.ts","../../src/unstable-token-object/to-token-object.ts","../../src/unstable-token-object/helpers/is-empty-array.ts","../../src/unstable-token-object/helpers/nest-object.ts","../../src/unstable-token-object/helpers/changecase-keys.ts"],"sourcesContent":["import { createReferenceTokenResolver } from './reference-token'\nimport { toTokenObject } from './to-token-object'\nimport type { TokenObject, TokenDictionary, TokenValue } from './types'\n\nimport { kebabCase } from 'change-case-all'\nexport { camelCaseKeys } from './helpers/changecase-keys'\n\nexport const createTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n const referenceTokenResolver = createReferenceTokenResolver(\n tokenDictionary,\n baseTokenDictionary\n )\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key, value]) => [\n key,\n { value: referenceTokenResolver(value.value) } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n\nexport const createCSSTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n format: (value: string) => string = (value) => value\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key]) => [\n key,\n {\n value: `var(--${format(\n [category, ...key.split('/')].map((x) => kebabCase(x)).join('-')\n )})`,\n } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n","import { TokenDictionary, Tokens } from './types'\n\nexport type ReferenceToken = `{${string}}`\n\nconst isReferenceToken = (value: string): value is ReferenceToken =>\n value.startsWith('{') && value.endsWith('}')\n\nconst parseReferenceToken = (\n value: ReferenceToken\n): [category: string, key: string] => {\n const [category, key] = value.slice(1, -1).split('.')\n\n return [category, key]\n}\n\nexport const createReferenceTokenResolver = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n) => {\n const resolver = (value: string): string => {\n if (!isReferenceToken(value)) return value\n\n const [category, tokenKey] = parseReferenceToken(value)\n const baseTokens = baseTokenDictionary[category] as Tokens | undefined\n\n return resolver(\n (baseTokens?.[tokenKey] ?? tokenDictionary[category][tokenKey]).value\n )\n }\n\n return resolver\n}\n","import deepmerge from 'deepmerge'\nimport { isNonEmptyArray } from './helpers/is-empty-array'\nimport { nestObject } from './helpers/nest-object'\nimport { Tokens, TokenObject } from './types'\n\nexport const toTokenObject = <T extends Tokens>(tokens: T): TokenObject<T> => {\n let result = {}\n for (const key in tokens) {\n const { value } = tokens[key]\n const splitted = key.split('/')\n if (!isNonEmptyArray(splitted)) continue\n\n const v = nestObject(splitted, value)\n result = deepmerge(result, v)\n }\n\n return result as TokenObject<T>\n}\n","export const isNonEmptyArray = <T>(arr: T[]): arr is [T, ...T[]] =>\n arr.length > 0\n","import { isNonEmptyArray } from './is-empty-array'\n\ntype MakeNestObject<P extends readonly string[], T> = P extends [\n infer Head,\n ...infer Tail\n]\n ? Head extends string\n ? Tail extends string[]\n ? {\n [K in Head]: MakeNestObject<Tail, T>\n }\n : { [K in Head]: T }\n : T\n : T\n\nexport const nestObject = <P extends [string, ...string[]], T>(\n path: P,\n value: T\n): MakeNestObject<P, T> => {\n if (!isNonEmptyArray(path)) throw new Error('Path must be a non-empty array')\n\n const [key, ...rest] = path\n if (!isNonEmptyArray(rest)) return { [key]: value } as MakeNestObject<P, T>\n\n return {\n [key]: nestObject(rest, value),\n } as MakeNestObject<P, T>\n}\n","import { camelCase } from 'change-case-all'\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n if (value instanceof RegExp) return false\n if (value instanceof Date) return false\n if (value instanceof Error) return false\n\n return typeof value === 'object' && value !== null\n}\n\ntype CamelCase<\n T extends string,\n D extends string = '-'\n> = T extends `${infer A}${D}${infer B}`\n ? `${Lowercase<A>}${Capitalize<CamelCase<B, D>>}`\n : T\n\ntype CamelCaseKeys<\n T extends Record<string, unknown>,\n D extends string = '-'\n> = {\n [K in keyof T as CamelCase<K & string, D>]: T[K] extends Record<\n string,\n unknown\n >\n ? CamelCaseKeys<T[K], D>\n : T[K]\n}\n\nexport const camelCaseKeys = <\n T extends Record<string, unknown>,\n Delimiter extends string = '-'\n>(\n obj: T\n): CamelCaseKeys<T, Delimiter> => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n camelCase(key),\n isObject(value) ? camelCaseKeys(value) : value,\n ])\n ) as CamelCaseKeys<T, Delimiter>\n}\n"],"mappings":"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","names":["deepmerge","import_change_case_all","value"]}
1
+ {"version":3,"sources":["../../src/unstable-token-object/index.ts","../../src/unstable-token-object/reference-token.ts","../../src/unstable-token-object/to-token-object.ts","../../src/unstable-token-object/helpers/is-empty-array.ts","../../src/unstable-token-object/helpers/nest-object.ts","../../src/unstable-token-object/helpers/changecase-keys.ts"],"sourcesContent":["import { createReferenceTokenResolver } from './reference-token'\nimport { toTokenObject } from './to-token-object'\nimport type { TokenObject, TokenDictionary, TokenValue } from './types'\n\nimport { kebabCase } from 'change-case-all'\nexport { camelCaseKeys } from './helpers/changecase-keys'\n\nexport const createTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n const referenceTokenResolver = createReferenceTokenResolver(\n tokenDictionary,\n baseTokenDictionary\n )\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key, value]) => [\n key,\n { value: referenceTokenResolver(value.value) } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n\nexport const createCSSTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n format: (value: string) => string = (value) => value\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key]) => [\n key,\n {\n value: `var(--${format(\n [category, ...key.split('/')].map((x) => kebabCase(x)).join('-')\n )})`,\n } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n","import { TokenDictionary, Tokens } from './types'\n\nexport type ReferenceToken = `{${string}}`\n\nconst isReferenceToken = (value: string): value is ReferenceToken =>\n value.startsWith('{') && value.endsWith('}')\n\nconst parseReferenceToken = (\n value: ReferenceToken\n): [category: string, key: string] => {\n const [category, key] = value.slice(1, -1).split('.')\n\n return [category, key]\n}\n\nexport const createReferenceTokenResolver = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n) => {\n const resolver = (value: string): string => {\n if (!isReferenceToken(value)) return value\n\n const [category, tokenKey] = parseReferenceToken(value)\n const baseTokens = baseTokenDictionary[category] as Tokens | undefined\n\n return resolver(\n (baseTokens?.[tokenKey] ?? tokenDictionary[category][tokenKey]).value\n )\n }\n\n return resolver\n}\n","import deepmerge from 'deepmerge'\nimport { isNonEmptyArray } from './helpers/is-empty-array'\nimport { nestObject } from './helpers/nest-object'\nimport { Tokens, TokenObject } from './types'\n\nexport const toTokenObject = <T extends Tokens>(tokens: T): TokenObject<T> => {\n let result = {}\n for (const key in tokens) {\n const { value } = tokens[key]\n const splitted = key.split('/')\n if (!isNonEmptyArray(splitted)) continue\n\n const v = nestObject(splitted, value)\n result = deepmerge(result, v)\n }\n\n return result as TokenObject<T>\n}\n","export const isNonEmptyArray = <T>(arr: T[]): arr is [T, ...T[]] =>\n arr.length > 0\n","import { isNonEmptyArray } from './is-empty-array'\n\ntype MakeNestObject<P extends readonly string[], T> = P extends [\n infer Head,\n ...infer Tail\n]\n ? Head extends string\n ? Tail extends string[]\n ? {\n [K in Head]: MakeNestObject<Tail, T>\n }\n : { [K in Head]: T }\n : T\n : T\n\nexport const nestObject = <P extends [string, ...string[]], T>(\n path: P,\n value: T\n): MakeNestObject<P, T> => {\n if (!isNonEmptyArray(path)) throw new Error('Path must be a non-empty array')\n\n const [key, ...rest] = path\n if (!isNonEmptyArray(rest)) return { [key]: value } as MakeNestObject<P, T>\n\n return {\n [key]: nestObject(rest, value),\n } as MakeNestObject<P, T>\n}\n","import { camelCase } from 'change-case-all'\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n if (value instanceof RegExp) return false\n if (value instanceof Date) return false\n if (value instanceof Error) return false\n\n return typeof value === 'object' && value !== null\n}\n\ntype CamelCase<\n T extends string,\n D extends string = '-'\n> = T extends `${infer A}${D}${infer B}`\n ? `${Lowercase<A>}${Capitalize<CamelCase<B, D>>}`\n : T\n\ntype CamelCaseKeys<\n T extends Record<string, unknown>,\n D extends string = '-'\n> = {\n [K in keyof T as CamelCase<K & string, D>]: T[K] extends Record<\n string,\n unknown\n >\n ? CamelCaseKeys<T[K], D>\n : T[K]\n}\n\nexport const camelCaseKeys = <\n T extends Record<string, unknown>,\n Delimiter extends string = '-'\n>(\n obj: T\n): CamelCaseKeys<T, Delimiter> => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n camelCase(key),\n isObject(value) ? camelCaseKeys(value) : value,\n ])\n ) as CamelCaseKeys<T, Delimiter>\n}\n"],"mappings":"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","names":["deepmerge","import_change_case_all","value"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/unstable-token-object/reference-token.ts","../../src/unstable-token-object/to-token-object.ts","../../src/unstable-token-object/helpers/is-empty-array.ts","../../src/unstable-token-object/helpers/nest-object.ts","../../src/unstable-token-object/index.ts","../../src/unstable-token-object/helpers/changecase-keys.ts"],"sourcesContent":["import { TokenDictionary, Tokens } from './types'\n\nexport type ReferenceToken = `{${string}}`\n\nconst isReferenceToken = (value: string): value is ReferenceToken =>\n value.startsWith('{') && value.endsWith('}')\n\nconst parseReferenceToken = (\n value: ReferenceToken\n): [category: string, key: string] => {\n const [category, key] = value.slice(1, -1).split('.')\n\n return [category, key]\n}\n\nexport const createReferenceTokenResolver = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n) => {\n const resolver = (value: string): string => {\n if (!isReferenceToken(value)) return value\n\n const [category, tokenKey] = parseReferenceToken(value)\n const baseTokens = baseTokenDictionary[category] as Tokens | undefined\n\n return resolver(\n (baseTokens?.[tokenKey] ?? tokenDictionary[category][tokenKey]).value\n )\n }\n\n return resolver\n}\n","import deepmerge from 'deepmerge'\nimport { isNonEmptyArray } from './helpers/is-empty-array'\nimport { nestObject } from './helpers/nest-object'\nimport { Tokens, TokenObject } from './types'\n\nexport const toTokenObject = <T extends Tokens>(tokens: T): TokenObject<T> => {\n let result = {}\n for (const key in tokens) {\n const { value } = tokens[key]\n const splitted = key.split('/')\n if (!isNonEmptyArray(splitted)) continue\n\n const v = nestObject(splitted, value)\n result = deepmerge(result, v)\n }\n\n return result as TokenObject<T>\n}\n","export const isNonEmptyArray = <T>(arr: T[]): arr is [T, ...T[]] =>\n arr.length > 0\n","import { isNonEmptyArray } from './is-empty-array'\n\ntype MakeNestObject<P extends readonly string[], T> = P extends [\n infer Head,\n ...infer Tail\n]\n ? Head extends string\n ? Tail extends string[]\n ? {\n [K in Head]: MakeNestObject<Tail, T>\n }\n : { [K in Head]: T }\n : T\n : T\n\nexport const nestObject = <P extends [string, ...string[]], T>(\n path: P,\n value: T\n): MakeNestObject<P, T> => {\n if (!isNonEmptyArray(path)) throw new Error('Path must be a non-empty array')\n\n const [key, ...rest] = path\n if (!isNonEmptyArray(rest)) return { [key]: value } as MakeNestObject<P, T>\n\n return {\n [key]: nestObject(rest, value),\n } as MakeNestObject<P, T>\n}\n","import { createReferenceTokenResolver } from './reference-token'\nimport { toTokenObject } from './to-token-object'\nimport type { TokenObject, TokenDictionary, TokenValue } from './types'\n\nimport { kebabCase } from 'change-case-all'\nexport { camelCaseKeys } from './helpers/changecase-keys'\n\nexport const createTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n const referenceTokenResolver = createReferenceTokenResolver(\n tokenDictionary,\n baseTokenDictionary\n )\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key, value]) => [\n key,\n { value: referenceTokenResolver(value.value) } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n\nexport const createCSSTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n format: (value: string) => string = (value) => value\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key]) => [\n key,\n {\n value: `var(--${format(\n [category, ...key.split('/')].map((x) => kebabCase(x)).join('-')\n )})`,\n } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n","import { camelCase } from 'change-case-all'\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n if (value instanceof RegExp) return false\n if (value instanceof Date) return false\n if (value instanceof Error) return false\n\n return typeof value === 'object' && value !== null\n}\n\ntype CamelCase<\n T extends string,\n D extends string = '-'\n> = T extends `${infer A}${D}${infer B}`\n ? `${Lowercase<A>}${Capitalize<CamelCase<B, D>>}`\n : T\n\ntype CamelCaseKeys<\n T extends Record<string, unknown>,\n D extends string = '-'\n> = {\n [K in keyof T as CamelCase<K & string, D>]: T[K] extends Record<\n string,\n unknown\n >\n ? CamelCaseKeys<T[K], D>\n : T[K]\n}\n\nexport const camelCaseKeys = <\n T extends Record<string, unknown>,\n Delimiter extends string = '-'\n>(\n obj: T\n): CamelCaseKeys<T, Delimiter> => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n camelCase(key),\n isObject(value) ? camelCaseKeys(value) : value,\n ])\n ) as CamelCaseKeys<T, Delimiter>\n}\n"],"mappings":";AAIA,IAAM,mBAAmB,CAAC,UACxB,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG;AAE7C,IAAM,sBAAsB,CAC1B,UACoC;AACpC,QAAM,CAAC,UAAU,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAEpD,SAAO,CAAC,UAAU,GAAG;AACvB;AAEO,IAAM,+BAA+B,CAC1C,iBACA,wBACG;AACH,QAAM,WAAW,CAAC,UAA0B;AAC1C,QAAI,CAAC,iBAAiB,KAAK;AAAG,aAAO;AAErC,UAAM,CAAC,UAAU,QAAQ,IAAI,oBAAoB,KAAK;AACtD,UAAM,aAAa,oBAAoB;AAEvC,WAAO;AAAA,OACJ,aAAa,aAAa,gBAAgB,UAAU,WAAW;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AACT;;;AC/BA,OAAO,eAAe;;;ACAf,IAAM,kBAAkB,CAAI,QACjC,IAAI,SAAS;;;ACcR,IAAM,aAAa,CACxB,MACA,UACyB;AACzB,MAAI,CAAC,gBAAgB,IAAI;AAAG,UAAM,IAAI,MAAM,gCAAgC;AAE5E,QAAM,CAAC,QAAQ,IAAI,IAAI;AACvB,MAAI,CAAC,gBAAgB,IAAI;AAAG,WAAO,EAAE,CAAC,MAAM,MAAM;AAElD,SAAO;AAAA,IACL,CAAC,MAAM,WAAW,MAAM,KAAK;AAAA,EAC/B;AACF;;;AFtBO,IAAM,gBAAgB,CAAmB,WAA8B;AAC5E,MAAI,SAAS,CAAC;AACd,aAAW,OAAO,QAAQ;AACxB,UAAM,EAAE,MAAM,IAAI,OAAO;AACzB,UAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,QAAI,CAAC,gBAAgB,QAAQ;AAAG;AAEhC,UAAM,IAAI,WAAW,UAAU,KAAK;AACpC,aAAS,UAAU,QAAQ,CAAC;AAAA,EAC9B;AAEA,SAAO;AACT;;;AGbA,SAAS,iBAAiB;;;ACJ1B,SAAS,iBAAiB;AAE1B,IAAM,WAAW,CAAC,UAAqD;AACrE,MAAI,iBAAiB;AAAQ,WAAO;AACpC,MAAI,iBAAiB;AAAM,WAAO;AAClC,MAAI,iBAAiB;AAAO,WAAO;AAEnC,SAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAqBO,IAAM,gBAAgB,CAI3B,QACgC;AAChC,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAAA,MACxC,UAAU,GAAG;AAAA,MACb,SAAS,KAAK,IAAI,cAAc,KAAK,IAAI;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;;;ADlCO,IAAM,oBAAoB,CAC/B,iBACA,wBAC0C;AAC1C,QAAM,SAAS,CAAC;AAChB,QAAM,yBAAyB;AAAA,IAC7B;AAAA,IACA;AAAA,EACF;AAEA,aAAW,YAAY,iBAAiB;AACtC,UAAM,QAAQ,gBAAgB;AAG9B,UAAM,iBAAiB,OAAO;AAAA,MAC5B,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAKA,MAAK,MAAM;AAAA,QAC1C;AAAA,QACA,EAAE,OAAO,uBAAuBA,OAAM,KAAK,EAAE;AAAA,MAC/C,CAAC;AAAA,IACH;AAEA,WAAO,YAAY,cAAc,cAAc;AAAA,EACjD;AAEA,SAAO;AACT;AAEO,IAAM,uBAAuB,CAClC,iBACA,SAAoC,CAAC,UAAU,UACL;AAC1C,QAAM,SAAS,CAAC;AAEhB,aAAW,YAAY,iBAAiB;AACtC,UAAM,QAAQ,gBAAgB;AAG9B,UAAM,iBAAiB,OAAO;AAAA,MAC5B,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;AAAA,QACnC;AAAA,QACA;AAAA,UACE,OAAO,SAAS;AAAA,YACd,CAAC,UAAU,GAAG,IAAI,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,UACjE;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO,YAAY,cAAc,cAAc;AAAA,EACjD;AAEA,SAAO;AACT;","names":["value"]}
1
+ {"version":3,"sources":["../../src/unstable-token-object/reference-token.ts","../../src/unstable-token-object/to-token-object.ts","../../src/unstable-token-object/helpers/is-empty-array.ts","../../src/unstable-token-object/helpers/nest-object.ts","../../src/unstable-token-object/index.ts","../../src/unstable-token-object/helpers/changecase-keys.ts"],"sourcesContent":["import { TokenDictionary, Tokens } from './types'\n\nexport type ReferenceToken = `{${string}}`\n\nconst isReferenceToken = (value: string): value is ReferenceToken =>\n value.startsWith('{') && value.endsWith('}')\n\nconst parseReferenceToken = (\n value: ReferenceToken\n): [category: string, key: string] => {\n const [category, key] = value.slice(1, -1).split('.')\n\n return [category, key]\n}\n\nexport const createReferenceTokenResolver = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n) => {\n const resolver = (value: string): string => {\n if (!isReferenceToken(value)) return value\n\n const [category, tokenKey] = parseReferenceToken(value)\n const baseTokens = baseTokenDictionary[category] as Tokens | undefined\n\n return resolver(\n (baseTokens?.[tokenKey] ?? tokenDictionary[category][tokenKey]).value\n )\n }\n\n return resolver\n}\n","import deepmerge from 'deepmerge'\nimport { isNonEmptyArray } from './helpers/is-empty-array'\nimport { nestObject } from './helpers/nest-object'\nimport { Tokens, TokenObject } from './types'\n\nexport const toTokenObject = <T extends Tokens>(tokens: T): TokenObject<T> => {\n let result = {}\n for (const key in tokens) {\n const { value } = tokens[key]\n const splitted = key.split('/')\n if (!isNonEmptyArray(splitted)) continue\n\n const v = nestObject(splitted, value)\n result = deepmerge(result, v)\n }\n\n return result as TokenObject<T>\n}\n","export const isNonEmptyArray = <T>(arr: T[]): arr is [T, ...T[]] =>\n arr.length > 0\n","import { isNonEmptyArray } from './is-empty-array'\n\ntype MakeNestObject<P extends readonly string[], T> = P extends [\n infer Head,\n ...infer Tail\n]\n ? Head extends string\n ? Tail extends string[]\n ? {\n [K in Head]: MakeNestObject<Tail, T>\n }\n : { [K in Head]: T }\n : T\n : T\n\nexport const nestObject = <P extends [string, ...string[]], T>(\n path: P,\n value: T\n): MakeNestObject<P, T> => {\n if (!isNonEmptyArray(path)) throw new Error('Path must be a non-empty array')\n\n const [key, ...rest] = path\n if (!isNonEmptyArray(rest)) return { [key]: value } as MakeNestObject<P, T>\n\n return {\n [key]: nestObject(rest, value),\n } as MakeNestObject<P, T>\n}\n","import { createReferenceTokenResolver } from './reference-token'\nimport { toTokenObject } from './to-token-object'\nimport type { TokenObject, TokenDictionary, TokenValue } from './types'\n\nimport { kebabCase } from 'change-case-all'\nexport { camelCaseKeys } from './helpers/changecase-keys'\n\nexport const createTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n baseTokenDictionary: TokenDictionary\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n const referenceTokenResolver = createReferenceTokenResolver(\n tokenDictionary,\n baseTokenDictionary\n )\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key, value]) => [\n key,\n { value: referenceTokenResolver(value.value) } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n\nexport const createCSSTokenObject = <T extends TokenDictionary>(\n tokenDictionary: T,\n format: (value: string) => string = (value) => value\n): { [K in keyof T]: TokenObject<T[K]> } => {\n const result = {} as { [K in keyof T]: TokenObject<T[K]> }\n\n for (const category in tokenDictionary) {\n const value = tokenDictionary[category]\n\n // category ごとに template を展開していく\n const resolvedTokens = Object.fromEntries(\n Object.entries(value).map(([key]) => [\n key,\n {\n value: `var(--${format(\n [category, ...key.split('/')].map((x) => kebabCase(x)).join('-')\n )})`,\n } satisfies TokenValue,\n ])\n ) as typeof value\n\n result[category] = toTokenObject(resolvedTokens)\n }\n\n return result\n}\n","import { camelCase } from 'change-case-all'\n\nconst isObject = (value: unknown): value is Record<string, unknown> => {\n if (value instanceof RegExp) return false\n if (value instanceof Date) return false\n if (value instanceof Error) return false\n\n return typeof value === 'object' && value !== null\n}\n\ntype CamelCase<\n T extends string,\n D extends string = '-'\n> = T extends `${infer A}${D}${infer B}`\n ? `${Lowercase<A>}${Capitalize<CamelCase<B, D>>}`\n : T\n\ntype CamelCaseKeys<\n T extends Record<string, unknown>,\n D extends string = '-'\n> = {\n [K in keyof T as CamelCase<K & string, D>]: T[K] extends Record<\n string,\n unknown\n >\n ? CamelCaseKeys<T[K], D>\n : T[K]\n}\n\nexport const camelCaseKeys = <\n T extends Record<string, unknown>,\n Delimiter extends string = '-'\n>(\n obj: T\n): CamelCaseKeys<T, Delimiter> => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n camelCase(key),\n isObject(value) ? camelCaseKeys(value) : value,\n ])\n ) as CamelCaseKeys<T, Delimiter>\n}\n"],"mappings":";AAIA,IAAM,mBAAmB,CAAC,UACxB,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG;AAE7C,IAAM,sBAAsB,CAC1B,UACoC;AACpC,QAAM,CAAC,UAAU,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAEpD,SAAO,CAAC,UAAU,GAAG;AACvB;AAEO,IAAM,+BAA+B,CAC1C,iBACA,wBACG;AACH,QAAM,WAAW,CAAC,UAA0B;AAC1C,QAAI,CAAC,iBAAiB,KAAK;AAAG,aAAO;AAErC,UAAM,CAAC,UAAU,QAAQ,IAAI,oBAAoB,KAAK;AACtD,UAAM,aAAa,oBAAoB,QAAQ;AAE/C,WAAO;AAAA,OACJ,aAAa,QAAQ,KAAK,gBAAgB,QAAQ,EAAE,QAAQ,GAAG;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AACT;;;AC/BA,OAAO,eAAe;;;ACAf,IAAM,kBAAkB,CAAI,QACjC,IAAI,SAAS;;;ACcR,IAAM,aAAa,CACxB,MACA,UACyB;AACzB,MAAI,CAAC,gBAAgB,IAAI;AAAG,UAAM,IAAI,MAAM,gCAAgC;AAE5E,QAAM,CAAC,KAAK,GAAG,IAAI,IAAI;AACvB,MAAI,CAAC,gBAAgB,IAAI;AAAG,WAAO,EAAE,CAAC,GAAG,GAAG,MAAM;AAElD,SAAO;AAAA,IACL,CAAC,GAAG,GAAG,WAAW,MAAM,KAAK;AAAA,EAC/B;AACF;;;AFtBO,IAAM,gBAAgB,CAAmB,WAA8B;AAC5E,MAAI,SAAS,CAAC;AACd,aAAW,OAAO,QAAQ;AACxB,UAAM,EAAE,MAAM,IAAI,OAAO,GAAG;AAC5B,UAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,QAAI,CAAC,gBAAgB,QAAQ;AAAG;AAEhC,UAAM,IAAI,WAAW,UAAU,KAAK;AACpC,aAAS,UAAU,QAAQ,CAAC;AAAA,EAC9B;AAEA,SAAO;AACT;;;AGbA,SAAS,iBAAiB;;;ACJ1B,SAAS,iBAAiB;AAE1B,IAAM,WAAW,CAAC,UAAqD;AACrE,MAAI,iBAAiB;AAAQ,WAAO;AACpC,MAAI,iBAAiB;AAAM,WAAO;AAClC,MAAI,iBAAiB;AAAO,WAAO;AAEnC,SAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAqBO,IAAM,gBAAgB,CAI3B,QACgC;AAChC,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAAA,MACxC,UAAU,GAAG;AAAA,MACb,SAAS,KAAK,IAAI,cAAc,KAAK,IAAI;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;;;ADlCO,IAAM,oBAAoB,CAC/B,iBACA,wBAC0C;AAC1C,QAAM,SAAS,CAAC;AAChB,QAAM,yBAAyB;AAAA,IAC7B;AAAA,IACA;AAAA,EACF;AAEA,aAAW,YAAY,iBAAiB;AACtC,UAAM,QAAQ,gBAAgB,QAAQ;AAGtC,UAAM,iBAAiB,OAAO;AAAA,MAC5B,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAKA,MAAK,MAAM;AAAA,QAC1C;AAAA,QACA,EAAE,OAAO,uBAAuBA,OAAM,KAAK,EAAE;AAAA,MAC/C,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,IAAI,cAAc,cAAc;AAAA,EACjD;AAEA,SAAO;AACT;AAEO,IAAM,uBAAuB,CAClC,iBACA,SAAoC,CAAC,UAAU,UACL;AAC1C,QAAM,SAAS,CAAC;AAEhB,aAAW,YAAY,iBAAiB;AACtC,UAAM,QAAQ,gBAAgB,QAAQ;AAGtC,UAAM,iBAAiB,OAAO;AAAA,MAC5B,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;AAAA,QACnC;AAAA,QACA;AAAA,UACE,OAAO,SAAS;AAAA,YACd,CAAC,UAAU,GAAG,IAAI,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,UACjE;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,IAAI,cAAc,cAAc;AAAA,EACjD;AAEA,SAAO;AACT;","names":["value"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charcoal-ui/theme",
3
- "version": "4.2.1",
3
+ "version": "4.3.0-beta.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",
@@ -63,8 +63,8 @@
63
63
  "vitest": "^2.0.2"
64
64
  },
65
65
  "dependencies": {
66
- "@charcoal-ui/foundation": "^4.2.1",
67
- "@charcoal-ui/utils": "^4.2.1",
66
+ "@charcoal-ui/foundation": "4.3.0-beta.0",
67
+ "@charcoal-ui/utils": "4.3.0-beta.0",
68
68
  "change-case-all": "^2.1.0",
69
69
  "deepmerge": "^4.3.1",
70
70
  "polished": "^4.1.4"
@@ -82,5 +82,5 @@
82
82
  "url": "https://github.com/pixiv/charcoal.git",
83
83
  "directory": "packages/theme"
84
84
  },
85
- "gitHead": "9a017d7e402dfcf371a5ca9a2b61bcd095467d89"
85
+ "gitHead": "864fc9a6c8ad391df01c7765ab0dff66842c612d"
86
86
  }