@adea-ai/themes 0.4.3 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +24 -0
  2. package/dist/accents.d.ts +1 -1
  3. package/dist/accents.d.ts.map +1 -1
  4. package/dist/accents.js +1 -1
  5. package/dist/accents.js.map +1 -1
  6. package/dist/adapters/base24.d.ts +2 -2
  7. package/dist/adapters/base24.d.ts.map +1 -1
  8. package/dist/adapters/base24.js +1 -1
  9. package/dist/adapters/base24.js.map +1 -1
  10. package/dist/adapters/css.d.ts +1 -1
  11. package/dist/adapters/css.d.ts.map +1 -1
  12. package/dist/adapters/css.js +2 -2
  13. package/dist/adapters/css.js.map +1 -1
  14. package/dist/adapters/shadcn.d.ts +1 -1
  15. package/dist/adapters/shadcn.d.ts.map +1 -1
  16. package/dist/adapters/shadcn.js +8 -3
  17. package/dist/adapters/shadcn.js.map +1 -1
  18. package/dist/adapters/shiki.d.ts +1 -1
  19. package/dist/adapters/shiki.d.ts.map +1 -1
  20. package/dist/adapters/shiki.js +2 -2
  21. package/dist/adapters/shiki.js.map +1 -1
  22. package/dist/adapters/tailwind.js +2 -2
  23. package/dist/adapters/tailwind.js.map +1 -1
  24. package/dist/adapters/xterm.d.ts +1 -1
  25. package/dist/adapters/xterm.d.ts.map +1 -1
  26. package/dist/adapters/xterm.js +1 -1
  27. package/dist/adapters/xterm.js.map +1 -1
  28. package/dist/catalogue.d.ts +2 -2
  29. package/dist/catalogue.d.ts.map +1 -1
  30. package/dist/catalogue.js +2 -2
  31. package/dist/catalogue.js.map +1 -1
  32. package/dist/derive.d.ts +1 -1
  33. package/dist/derive.d.ts.map +1 -1
  34. package/dist/derive.js +1 -1
  35. package/dist/derive.js.map +1 -1
  36. package/dist/generated/metadata.d.ts +11 -0
  37. package/dist/generated/metadata.d.ts.map +1 -0
  38. package/dist/generated/metadata.js +605 -0
  39. package/dist/generated/metadata.js.map +1 -0
  40. package/dist/generated/schemes.d.ts +1 -1
  41. package/dist/generated/schemes.d.ts.map +1 -1
  42. package/dist/generated/themes/adea-dark.d.ts +11 -0
  43. package/dist/generated/themes/adea-dark.d.ts.map +1 -0
  44. package/dist/generated/themes/adea-dark.js +71 -0
  45. package/dist/generated/themes/adea-dark.js.map +1 -0
  46. package/dist/generated/themes/adea-light.d.ts +11 -0
  47. package/dist/generated/themes/adea-light.d.ts.map +1 -0
  48. package/dist/generated/themes/adea-light.js +71 -0
  49. package/dist/generated/themes/adea-light.js.map +1 -0
  50. package/dist/generated/themes/ayu-light.d.ts +11 -0
  51. package/dist/generated/themes/ayu-light.d.ts.map +1 -0
  52. package/dist/generated/themes/ayu-light.js +69 -0
  53. package/dist/generated/themes/ayu-light.js.map +1 -0
  54. package/dist/generated/themes/ayu-mirage.d.ts +11 -0
  55. package/dist/generated/themes/ayu-mirage.d.ts.map +1 -0
  56. package/dist/generated/themes/ayu-mirage.js +69 -0
  57. package/dist/generated/themes/ayu-mirage.js.map +1 -0
  58. package/dist/generated/themes/ayu.d.ts +11 -0
  59. package/dist/generated/themes/ayu.d.ts.map +1 -0
  60. package/dist/generated/themes/ayu.js +69 -0
  61. package/dist/generated/themes/ayu.js.map +1 -0
  62. package/dist/generated/themes/catppuccin-frappe.d.ts +11 -0
  63. package/dist/generated/themes/catppuccin-frappe.d.ts.map +1 -0
  64. package/dist/generated/themes/catppuccin-frappe.js +70 -0
  65. package/dist/generated/themes/catppuccin-frappe.js.map +1 -0
  66. package/dist/generated/themes/catppuccin-latte.d.ts +11 -0
  67. package/dist/generated/themes/catppuccin-latte.d.ts.map +1 -0
  68. package/dist/generated/themes/catppuccin-latte.js +70 -0
  69. package/dist/generated/themes/catppuccin-latte.js.map +1 -0
  70. package/dist/generated/themes/catppuccin-macchiato.d.ts +11 -0
  71. package/dist/generated/themes/catppuccin-macchiato.d.ts.map +1 -0
  72. package/dist/generated/themes/catppuccin-macchiato.js +69 -0
  73. package/dist/generated/themes/catppuccin-macchiato.js.map +1 -0
  74. package/dist/generated/themes/catppuccin-mocha.d.ts +11 -0
  75. package/dist/generated/themes/catppuccin-mocha.d.ts.map +1 -0
  76. package/dist/generated/themes/catppuccin-mocha.js +70 -0
  77. package/dist/generated/themes/catppuccin-mocha.js.map +1 -0
  78. package/dist/generated/themes/dracula.d.ts +11 -0
  79. package/dist/generated/themes/dracula.d.ts.map +1 -0
  80. package/dist/generated/themes/dracula.js +71 -0
  81. package/dist/generated/themes/dracula.js.map +1 -0
  82. package/dist/generated/themes/everforest-dark.d.ts +11 -0
  83. package/dist/generated/themes/everforest-dark.d.ts.map +1 -0
  84. package/dist/generated/themes/everforest-dark.js +71 -0
  85. package/dist/generated/themes/everforest-dark.js.map +1 -0
  86. package/dist/generated/themes/everforest-light.d.ts +11 -0
  87. package/dist/generated/themes/everforest-light.d.ts.map +1 -0
  88. package/dist/generated/themes/everforest-light.js +70 -0
  89. package/dist/generated/themes/everforest-light.js.map +1 -0
  90. package/dist/generated/themes/gruvbox-dark.d.ts +11 -0
  91. package/dist/generated/themes/gruvbox-dark.d.ts.map +1 -0
  92. package/dist/generated/themes/gruvbox-dark.js +71 -0
  93. package/dist/generated/themes/gruvbox-dark.js.map +1 -0
  94. package/dist/generated/themes/gruvbox-light.d.ts +11 -0
  95. package/dist/generated/themes/gruvbox-light.d.ts.map +1 -0
  96. package/dist/generated/themes/gruvbox-light.js +70 -0
  97. package/dist/generated/themes/gruvbox-light.js.map +1 -0
  98. package/dist/generated/themes/kanagawa.d.ts +11 -0
  99. package/dist/generated/themes/kanagawa.d.ts.map +1 -0
  100. package/dist/generated/themes/kanagawa.js +71 -0
  101. package/dist/generated/themes/kanagawa.js.map +1 -0
  102. package/dist/generated/themes/monokai.d.ts +11 -0
  103. package/dist/generated/themes/monokai.d.ts.map +1 -0
  104. package/dist/generated/themes/monokai.js +71 -0
  105. package/dist/generated/themes/monokai.js.map +1 -0
  106. package/dist/generated/themes/nord.d.ts +11 -0
  107. package/dist/generated/themes/nord.d.ts.map +1 -0
  108. package/dist/generated/themes/nord.js +71 -0
  109. package/dist/generated/themes/nord.js.map +1 -0
  110. package/dist/generated/themes/one-dark.d.ts +11 -0
  111. package/dist/generated/themes/one-dark.d.ts.map +1 -0
  112. package/dist/generated/themes/one-dark.js +70 -0
  113. package/dist/generated/themes/one-dark.js.map +1 -0
  114. package/dist/generated/themes/rosepine-dawn.d.ts +11 -0
  115. package/dist/generated/themes/rosepine-dawn.d.ts.map +1 -0
  116. package/dist/generated/themes/rosepine-dawn.js +69 -0
  117. package/dist/generated/themes/rosepine-dawn.js.map +1 -0
  118. package/dist/generated/themes/rosepine-moon.d.ts +11 -0
  119. package/dist/generated/themes/rosepine-moon.d.ts.map +1 -0
  120. package/dist/generated/themes/rosepine-moon.js +69 -0
  121. package/dist/generated/themes/rosepine-moon.js.map +1 -0
  122. package/dist/generated/themes/rosepine.d.ts +11 -0
  123. package/dist/generated/themes/rosepine.d.ts.map +1 -0
  124. package/dist/generated/themes/rosepine.js +70 -0
  125. package/dist/generated/themes/rosepine.js.map +1 -0
  126. package/dist/generated/themes/solarized-dark.d.ts +11 -0
  127. package/dist/generated/themes/solarized-dark.d.ts.map +1 -0
  128. package/dist/generated/themes/solarized-dark.js +70 -0
  129. package/dist/generated/themes/solarized-dark.js.map +1 -0
  130. package/dist/generated/themes/solarized-light.d.ts +11 -0
  131. package/dist/generated/themes/solarized-light.d.ts.map +1 -0
  132. package/dist/generated/themes/solarized-light.js +70 -0
  133. package/dist/generated/themes/solarized-light.js.map +1 -0
  134. package/dist/generated/themes/tokyonight-day.d.ts +11 -0
  135. package/dist/generated/themes/tokyonight-day.d.ts.map +1 -0
  136. package/dist/generated/themes/tokyonight-day.js +69 -0
  137. package/dist/generated/themes/tokyonight-day.js.map +1 -0
  138. package/dist/generated/themes/tokyonight-night.d.ts +11 -0
  139. package/dist/generated/themes/tokyonight-night.d.ts.map +1 -0
  140. package/dist/generated/themes/tokyonight-night.js +70 -0
  141. package/dist/generated/themes/tokyonight-night.js.map +1 -0
  142. package/dist/generated/themes/tokyonight-storm.d.ts +11 -0
  143. package/dist/generated/themes/tokyonight-storm.d.ts.map +1 -0
  144. package/dist/generated/themes/tokyonight-storm.js +69 -0
  145. package/dist/generated/themes/tokyonight-storm.js.map +1 -0
  146. package/dist/generated/themes/vesper.d.ts +11 -0
  147. package/dist/generated/themes/vesper.d.ts.map +1 -0
  148. package/dist/generated/themes/vesper.js +70 -0
  149. package/dist/generated/themes/vesper.js.map +1 -0
  150. package/dist/generated/themes.d.ts +1 -1
  151. package/dist/generated/themes.d.ts.map +1 -1
  152. package/dist/generated/themes.js +54 -1647
  153. package/dist/generated/themes.js.map +1 -1
  154. package/dist/index.d.ts +24 -24
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +13 -13
  157. package/dist/index.js.map +1 -1
  158. package/dist/normalize.d.ts +4 -4
  159. package/dist/normalize.d.ts.map +1 -1
  160. package/dist/normalize.js +3 -3
  161. package/dist/normalize.js.map +1 -1
  162. package/dist/schema.d.ts +2 -0
  163. package/dist/schema.d.ts.map +1 -1
  164. package/dist/sources.d.ts +2 -2
  165. package/dist/sources.d.ts.map +1 -1
  166. package/dist/sources.js +1 -1
  167. package/dist/sources.js.map +1 -1
  168. package/dist/validate.d.ts +1 -1
  169. package/dist/validate.d.ts.map +1 -1
  170. package/dist/validate.js +4 -4
  171. package/dist/validate.js.map +1 -1
  172. package/package.json +14 -2
  173. package/src/accents.ts +3 -3
  174. package/src/adapters/base24.ts +3 -3
  175. package/src/adapters/css.ts +3 -3
  176. package/src/adapters/shadcn.ts +9 -4
  177. package/src/adapters/shiki.ts +4 -4
  178. package/src/adapters/tailwind.ts +2 -2
  179. package/src/adapters/xterm.ts +3 -3
  180. package/src/catalogue.ts +4 -4
  181. package/src/derive.ts +3 -3
  182. package/src/generated/metadata.ts +607 -0
  183. package/src/generated/schemes.ts +1 -1
  184. package/src/generated/themes/adea-dark.ts +73 -0
  185. package/src/generated/themes/adea-light.ts +73 -0
  186. package/src/generated/themes/ayu-light.ts +71 -0
  187. package/src/generated/themes/ayu-mirage.ts +71 -0
  188. package/src/generated/themes/ayu.ts +71 -0
  189. package/src/generated/themes/catppuccin-frappe.ts +72 -0
  190. package/src/generated/themes/catppuccin-latte.ts +72 -0
  191. package/src/generated/themes/catppuccin-macchiato.ts +71 -0
  192. package/src/generated/themes/catppuccin-mocha.ts +72 -0
  193. package/src/generated/themes/dracula.ts +73 -0
  194. package/src/generated/themes/everforest-dark.ts +73 -0
  195. package/src/generated/themes/everforest-light.ts +72 -0
  196. package/src/generated/themes/gruvbox-dark.ts +73 -0
  197. package/src/generated/themes/gruvbox-light.ts +72 -0
  198. package/src/generated/themes/kanagawa.ts +73 -0
  199. package/src/generated/themes/monokai.ts +73 -0
  200. package/src/generated/themes/nord.ts +73 -0
  201. package/src/generated/themes/one-dark.ts +72 -0
  202. package/src/generated/themes/rosepine-dawn.ts +71 -0
  203. package/src/generated/themes/rosepine-moon.ts +71 -0
  204. package/src/generated/themes/rosepine.ts +72 -0
  205. package/src/generated/themes/solarized-dark.ts +72 -0
  206. package/src/generated/themes/solarized-light.ts +72 -0
  207. package/src/generated/themes/tokyonight-day.ts +71 -0
  208. package/src/generated/themes/tokyonight-night.ts +72 -0
  209. package/src/generated/themes/tokyonight-storm.ts +71 -0
  210. package/src/generated/themes/vesper.ts +72 -0
  211. package/src/generated/themes.ts +55 -1648
  212. package/src/index.ts +25 -24
  213. package/src/normalize.ts +7 -7
  214. package/src/schema.ts +3 -0
  215. package/src/sources.ts +3 -3
  216. package/src/validate.ts +6 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adea-ai/themes",
3
- "version": "0.4.3",
3
+ "version": "0.5.1",
4
4
  "description": "The Adea theme catalogue: semantic OKLCH themes normalized from upstream palettes, with Base24, terminal, CSS and syntax adapters.",
5
5
  "keywords": [
6
6
  "adea",
@@ -77,7 +77,19 @@
77
77
  "import": "./dist/adapters/shiki.js"
78
78
  },
79
79
  "./palettes/*": "./palettes/*",
80
- "./package.json": "./package.json"
80
+ "./package.json": "./package.json",
81
+ "./adapters/shadcn": {
82
+ "types": "./dist/adapters/shadcn.d.ts",
83
+ "import": "./dist/adapters/shadcn.js"
84
+ },
85
+ "./themes/*": {
86
+ "types": "./dist/generated/themes/*.d.ts",
87
+ "import": "./dist/generated/themes/*.js"
88
+ },
89
+ "./metadata": {
90
+ "types": "./dist/generated/metadata.d.ts",
91
+ "import": "./dist/generated/metadata.js"
92
+ }
81
93
  },
82
94
  "publishConfig": {
83
95
  "access": "public"
package/src/accents.ts CHANGED
@@ -44,9 +44,9 @@
44
44
  * the step uniform *and* the hue intact — a mix toward a neutral cannot do both.
45
45
  */
46
46
 
47
- import type { ThemeAppearance } from './schema'
48
- import type { Oklch } from './oklch'
49
- import { contrastRatio, formatOklch, parseColor, shiftLightness } from './oklch'
47
+ import type { ThemeAppearance } from './schema.js'
48
+ import type { Oklch } from './oklch.js'
49
+ import { contrastRatio, formatOklch, parseColor, shiftLightness } from './oklch.js'
50
50
 
51
51
  /** One accent preset: a named primary, per appearance. */
52
52
  export type AccentPreset = {
@@ -27,9 +27,9 @@
27
27
  * than silently lossy, which is what an unnamed slot would have been.
28
28
  */
29
29
 
30
- import type { AdeaAnsi, AdeaTheme, AdeaThemeColors } from '../schema'
31
- import type { Oklch } from '../oklch'
32
- import { formatOklch, parseColor } from '../oklch'
30
+ import type { AdeaAnsi, AdeaTheme, AdeaThemeColors } from '../schema.js'
31
+ import type { Oklch } from '../oklch.js'
32
+ import { formatOklch, parseColor } from '../oklch.js'
33
33
 
34
34
  /** The twenty-four Base24 slots, in the order the specification lists them. */
35
35
  export const BASE24_SLOTS = [
@@ -31,9 +31,9 @@
31
31
  * an sRGB blend, which is what makes hand-mixed tints go muddy.
32
32
  */
33
33
 
34
- import type { AdeaTheme, AdeaThemeColors } from '../schema'
35
- import { THEME_COLOR_KEYS, ANSI_KEYS } from '../schema'
36
- import { STATUS_ROLES, chartSeries, statusForeground, tint } from '../derive'
34
+ import type { AdeaTheme, AdeaThemeColors } from '../schema.js'
35
+ import { THEME_COLOR_KEYS, ANSI_KEYS } from '../schema.js'
36
+ import { STATUS_ROLES, chartSeries, statusForeground, tint } from '../derive.js'
37
37
 
38
38
  /** How the variables are named. */
39
39
  export interface CssOptions {
@@ -22,8 +22,8 @@
22
22
  * A table of the whole mapping is in `docs/shadcn-bridge.md`.
23
23
  */
24
24
 
25
- import type { AdeaTheme, AdeaThemeColors } from '../schema'
26
- import { STATUS_ROLES, statusForeground } from '../derive'
25
+ import type { AdeaTheme, AdeaThemeColors } from '../schema.js'
26
+ import { STATUS_ROLES, statusForeground, tint } from '../derive.js'
27
27
 
28
28
  /**
29
29
  * Canonical role → shadcn custom-property name.
@@ -108,8 +108,13 @@ export function shadcnVariables(theme: AdeaTheme): Record<string, string> {
108
108
  variables['--sidebar-muted-foreground'] = theme.colors.textMuted
109
109
 
110
110
  for (const role of STATUS_ROLES) {
111
- variables[`--${role}-foreground`] = statusForeground(theme, role)
112
- variables[`--${role}-subtle`] = `color-mix(in oklch, var(--${role}) 12%, transparent)`
111
+ // Status labels on a subtle fill use the theme's body foreground; this
112
+ // foreground is reserved for text on the role's solid colour. Keep the
113
+ // generated shadcn names aligned with SHADCN_MAPPING, especially error →
114
+ // destructive, and resolve the tint against a real canvas so it is opaque.
115
+ const shadcnRole = SHADCN_MAPPING[role]
116
+ variables[`--${shadcnRole}-foreground`] = statusForeground(theme, role)
117
+ variables[`--${shadcnRole}-subtle`] = tint(theme.colors[role], theme.colors.background)
113
118
  }
114
119
 
115
120
  variables['--surface-sunken'] = theme.colors.background
@@ -24,10 +24,10 @@
24
24
  * however it likes — synchronously, into a custom highlighter, or inside a worker.
25
25
  */
26
26
 
27
- import type { AdeaTheme } from '../schema'
28
- import type { SyntaxRole } from '../derive'
29
- import { syntaxRolesHex } from '../derive'
30
- import { oklchToHex, parseColor } from '../oklch'
27
+ import type { AdeaTheme } from '../schema.js'
28
+ import type { SyntaxRole } from '../derive.js'
29
+ import { syntaxRolesHex } from '../derive.js'
30
+ import { oklchToHex, parseColor } from '../oklch.js'
31
31
 
32
32
  /**
33
33
  * A Shiki theme registration.
@@ -13,8 +13,8 @@
13
13
  * utility in every consumer, and a consumer cannot silently fall behind.
14
14
  */
15
15
 
16
- import { ANSI_KEYS, THEME_COLOR_KEYS } from '../schema'
17
- import { STATUS_ROLES } from '../derive'
16
+ import { ANSI_KEYS, THEME_COLOR_KEYS } from '../schema.js'
17
+ import { STATUS_ROLES } from '../derive.js'
18
18
 
19
19
  export interface TailwindOptions {
20
20
  /** The custom-property namespace the CSS adapter used. Defaults to `adea`. */
@@ -14,9 +14,9 @@
14
14
  * straight to `terminal.options.theme`.
15
15
  */
16
16
 
17
- import type { AdeaTheme } from '../schema'
18
- import type { Oklch } from '../oklch'
19
- import { contrastRatio, oklchToHex, parseColor, repairContrast } from '../oklch'
17
+ import type { AdeaTheme } from '../schema.js'
18
+ import type { Oklch } from '../oklch.js'
19
+ import { contrastRatio, oklchToHex, parseColor, repairContrast } from '../oklch.js'
20
20
 
21
21
  /**
22
22
  * The shape xterm.js's `ITheme` requires.
package/src/catalogue.ts CHANGED
@@ -14,10 +14,10 @@
14
14
  * component that will eventually ship without the try/catch.
15
15
  */
16
16
 
17
- import type { AdeaTheme, AdeaThemeRecord, ThemeAppearance, ThemeFamily } from './schema'
18
- import type { Base24Scheme } from './adapters/base24'
19
- import { generatedSchemes } from './generated/schemes'
20
- import { generatedThemes } from './generated/themes'
17
+ import type { AdeaTheme, AdeaThemeRecord, ThemeAppearance, ThemeFamily } from './schema.js'
18
+ import type { Base24Scheme } from './adapters/base24.js'
19
+ import { generatedSchemes } from './generated/schemes.js'
20
+ import { generatedThemes } from './generated/themes.js'
21
21
 
22
22
  /**
23
23
  * Every theme in the catalogue, ordered by id.
package/src/derive.ts CHANGED
@@ -29,9 +29,9 @@
29
29
  * palettes today.
30
30
  */
31
31
 
32
- import type { AdeaTheme } from './schema'
33
- import type { Oklch } from './oklch'
34
- import { contrastRatio, formatOklch, mix, oklchToHex, parseColor, repairContrast } from './oklch'
32
+ import type { AdeaTheme } from './schema.js'
33
+ import type { Oklch } from './oklch.js'
34
+ import { contrastRatio, formatOklch, mix, oklchToHex, parseColor, repairContrast } from './oklch.js'
35
35
 
36
36
  /** The syntax roles, matching the names Shiki's theme contract expects. */
37
37
  export type SyntaxRole =