@ojiepermana/angular 21.1.23 → 21.1.25
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/etos/styles/style.css +4 -2
- package/fesm2022/ojiepermana-angular-brand-etos.mjs +8 -6
- package/fesm2022/ojiepermana-angular-brand-etos.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-component.mjs +602 -8
- package/fesm2022/ojiepermana-angular-component.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-layout.mjs +59 -2
- package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-navigation.mjs +13 -13
- package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-theme.mjs +24 -3
- package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
- package/package.json +9 -1
- package/theme/styles/themes/library/_components.css +18 -0
- package/theme/styles/themes/library/_tokens.css +11 -10
- package/theme/styles/themes/library/color/amber.css +24 -11
- package/theme/styles/themes/library/color/base.css +36 -0
- package/theme/styles/themes/library/color/blue.css +23 -15
- package/theme/styles/themes/library/color/cyan.css +31 -0
- package/theme/styles/themes/library/color/emerald.css +31 -0
- package/theme/styles/themes/library/color/fuchsia.css +31 -0
- package/theme/styles/themes/library/color/green.css +23 -10
- package/theme/styles/themes/library/color/index.css +15 -2
- package/theme/styles/themes/library/color/indigo.css +31 -0
- package/theme/styles/themes/library/color/lime.css +31 -0
- package/theme/styles/themes/library/color/orange.css +31 -0
- package/theme/styles/themes/library/color/pink.css +31 -0
- package/theme/styles/themes/library/color/purple.css +23 -10
- package/theme/styles/themes/library/color/red.css +23 -10
- package/theme/styles/themes/library/color/rose.css +31 -0
- package/theme/styles/themes/library/color/sky.css +31 -0
- package/theme/styles/themes/library/color/teal.css +31 -0
- package/theme/styles/themes/library/color/violet.css +31 -0
- package/theme/styles/themes/library/color/yellow.css +31 -0
- package/theme/styles/themes/library/style/brutal.css +4 -2
- package/theme/styles/themes/library/style/default.css +4 -2
- package/theme/styles/themes/library/style/sharp.css +4 -2
- package/theme/styles/themes/library/style/soft.css +4 -2
- package/theme/styles/themes/tailwind.css +3 -1
- package/types/ojiepermana-angular-brand-etos.d.ts +3 -3
- package/types/ojiepermana-angular-component.d.ts +215 -6
- package/types/ojiepermana-angular-layout.d.ts +16 -1
- package/types/ojiepermana-angular-navigation.d.ts +1 -1
- package/types/ojiepermana-angular-theme.d.ts +4 -4
|
@@ -1,19 +1,39 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, DestroyRef, signal, computed, effect, Injectable, makeEnvironmentProviders, provideEnvironmentInitializer } from '@angular/core';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
|
+
import { THEME_PANEL_THEME_PORT } from '@ojiepermana/angular/component';
|
|
4
5
|
import { MAT_RIPPLE_GLOBAL_OPTIONS } from '@angular/material/core';
|
|
5
6
|
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
|
6
7
|
|
|
7
8
|
const MODES = ['light', 'dark'];
|
|
8
9
|
const COLOR_SCHEMES = ['light', 'dark', 'system'];
|
|
9
|
-
const COLORS = [
|
|
10
|
+
const COLORS = [
|
|
11
|
+
'base',
|
|
12
|
+
'red',
|
|
13
|
+
'orange',
|
|
14
|
+
'amber',
|
|
15
|
+
'yellow',
|
|
16
|
+
'lime',
|
|
17
|
+
'green',
|
|
18
|
+
'emerald',
|
|
19
|
+
'teal',
|
|
20
|
+
'cyan',
|
|
21
|
+
'sky',
|
|
22
|
+
'blue',
|
|
23
|
+
'indigo',
|
|
24
|
+
'violet',
|
|
25
|
+
'purple',
|
|
26
|
+
'fuchsia',
|
|
27
|
+
'pink',
|
|
28
|
+
'rose',
|
|
29
|
+
];
|
|
10
30
|
const STYLES = ['default', 'sharp', 'brutal', 'soft'];
|
|
11
31
|
const BRANDS = ['etos'];
|
|
12
32
|
const MATERIAL_THEME_CONFIG = new InjectionToken('MATERIAL_THEME_CONFIG');
|
|
13
33
|
const DEFAULT_MATERIAL_THEME_CONFIG = {
|
|
14
34
|
defaultMode: 'light',
|
|
15
35
|
defaultBrand: null,
|
|
16
|
-
defaultColor: '
|
|
36
|
+
defaultColor: 'base',
|
|
17
37
|
defaultStyle: 'default',
|
|
18
38
|
modeStorageKey: 'theme-mode',
|
|
19
39
|
brandStorageKey: 'theme-brand',
|
|
@@ -324,7 +344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
324
344
|
* provideMaterialTheme(
|
|
325
345
|
* {
|
|
326
346
|
* mode: 'system',
|
|
327
|
-
* color: '
|
|
347
|
+
* color: 'base',
|
|
328
348
|
* style: 'soft',
|
|
329
349
|
* },
|
|
330
350
|
* withMaterialDefaults(),
|
|
@@ -335,6 +355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
335
355
|
function provideMaterialTheme(config = {}, ...features) {
|
|
336
356
|
return makeEnvironmentProviders([
|
|
337
357
|
{ provide: MATERIAL_THEME_CONFIG, useValue: config },
|
|
358
|
+
{ provide: THEME_PANEL_THEME_PORT, useExisting: ThemeService },
|
|
338
359
|
provideEnvironmentInitializer(() => {
|
|
339
360
|
inject(ThemeService);
|
|
340
361
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ojiepermana-angular-theme.mjs","sources":["../../../projects/angular/theme/src/lib/core/theme.tokens.ts","../../../projects/angular/theme/src/lib/core/theme.service.ts","../../../projects/angular/theme/src/lib/core/theme.provider.ts","../../../projects/angular/theme/public-api.ts","../../../projects/angular/theme/ojiepermana-angular-theme.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const MODES = ['light', 'dark'] as const;\n\nexport type ThemeMode = (typeof MODES)[number];\n\nexport const COLOR_SCHEMES = ['light', 'dark', 'system'] as const;\n\nexport type ColorScheme = (typeof COLOR_SCHEMES)[number];\n\nexport const COLORS = ['blue', 'red', 'green', 'purple', 'amber'] as const;\n\nexport type ThemeColor = (typeof COLORS)[number];\n\nexport const STYLES = ['default', 'sharp', 'brutal', 'soft'] as const;\n\nexport type ThemeStyle = (typeof STYLES)[number];\n\nexport const BRANDS = ['etos'] as const;\n\nexport type ThemeBrand = (typeof BRANDS)[number];\n\nexport interface ThemeConfig {\n readonly mode: ThemeMode;\n readonly brand: ThemeBrand | null;\n readonly color: ThemeColor;\n readonly style: ThemeStyle;\n}\n\nexport interface MaterialThemeConfig {\n /** Initial mode preference. Supports `system` for first-visit OS detection. */\n readonly mode?: ColorScheme;\n /** Initial brand bundle. When set, it replaces the explicit color and style layers. */\n readonly brand?: ThemeBrand | null;\n /** Alias for `brand` to match the persisted `theme-brand` setting. */\n readonly 'theme-brand'?: ThemeBrand | null;\n /** Initial brand color layer. */\n readonly color?: ThemeColor;\n /** Initial style personality layer. */\n readonly style?: ThemeStyle;\n /** @deprecated Use `mode` instead. */\n readonly defaultMode?: ColorScheme;\n /** Default brand bundle. When set, it replaces the explicit color and style layers. */\n readonly defaultBrand?: ThemeBrand | null;\n /** @deprecated Use `color` instead. */\n readonly defaultColor?: ThemeColor;\n /** @deprecated Use `style` instead. */\n readonly defaultStyle?: ThemeStyle;\n /** @deprecated Use `defaultMode` instead. */\n readonly defaultScheme?: ColorScheme;\n /** @deprecated Use `defaultColor` instead. */\n readonly defaultTheme?: ThemeColor | string;\n /** @deprecated Use `modeStorageKey` instead. */\n readonly storageKey?: string | null;\n /** @deprecated Use `modeStorageKey` instead. */\n readonly schemeStorageKey?: string | null;\n /** @deprecated Use `colorStorageKey` instead. */\n readonly themeStorageKey?: string | null;\n /** localStorage key used to persist the mode preference. Set to `null` to disable persistence. */\n readonly modeStorageKey?: string | null;\n /** localStorage key used to persist the brand bundle. Set to `null` to disable persistence. */\n readonly brandStorageKey?: string | null;\n /** localStorage key used to persist the color layer. Set to `null` to disable persistence. */\n readonly colorStorageKey?: string | null;\n /** localStorage key used to persist the style layer. Set to `null` to disable persistence. */\n readonly styleStorageKey?: string | null;\n}\n\nexport interface ResolvedMaterialThemeConfig {\n readonly defaultMode: ColorScheme;\n readonly defaultBrand: ThemeBrand | null;\n readonly defaultColor: ThemeColor;\n readonly defaultStyle: ThemeStyle;\n readonly modeStorageKey: string | null;\n readonly brandStorageKey: string | null;\n readonly colorStorageKey: string | null;\n readonly styleStorageKey: string | null;\n}\n\nexport const MATERIAL_THEME_CONFIG = new InjectionToken<MaterialThemeConfig>('MATERIAL_THEME_CONFIG');\n\nexport const DEFAULT_MATERIAL_THEME_CONFIG: ResolvedMaterialThemeConfig = {\n defaultMode: 'light',\n defaultBrand: null,\n defaultColor: 'blue',\n defaultStyle: 'default',\n modeStorageKey: 'theme-mode',\n brandStorageKey: 'theme-brand',\n colorStorageKey: 'theme-color',\n styleStorageKey: 'theme-style',\n};\n\nexport function isColorScheme(value: string | null | undefined): value is ColorScheme {\n return COLOR_SCHEMES.some((scheme) => scheme === value);\n}\n\nexport function isThemeColor(value: string | null | undefined): value is ThemeColor {\n return COLORS.some((color) => color === value);\n}\n\nexport function isThemeStyle(value: string | null | undefined): value is ThemeStyle {\n return STYLES.some((style) => style === value);\n}\n\nexport function isThemeBrand(value: string | null | undefined): value is ThemeBrand {\n return BRANDS.some((brand) => brand === value);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Injectable, computed, effect, inject, signal } from '@angular/core';\nimport {\n COLOR_SCHEMES,\n DEFAULT_MATERIAL_THEME_CONFIG,\n MATERIAL_THEME_CONFIG,\n type ColorScheme,\n type ResolvedMaterialThemeConfig,\n type ThemeBrand,\n type ThemeColor,\n type ThemeConfig,\n type ThemeMode,\n type ThemeStyle,\n isThemeBrand,\n isColorScheme,\n isThemeColor,\n isThemeStyle,\n} from './theme.tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly config = this.resolveConfig();\n private readonly initialBrand = this.readPersistedBrand() ?? this.config.defaultBrand;\n\n private readonly _modePreference = signal<ColorScheme>(this.readPersistedMode() ?? this.config.defaultMode);\n private readonly _brand = signal<ThemeBrand | null>(this.initialBrand);\n private readonly _color = signal<ThemeColor>(\n this.initialBrand ? this.config.defaultColor : (this.readPersistedColor() ?? this.config.defaultColor),\n );\n private readonly _style = signal<ThemeStyle>(\n this.initialBrand ? this.config.defaultStyle : (this.readPersistedStyle() ?? this.config.defaultStyle),\n );\n private readonly _systemPrefersDark = signal<boolean>(this.prefersDark());\n\n readonly scheme = this._modePreference.asReadonly();\n readonly brand = this._brand.asReadonly();\n readonly color = this._color.asReadonly();\n readonly theme = this._color.asReadonly();\n readonly style = this._style.asReadonly();\n readonly mode = computed<ThemeMode>(() => this.resolveMode(this._modePreference()));\n readonly snapshot = computed<ThemeConfig>(() => ({\n mode: this.mode(),\n brand: this._brand(),\n color: this._color(),\n style: this._style(),\n }));\n\n readonly isDark = computed(() => this.mode() === 'dark');\n\n constructor() {\n this.watchSystemScheme();\n\n effect(() => {\n const root = this.document.documentElement;\n const mode = this.mode();\n const brand = this._brand();\n const color = this._color();\n const style = this._style();\n\n root.dataset['mode'] = mode;\n root.dataset['theme'] = brand ?? color;\n root.classList.toggle('dark', mode === 'dark');\n\n this.persistMode(this._modePreference());\n\n if (brand) {\n root.setAttribute('theme-brand', brand);\n root.removeAttribute('theme-color');\n root.removeAttribute('theme-style');\n delete root.dataset['color'];\n delete root.dataset['style'];\n\n this.persistBrand(brand);\n this.clearPersistedColor();\n this.clearPersistedStyle();\n return;\n }\n\n root.removeAttribute('theme-brand');\n root.setAttribute('theme-color', color);\n root.setAttribute('theme-style', style);\n root.dataset['color'] = color;\n root.dataset['style'] = style;\n\n this.clearPersistedBrand();\n this.persistColor(color);\n this.persistStyle(style);\n });\n }\n\n setMode(mode: ThemeMode): void {\n this._modePreference.set(mode);\n }\n\n setScheme(scheme: ColorScheme): void {\n this._modePreference.set(scheme);\n }\n\n setBrand(brand: ThemeBrand | null): void {\n this._brand.set(brand);\n this._color.set(this.config.defaultColor);\n this._style.set(this.config.defaultStyle);\n }\n\n setColor(color: ThemeColor): void {\n if (this._brand()) {\n this._brand.set(null);\n }\n this._color.set(color);\n }\n\n setTheme(theme: ThemeColor | string): void {\n if (isThemeColor(theme)) {\n this.setColor(theme);\n }\n }\n\n setStyle(style: ThemeStyle): void {\n if (this._brand()) {\n this._brand.set(null);\n }\n this._style.set(style);\n }\n\n setAll(config: Partial<ThemeConfig> & { readonly scheme?: ColorScheme }): void {\n if (config.scheme) {\n this.setScheme(config.scheme);\n }\n if (config.mode) {\n this.setMode(config.mode);\n }\n if (config.brand !== undefined) {\n this.setBrand(config.brand);\n }\n if (config.brand === undefined || config.brand === null) {\n if (config.color) {\n this.setColor(config.color);\n }\n if (config.style) {\n this.setStyle(config.style);\n }\n }\n }\n\n toggleScheme(): void {\n this.toggleMode();\n }\n\n toggleMode(): void {\n this.setMode(this.mode() === 'dark' ? 'light' : 'dark');\n }\n\n reset(): void {\n this._modePreference.set(this.config.defaultMode);\n this._brand.set(this.config.defaultBrand);\n this._color.set(this.config.defaultColor);\n this._style.set(this.config.defaultStyle);\n }\n\n private resolveConfig(): ResolvedMaterialThemeConfig {\n const config = inject(MATERIAL_THEME_CONFIG, { optional: true }) ?? {};\n const configuredMode = config.mode ?? config.defaultMode ?? config.defaultScheme;\n const configuredBrand = config.brand ?? config['theme-brand'] ?? config.defaultBrand;\n const configuredColor = config.color ?? config.defaultColor ?? config.defaultTheme;\n const configuredStyle = config.style ?? config.defaultStyle;\n\n const defaultMode = isColorScheme(configuredMode) ? configuredMode : DEFAULT_MATERIAL_THEME_CONFIG.defaultMode;\n const defaultBrand = isThemeBrand(configuredBrand) ? configuredBrand : DEFAULT_MATERIAL_THEME_CONFIG.defaultBrand;\n const defaultColor = isThemeColor(configuredColor) ? configuredColor : DEFAULT_MATERIAL_THEME_CONFIG.defaultColor;\n const defaultStyle = isThemeStyle(configuredStyle) ? configuredStyle : DEFAULT_MATERIAL_THEME_CONFIG.defaultStyle;\n\n return {\n defaultMode,\n defaultBrand,\n defaultColor,\n defaultStyle,\n modeStorageKey:\n config.modeStorageKey ??\n config.schemeStorageKey ??\n config.storageKey ??\n DEFAULT_MATERIAL_THEME_CONFIG.modeStorageKey,\n brandStorageKey: config.brandStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.brandStorageKey,\n colorStorageKey:\n config.colorStorageKey ?? config.themeStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.colorStorageKey,\n styleStorageKey: config.styleStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.styleStorageKey,\n };\n }\n\n private resolveMode(mode: ColorScheme): ThemeMode {\n return mode === 'system' ? (this._systemPrefersDark() ? 'dark' : 'light') : mode;\n }\n\n private prefersDark(): boolean {\n const mql = this.document.defaultView?.matchMedia?.('(prefers-color-scheme: dark)');\n return !!mql?.matches;\n }\n\n private watchSystemScheme(): void {\n const mql = this.document.defaultView?.matchMedia?.('(prefers-color-scheme: dark)');\n if (!mql) return;\n\n const listener = (event: MediaQueryListEvent): void => {\n this._systemPrefersDark.set(event.matches);\n };\n mql.addEventListener('change', listener);\n this.destroyRef.onDestroy(() => mql.removeEventListener('change', listener));\n }\n\n private readPersistedMode(): ColorScheme | null {\n const key = this.config.modeStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isColorScheme(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedBrand(): ThemeBrand | null {\n const key = this.config.brandStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeBrand(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedColor(): ThemeColor | null {\n const key = this.config.colorStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeColor(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedStyle(): ThemeStyle | null {\n const key = this.config.styleStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeStyle(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private persistMode(mode: ColorScheme): void {\n const key = this.config.modeStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, mode);\n } catch {\n /* ignore */\n }\n }\n\n private persistBrand(brand: ThemeBrand): void {\n const key = this.config.brandStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, brand);\n } catch {\n /* ignore */\n }\n }\n\n private persistColor(color: ThemeColor): void {\n const key = this.config.colorStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, color);\n } catch {\n /* ignore */\n }\n }\n\n private persistStyle(style: ThemeStyle): void {\n const key = this.config.styleStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, style);\n } catch {\n /* ignore */\n }\n }\n\n private clearPersistedBrand(): void {\n this.clearPersistedItem(this.config.brandStorageKey);\n }\n\n private clearPersistedColor(): void {\n this.clearPersistedItem(this.config.colorStorageKey);\n }\n\n private clearPersistedStyle(): void {\n this.clearPersistedItem(this.config.styleStorageKey);\n }\n\n private clearPersistedItem(key: string | null): void {\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.removeItem(key);\n } catch {\n /* ignore */\n }\n }\n}\n","import {\n inject,\n type EnvironmentProviders,\n type Provider,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { MAT_RIPPLE_GLOBAL_OPTIONS } from '@angular/material/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { ThemeService } from './theme.service';\nimport { MATERIAL_THEME_CONFIG, type MaterialThemeConfig } from './theme.tokens';\n\n/**\n * Opaque feature unit consumed by {@link provideMaterialTheme}. Mirrors\n * Angular's router/http feature pattern so add-ons can be composed without\n * widening the primary provider signature.\n */\nexport interface MaterialThemeFeature {\n readonly providers: Provider[];\n}\n\n/**\n * Bootstrap the shared theme for any `@ojiepermana/angular/*` entry point.\n *\n * By default wires up the theme config token and eagerly initializes `ThemeService`\n * so root theme attributes are applied during bootstrap. Opt in\n * to Angular Material defaults (ripple / form-field) via\n * {@link withMaterialDefaults}.\n * Supports shorthand `mode`, `color`, and `style` config keys.\n *\n * @example\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideAnimations(),\n * provideMaterialTheme(\n * {\n * mode: 'system',\n * color: 'blue',\n * style: 'soft',\n * },\n * withMaterialDefaults(),\n * ),\n * ],\n * };\n */\nexport function provideMaterialTheme(\n config: MaterialThemeConfig = {},\n ...features: MaterialThemeFeature[]\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: MATERIAL_THEME_CONFIG, useValue: config },\n provideEnvironmentInitializer(() => {\n inject(ThemeService);\n }),\n ...features.flatMap((f) => f.providers),\n ]);\n}\n\n/**\n * Opt-in Angular Material defaults tuned for the shared theme layer:\n *\n * - Disables the global Material ripple.\n * - Forces `appearance: 'outline'` + `subscriptSizing: 'dynamic'` on every\n * `mat-form-field`.\n *\n * Only apply when your app actually renders Angular Material components.\n */\nexport function withMaterialDefaults(): MaterialThemeFeature {\n return {\n providers: [\n { provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: { disabled: true } },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: 'outline', subscriptSizing: 'dynamic' },\n },\n ],\n };\n}\n","/*\n * Public API Surface of @ojiepermana/angular/theme\n *\n * The single source of truth for 3-layer design tokens, CSS variables,\n * and the `ThemeService` shared by every `@ojiepermana/angular/*` subpath\n * (shadcn, layout, navigation, ...).\n *\n * Usage:\n * // app.config.ts\n * import { provideMaterialTheme } from '@ojiepermana/angular/theme';\n *\n * // styles.css\n * @import '@ojiepermana/angular/theme/styles';\n * @import 'tailwindcss';\n */\n\nexport * from './src/lib/core/theme.tokens';\nexport * from './src/lib/core/theme.service';\nexport * from './src/lib/core/theme.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ojiepermana-angular-theme.mjs","sources":["../../../projects/angular/theme/src/lib/core/theme.tokens.ts","../../../projects/angular/theme/src/lib/core/theme.service.ts","../../../projects/angular/theme/src/lib/core/theme.provider.ts","../../../projects/angular/theme/public-api.ts","../../../projects/angular/theme/ojiepermana-angular-theme.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const MODES = ['light', 'dark'] as const;\n\nexport type ThemeMode = (typeof MODES)[number];\n\nexport const COLOR_SCHEMES = ['light', 'dark', 'system'] as const;\n\nexport type ColorScheme = (typeof COLOR_SCHEMES)[number];\n\nexport const COLORS = [\n 'base',\n 'red',\n 'orange',\n 'amber',\n 'yellow',\n 'lime',\n 'green',\n 'emerald',\n 'teal',\n 'cyan',\n 'sky',\n 'blue',\n 'indigo',\n 'violet',\n 'purple',\n 'fuchsia',\n 'pink',\n 'rose',\n] as const;\n\nexport type ThemeColor = (typeof COLORS)[number];\n\nexport const STYLES = ['default', 'sharp', 'brutal', 'soft'] as const;\n\nexport type ThemeStyle = (typeof STYLES)[number];\n\nexport const BRANDS = ['etos'] as const;\n\nexport type ThemeBrand = (typeof BRANDS)[number];\n\nexport interface ThemeConfig {\n readonly mode: ThemeMode;\n readonly brand: ThemeBrand | null;\n readonly color: ThemeColor;\n readonly style: ThemeStyle;\n}\n\nexport interface MaterialThemeConfig {\n /** Initial mode preference. Supports `system` for first-visit OS detection. */\n readonly mode?: ColorScheme;\n /** Initial brand bundle. When set, it replaces the explicit color and style layers. */\n readonly brand?: ThemeBrand | null;\n /** Alias for `brand` to match the persisted `theme-brand` setting. */\n readonly 'theme-brand'?: ThemeBrand | null;\n /** Initial brand color layer. */\n readonly color?: ThemeColor;\n /** Initial style personality layer. */\n readonly style?: ThemeStyle;\n /** @deprecated Use `mode` instead. */\n readonly defaultMode?: ColorScheme;\n /** Default brand bundle. When set, it replaces the explicit color and style layers. */\n readonly defaultBrand?: ThemeBrand | null;\n /** @deprecated Use `color` instead. */\n readonly defaultColor?: ThemeColor;\n /** @deprecated Use `style` instead. */\n readonly defaultStyle?: ThemeStyle;\n /** @deprecated Use `defaultMode` instead. */\n readonly defaultScheme?: ColorScheme;\n /** @deprecated Use `defaultColor` instead. */\n readonly defaultTheme?: ThemeColor | string;\n /** @deprecated Use `modeStorageKey` instead. */\n readonly storageKey?: string | null;\n /** @deprecated Use `modeStorageKey` instead. */\n readonly schemeStorageKey?: string | null;\n /** @deprecated Use `colorStorageKey` instead. */\n readonly themeStorageKey?: string | null;\n /** localStorage key used to persist the mode preference. Set to `null` to disable persistence. */\n readonly modeStorageKey?: string | null;\n /** localStorage key used to persist the brand bundle. Set to `null` to disable persistence. */\n readonly brandStorageKey?: string | null;\n /** localStorage key used to persist the color layer. Set to `null` to disable persistence. */\n readonly colorStorageKey?: string | null;\n /** localStorage key used to persist the style layer. Set to `null` to disable persistence. */\n readonly styleStorageKey?: string | null;\n}\n\nexport interface ResolvedMaterialThemeConfig {\n readonly defaultMode: ColorScheme;\n readonly defaultBrand: ThemeBrand | null;\n readonly defaultColor: ThemeColor;\n readonly defaultStyle: ThemeStyle;\n readonly modeStorageKey: string | null;\n readonly brandStorageKey: string | null;\n readonly colorStorageKey: string | null;\n readonly styleStorageKey: string | null;\n}\n\nexport const MATERIAL_THEME_CONFIG = new InjectionToken<MaterialThemeConfig>('MATERIAL_THEME_CONFIG');\n\nexport const DEFAULT_MATERIAL_THEME_CONFIG: ResolvedMaterialThemeConfig = {\n defaultMode: 'light',\n defaultBrand: null,\n defaultColor: 'base',\n defaultStyle: 'default',\n modeStorageKey: 'theme-mode',\n brandStorageKey: 'theme-brand',\n colorStorageKey: 'theme-color',\n styleStorageKey: 'theme-style',\n};\n\nexport function isColorScheme(value: string | null | undefined): value is ColorScheme {\n return COLOR_SCHEMES.some((scheme) => scheme === value);\n}\n\nexport function isThemeColor(value: string | null | undefined): value is ThemeColor {\n return COLORS.some((color) => color === value);\n}\n\nexport function isThemeStyle(value: string | null | undefined): value is ThemeStyle {\n return STYLES.some((style) => style === value);\n}\n\nexport function isThemeBrand(value: string | null | undefined): value is ThemeBrand {\n return BRANDS.some((brand) => brand === value);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Injectable, computed, effect, inject, signal } from '@angular/core';\nimport {\n COLOR_SCHEMES,\n DEFAULT_MATERIAL_THEME_CONFIG,\n MATERIAL_THEME_CONFIG,\n type ColorScheme,\n type ResolvedMaterialThemeConfig,\n type ThemeBrand,\n type ThemeColor,\n type ThemeConfig,\n type ThemeMode,\n type ThemeStyle,\n isThemeBrand,\n isColorScheme,\n isThemeColor,\n isThemeStyle,\n} from './theme.tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly config = this.resolveConfig();\n private readonly initialBrand = this.readPersistedBrand() ?? this.config.defaultBrand;\n\n private readonly _modePreference = signal<ColorScheme>(this.readPersistedMode() ?? this.config.defaultMode);\n private readonly _brand = signal<ThemeBrand | null>(this.initialBrand);\n private readonly _color = signal<ThemeColor>(\n this.initialBrand ? this.config.defaultColor : (this.readPersistedColor() ?? this.config.defaultColor),\n );\n private readonly _style = signal<ThemeStyle>(\n this.initialBrand ? this.config.defaultStyle : (this.readPersistedStyle() ?? this.config.defaultStyle),\n );\n private readonly _systemPrefersDark = signal<boolean>(this.prefersDark());\n\n readonly scheme = this._modePreference.asReadonly();\n readonly brand = this._brand.asReadonly();\n readonly color = this._color.asReadonly();\n readonly theme = this._color.asReadonly();\n readonly style = this._style.asReadonly();\n readonly mode = computed<ThemeMode>(() => this.resolveMode(this._modePreference()));\n readonly snapshot = computed<ThemeConfig>(() => ({\n mode: this.mode(),\n brand: this._brand(),\n color: this._color(),\n style: this._style(),\n }));\n\n readonly isDark = computed(() => this.mode() === 'dark');\n\n constructor() {\n this.watchSystemScheme();\n\n effect(() => {\n const root = this.document.documentElement;\n const mode = this.mode();\n const brand = this._brand();\n const color = this._color();\n const style = this._style();\n\n root.dataset['mode'] = mode;\n root.dataset['theme'] = brand ?? color;\n root.classList.toggle('dark', mode === 'dark');\n\n this.persistMode(this._modePreference());\n\n if (brand) {\n root.setAttribute('theme-brand', brand);\n root.removeAttribute('theme-color');\n root.removeAttribute('theme-style');\n delete root.dataset['color'];\n delete root.dataset['style'];\n\n this.persistBrand(brand);\n this.clearPersistedColor();\n this.clearPersistedStyle();\n return;\n }\n\n root.removeAttribute('theme-brand');\n root.setAttribute('theme-color', color);\n root.setAttribute('theme-style', style);\n root.dataset['color'] = color;\n root.dataset['style'] = style;\n\n this.clearPersistedBrand();\n this.persistColor(color);\n this.persistStyle(style);\n });\n }\n\n setMode(mode: ThemeMode): void {\n this._modePreference.set(mode);\n }\n\n setScheme(scheme: ColorScheme): void {\n this._modePreference.set(scheme);\n }\n\n setBrand(brand: ThemeBrand | null): void {\n this._brand.set(brand);\n this._color.set(this.config.defaultColor);\n this._style.set(this.config.defaultStyle);\n }\n\n setColor(color: ThemeColor): void {\n if (this._brand()) {\n this._brand.set(null);\n }\n this._color.set(color);\n }\n\n setTheme(theme: ThemeColor | string): void {\n if (isThemeColor(theme)) {\n this.setColor(theme);\n }\n }\n\n setStyle(style: ThemeStyle): void {\n if (this._brand()) {\n this._brand.set(null);\n }\n this._style.set(style);\n }\n\n setAll(config: Partial<ThemeConfig> & { readonly scheme?: ColorScheme }): void {\n if (config.scheme) {\n this.setScheme(config.scheme);\n }\n if (config.mode) {\n this.setMode(config.mode);\n }\n if (config.brand !== undefined) {\n this.setBrand(config.brand);\n }\n if (config.brand === undefined || config.brand === null) {\n if (config.color) {\n this.setColor(config.color);\n }\n if (config.style) {\n this.setStyle(config.style);\n }\n }\n }\n\n toggleScheme(): void {\n this.toggleMode();\n }\n\n toggleMode(): void {\n this.setMode(this.mode() === 'dark' ? 'light' : 'dark');\n }\n\n reset(): void {\n this._modePreference.set(this.config.defaultMode);\n this._brand.set(this.config.defaultBrand);\n this._color.set(this.config.defaultColor);\n this._style.set(this.config.defaultStyle);\n }\n\n private resolveConfig(): ResolvedMaterialThemeConfig {\n const config = inject(MATERIAL_THEME_CONFIG, { optional: true }) ?? {};\n const configuredMode = config.mode ?? config.defaultMode ?? config.defaultScheme;\n const configuredBrand = config.brand ?? config['theme-brand'] ?? config.defaultBrand;\n const configuredColor = config.color ?? config.defaultColor ?? config.defaultTheme;\n const configuredStyle = config.style ?? config.defaultStyle;\n\n const defaultMode = isColorScheme(configuredMode) ? configuredMode : DEFAULT_MATERIAL_THEME_CONFIG.defaultMode;\n const defaultBrand = isThemeBrand(configuredBrand) ? configuredBrand : DEFAULT_MATERIAL_THEME_CONFIG.defaultBrand;\n const defaultColor = isThemeColor(configuredColor) ? configuredColor : DEFAULT_MATERIAL_THEME_CONFIG.defaultColor;\n const defaultStyle = isThemeStyle(configuredStyle) ? configuredStyle : DEFAULT_MATERIAL_THEME_CONFIG.defaultStyle;\n\n return {\n defaultMode,\n defaultBrand,\n defaultColor,\n defaultStyle,\n modeStorageKey:\n config.modeStorageKey ??\n config.schemeStorageKey ??\n config.storageKey ??\n DEFAULT_MATERIAL_THEME_CONFIG.modeStorageKey,\n brandStorageKey: config.brandStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.brandStorageKey,\n colorStorageKey:\n config.colorStorageKey ?? config.themeStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.colorStorageKey,\n styleStorageKey: config.styleStorageKey ?? DEFAULT_MATERIAL_THEME_CONFIG.styleStorageKey,\n };\n }\n\n private resolveMode(mode: ColorScheme): ThemeMode {\n return mode === 'system' ? (this._systemPrefersDark() ? 'dark' : 'light') : mode;\n }\n\n private prefersDark(): boolean {\n const mql = this.document.defaultView?.matchMedia?.('(prefers-color-scheme: dark)');\n return !!mql?.matches;\n }\n\n private watchSystemScheme(): void {\n const mql = this.document.defaultView?.matchMedia?.('(prefers-color-scheme: dark)');\n if (!mql) return;\n\n const listener = (event: MediaQueryListEvent): void => {\n this._systemPrefersDark.set(event.matches);\n };\n mql.addEventListener('change', listener);\n this.destroyRef.onDestroy(() => mql.removeEventListener('change', listener));\n }\n\n private readPersistedMode(): ColorScheme | null {\n const key = this.config.modeStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isColorScheme(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedBrand(): ThemeBrand | null {\n const key = this.config.brandStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeBrand(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedColor(): ThemeColor | null {\n const key = this.config.colorStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeColor(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private readPersistedStyle(): ThemeStyle | null {\n const key = this.config.styleStorageKey;\n if (!key) return null;\n try {\n const value = this.document.defaultView?.localStorage?.getItem(key);\n return isThemeStyle(value) ? value : null;\n } catch {\n return null;\n }\n }\n\n private persistMode(mode: ColorScheme): void {\n const key = this.config.modeStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, mode);\n } catch {\n /* ignore */\n }\n }\n\n private persistBrand(brand: ThemeBrand): void {\n const key = this.config.brandStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, brand);\n } catch {\n /* ignore */\n }\n }\n\n private persistColor(color: ThemeColor): void {\n const key = this.config.colorStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, color);\n } catch {\n /* ignore */\n }\n }\n\n private persistStyle(style: ThemeStyle): void {\n const key = this.config.styleStorageKey;\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.setItem(key, style);\n } catch {\n /* ignore */\n }\n }\n\n private clearPersistedBrand(): void {\n this.clearPersistedItem(this.config.brandStorageKey);\n }\n\n private clearPersistedColor(): void {\n this.clearPersistedItem(this.config.colorStorageKey);\n }\n\n private clearPersistedStyle(): void {\n this.clearPersistedItem(this.config.styleStorageKey);\n }\n\n private clearPersistedItem(key: string | null): void {\n if (!key) return;\n try {\n this.document.defaultView?.localStorage?.removeItem(key);\n } catch {\n /* ignore */\n }\n }\n}\n","import {\n inject,\n type EnvironmentProviders,\n type Provider,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { THEME_PANEL_THEME_PORT } from '@ojiepermana/angular/component';\nimport { MAT_RIPPLE_GLOBAL_OPTIONS } from '@angular/material/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { ThemeService } from './theme.service';\nimport { MATERIAL_THEME_CONFIG, type MaterialThemeConfig } from './theme.tokens';\n\n/**\n * Opaque feature unit consumed by {@link provideMaterialTheme}. Mirrors\n * Angular's router/http feature pattern so add-ons can be composed without\n * widening the primary provider signature.\n */\nexport interface MaterialThemeFeature {\n readonly providers: Provider[];\n}\n\n/**\n * Bootstrap the shared theme for any `@ojiepermana/angular/*` entry point.\n *\n * By default wires up the theme config token and eagerly initializes `ThemeService`\n * so root theme attributes are applied during bootstrap. Opt in\n * to Angular Material defaults (ripple / form-field) via\n * {@link withMaterialDefaults}.\n * Supports shorthand `mode`, `color`, and `style` config keys.\n *\n * @example\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideAnimations(),\n * provideMaterialTheme(\n * {\n * mode: 'system',\n * color: 'base',\n * style: 'soft',\n * },\n * withMaterialDefaults(),\n * ),\n * ],\n * };\n */\nexport function provideMaterialTheme(\n config: MaterialThemeConfig = {},\n ...features: MaterialThemeFeature[]\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: MATERIAL_THEME_CONFIG, useValue: config },\n { provide: THEME_PANEL_THEME_PORT, useExisting: ThemeService },\n provideEnvironmentInitializer(() => {\n inject(ThemeService);\n }),\n ...features.flatMap((f) => f.providers),\n ]);\n}\n\n/**\n * Opt-in Angular Material defaults tuned for the shared theme layer:\n *\n * - Disables the global Material ripple.\n * - Forces `appearance: 'outline'` + `subscriptSizing: 'dynamic'` on every\n * `mat-form-field`.\n *\n * Only apply when your app actually renders Angular Material components.\n */\nexport function withMaterialDefaults(): MaterialThemeFeature {\n return {\n providers: [\n { provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: { disabled: true } },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: 'outline', subscriptSizing: 'dynamic' },\n },\n ],\n };\n}\n","/*\n * Public API Surface of @ojiepermana/angular/theme\n *\n * The single source of truth for 3-layer design tokens, CSS variables,\n * and the `ThemeService` shared by every `@ojiepermana/angular/*` subpath\n * (shadcn, layout, navigation, ...).\n *\n * Usage:\n * // app.config.ts\n * import { provideMaterialTheme } from '@ojiepermana/angular/theme';\n *\n * // styles.css\n * @import '@ojiepermana/angular/theme/styles';\n * @import 'tailwindcss';\n */\n\nexport * from './src/lib/core/theme.tokens';\nexport * from './src/lib/core/theme.service';\nexport * from './src/lib/core/theme.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ojiepermana/angular",
|
|
3
|
-
"version": "21.1.
|
|
3
|
+
"version": "21.1.25",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/ojiepermana/angular.git"
|
|
@@ -112,6 +112,14 @@
|
|
|
112
112
|
"./etos/shell/pages": {
|
|
113
113
|
"types": "./types/ojiepermana-angular-brand-etos.d.ts",
|
|
114
114
|
"default": "./fesm2022/ojiepermana-angular-brand-etos.mjs"
|
|
115
|
+
},
|
|
116
|
+
"./layout/shell/pages": {
|
|
117
|
+
"types": "./types/ojiepermana-angular-layout.d.ts",
|
|
118
|
+
"default": "./fesm2022/ojiepermana-angular-layout.mjs"
|
|
119
|
+
},
|
|
120
|
+
"./layout/theme": {
|
|
121
|
+
"types": "./types/ojiepermana-angular-component.d.ts",
|
|
122
|
+
"default": "./fesm2022/ojiepermana-angular-component.mjs"
|
|
115
123
|
}
|
|
116
124
|
},
|
|
117
125
|
"module": "fesm2022/ojiepermana-angular.mjs",
|
|
@@ -45,6 +45,24 @@
|
|
|
45
45
|
line-height: var(--nav-text-line-height, var(--text-base--line-height));
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
.ui-nav-hover-surface {
|
|
49
|
+
@apply relative isolate hover:text-accent-foreground;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.ui-nav-hover-surface::before {
|
|
53
|
+
content: '';
|
|
54
|
+
border-radius: inherit;
|
|
55
|
+
@apply pointer-events-none absolute inset-y-0 left-2 right-2 z-0 bg-transparent transition-colors;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ui-nav-hover-surface:hover::before {
|
|
59
|
+
@apply bg-accent;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.ui-nav-hover-surface > * {
|
|
63
|
+
@apply relative z-10;
|
|
64
|
+
}
|
|
65
|
+
|
|
48
66
|
.ui-nav-heading {
|
|
49
67
|
font-family: var(--nav-heading-font-family, var(--nav-font-family, var(--font-sans)));
|
|
50
68
|
font-size: var(--nav-heading-size, var(--text-sm));
|
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
--info: 217 91% 60%;
|
|
17
17
|
--info-foreground: 0 0% 100%;
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
--chart-
|
|
21
|
-
--chart-
|
|
22
|
-
--chart-
|
|
23
|
-
--chart-
|
|
19
|
+
/* Chart slots resolve from the active color theme first, with shared fallbacks. */
|
|
20
|
+
--chart-1: var(--theme-chart-1, var(--primary));
|
|
21
|
+
--chart-2: var(--theme-chart-2, var(--accent-foreground));
|
|
22
|
+
--chart-3: var(--theme-chart-3, 271 81% 56%);
|
|
23
|
+
--chart-4: var(--theme-chart-4, 38 92% 50%);
|
|
24
|
+
--chart-5: var(--theme-chart-5, 355 78% 56%);
|
|
24
25
|
|
|
25
26
|
--sidebar-background: var(--card);
|
|
26
27
|
--sidebar-foreground: var(--foreground);
|
|
@@ -45,10 +46,10 @@
|
|
|
45
46
|
--info: 217 80% 55%;
|
|
46
47
|
--info-foreground: 0 0% 95%;
|
|
47
48
|
|
|
48
|
-
--chart-1:
|
|
49
|
-
--chart-2:
|
|
50
|
-
--chart-3: 271 85% 70
|
|
51
|
-
--chart-4: 38 96% 62
|
|
52
|
-
--chart-5: 355 82% 68
|
|
49
|
+
--chart-1: var(--theme-chart-1, var(--primary));
|
|
50
|
+
--chart-2: var(--theme-chart-2, var(--accent-foreground));
|
|
51
|
+
--chart-3: var(--theme-chart-3, 271 85% 70%);
|
|
52
|
+
--chart-4: var(--theme-chart-4, 38 96% 62%);
|
|
53
|
+
--chart-5: var(--theme-chart-5, 355 82% 68%);
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
@layer tokens {
|
|
2
2
|
[data-color='amber'] {
|
|
3
|
-
--primary:
|
|
4
|
-
--primary-foreground:
|
|
5
|
-
--accent:
|
|
6
|
-
--accent-foreground:
|
|
7
|
-
--secondary:
|
|
8
|
-
--secondary-foreground:
|
|
9
|
-
--ring:
|
|
3
|
+
--primary: 44 100% 50%;
|
|
4
|
+
--primary-foreground: 21 97% 14%;
|
|
5
|
+
--accent: 44 100% 96%;
|
|
6
|
+
--accent-foreground: 30 100% 44%;
|
|
7
|
+
--secondary: 44 30% 96%;
|
|
8
|
+
--secondary-foreground: 30 100% 44%;
|
|
9
|
+
--ring: 44 100% 50%;
|
|
10
|
+
--theme-chart-1: 44 100% 50%;
|
|
11
|
+
--theme-chart-2: 25 100% 50%;
|
|
12
|
+
--theme-chart-3: 47 100% 50%;
|
|
13
|
+
--theme-chart-4: 80 100% 45%;
|
|
14
|
+
--theme-chart-5: 357 96% 58%;
|
|
10
15
|
}
|
|
11
16
|
|
|
12
17
|
[data-mode='dark'][data-color='amber'] {
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
18
|
+
--primary: 44 100% 50%;
|
|
19
|
+
--primary-foreground: 21 97% 14%;
|
|
20
|
+
--accent: 44 50% 18%;
|
|
21
|
+
--accent-foreground: 44 100% 50%;
|
|
22
|
+
--secondary: 44 30% 18%;
|
|
23
|
+
--secondary-foreground: 44 100% 50%;
|
|
24
|
+
--ring: 44 100% 50%;
|
|
25
|
+
--theme-chart-1: 44 100% 50%;
|
|
26
|
+
--theme-chart-2: 32 100% 51%;
|
|
27
|
+
--theme-chart-3: 47 100% 50%;
|
|
28
|
+
--theme-chart-4: 80 100% 45%;
|
|
29
|
+
--theme-chart-5: 359 100% 70%;
|
|
17
30
|
}
|
|
18
31
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base is the default Flux color layer.
|
|
3
|
+
*/
|
|
4
|
+
@layer tokens {
|
|
5
|
+
:root,
|
|
6
|
+
[data-color='base'] {
|
|
7
|
+
--primary: 240 4% 16%;
|
|
8
|
+
--primary-foreground: 0 0% 100%;
|
|
9
|
+
--accent: 240 5% 96%;
|
|
10
|
+
--accent-foreground: 240 4% 16%;
|
|
11
|
+
--secondary: 240 5% 96%;
|
|
12
|
+
--secondary-foreground: 240 4% 16%;
|
|
13
|
+
--ring: 240 4% 16%;
|
|
14
|
+
--theme-chart-1: 240 4% 16%;
|
|
15
|
+
--theme-chart-2: 216 100% 58%;
|
|
16
|
+
--theme-chart-3: 160 100% 30%;
|
|
17
|
+
--theme-chart-4: 44 100% 50%;
|
|
18
|
+
--theme-chart-5: 345 100% 56%;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:root[data-mode='dark']:not([data-color]),
|
|
22
|
+
[data-mode='dark'][data-color='base'] {
|
|
23
|
+
--primary: 0 0% 100%;
|
|
24
|
+
--primary-foreground: 240 4% 16%;
|
|
25
|
+
--accent: 240 4% 16%;
|
|
26
|
+
--accent-foreground: 0 0% 100%;
|
|
27
|
+
--secondary: 240 5% 20%;
|
|
28
|
+
--secondary-foreground: 0 0% 100%;
|
|
29
|
+
--ring: 0 0% 100%;
|
|
30
|
+
--theme-chart-1: 0 0% 100%;
|
|
31
|
+
--theme-chart-2: 212 100% 66%;
|
|
32
|
+
--theme-chart-3: 161 100% 42%;
|
|
33
|
+
--theme-chart-4: 44 100% 50%;
|
|
34
|
+
--theme-chart-5: 350 100% 69%;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Blue is the default color layer.
|
|
3
|
-
*/
|
|
4
1
|
@layer tokens {
|
|
5
|
-
:root,
|
|
6
2
|
[data-color='blue'] {
|
|
7
|
-
--primary:
|
|
3
|
+
--primary: 216 100% 58%;
|
|
8
4
|
--primary-foreground: 0 0% 100%;
|
|
9
|
-
--accent:
|
|
10
|
-
--accent-foreground:
|
|
11
|
-
--secondary:
|
|
12
|
-
--secondary-foreground:
|
|
13
|
-
--ring:
|
|
5
|
+
--accent: 216 100% 96%;
|
|
6
|
+
--accent-foreground: 221 97% 53%;
|
|
7
|
+
--secondary: 216 30% 96%;
|
|
8
|
+
--secondary-foreground: 221 97% 53%;
|
|
9
|
+
--ring: 216 100% 58%;
|
|
10
|
+
--theme-chart-1: 216 100% 58%;
|
|
11
|
+
--theme-chart-2: 202 100% 41%;
|
|
12
|
+
--theme-chart-3: 241 100% 69%;
|
|
13
|
+
--theme-chart-4: 192 100% 36%;
|
|
14
|
+
--theme-chart-5: 261 100% 66%;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
:root[data-mode='dark']:not([data-color]),
|
|
17
17
|
[data-mode='dark'][data-color='blue'] {
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
18
|
+
--primary: 216 100% 58%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 216 50% 18%;
|
|
21
|
+
--accent-foreground: 212 100% 66%;
|
|
22
|
+
--secondary: 216 30% 18%;
|
|
23
|
+
--secondary-foreground: 212 100% 66%;
|
|
24
|
+
--ring: 216 100% 58%;
|
|
25
|
+
--theme-chart-1: 212 100% 66%;
|
|
26
|
+
--theme-chart-2: 196 100% 50%;
|
|
27
|
+
--theme-chart-3: 230 100% 82%;
|
|
28
|
+
--theme-chart-4: 188 100% 48%;
|
|
29
|
+
--theme-chart-5: 257 100% 76%;
|
|
22
30
|
}
|
|
23
31
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
[data-color='cyan'] {
|
|
3
|
+
--primary: 192 100% 36%;
|
|
4
|
+
--primary-foreground: 0 0% 100%;
|
|
5
|
+
--accent: 192 100% 96%;
|
|
6
|
+
--accent-foreground: 192 100% 36%;
|
|
7
|
+
--secondary: 192 30% 96%;
|
|
8
|
+
--secondary-foreground: 192 100% 36%;
|
|
9
|
+
--ring: 192 100% 36%;
|
|
10
|
+
--theme-chart-1: 192 100% 36%;
|
|
11
|
+
--theme-chart-2: 202 100% 41%;
|
|
12
|
+
--theme-chart-3: 175 100% 29%;
|
|
13
|
+
--theme-chart-4: 216 100% 58%;
|
|
14
|
+
--theme-chart-5: 160 100% 30%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-mode='dark'][data-color='cyan'] {
|
|
18
|
+
--primary: 192 100% 36%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 192 50% 18%;
|
|
21
|
+
--accent-foreground: 188 100% 48%;
|
|
22
|
+
--secondary: 192 30% 18%;
|
|
23
|
+
--secondary-foreground: 188 100% 48%;
|
|
24
|
+
--ring: 192 100% 36%;
|
|
25
|
+
--theme-chart-1: 188 100% 48%;
|
|
26
|
+
--theme-chart-2: 196 100% 50%;
|
|
27
|
+
--theme-chart-3: 173 100% 42%;
|
|
28
|
+
--theme-chart-4: 212 100% 66%;
|
|
29
|
+
--theme-chart-5: 161 100% 42%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
[data-color='emerald'] {
|
|
3
|
+
--primary: 160 100% 30%;
|
|
4
|
+
--primary-foreground: 0 0% 100%;
|
|
5
|
+
--accent: 160 100% 96%;
|
|
6
|
+
--accent-foreground: 160 100% 30%;
|
|
7
|
+
--secondary: 160 30% 96%;
|
|
8
|
+
--secondary-foreground: 160 100% 30%;
|
|
9
|
+
--ring: 160 100% 30%;
|
|
10
|
+
--theme-chart-1: 160 100% 30%;
|
|
11
|
+
--theme-chart-2: 175 100% 29%;
|
|
12
|
+
--theme-chart-3: 142 100% 33%;
|
|
13
|
+
--theme-chart-4: 192 100% 36%;
|
|
14
|
+
--theme-chart-5: 80 100% 45%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-mode='dark'][data-color='emerald'] {
|
|
18
|
+
--primary: 160 100% 30%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 160 50% 18%;
|
|
21
|
+
--accent-foreground: 161 100% 42%;
|
|
22
|
+
--secondary: 160 30% 18%;
|
|
23
|
+
--secondary-foreground: 161 100% 42%;
|
|
24
|
+
--ring: 160 100% 30%;
|
|
25
|
+
--theme-chart-1: 161 100% 42%;
|
|
26
|
+
--theme-chart-2: 173 100% 42%;
|
|
27
|
+
--theme-chart-3: 150 96% 45%;
|
|
28
|
+
--theme-chart-4: 188 100% 48%;
|
|
29
|
+
--theme-chart-5: 80 100% 45%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
[data-color='fuchsia'] {
|
|
3
|
+
--primary: 294 100% 44%;
|
|
4
|
+
--primary-foreground: 0 0% 100%;
|
|
5
|
+
--accent: 294 100% 96%;
|
|
6
|
+
--accent-foreground: 294 100% 44%;
|
|
7
|
+
--secondary: 294 30% 96%;
|
|
8
|
+
--secondary-foreground: 294 100% 44%;
|
|
9
|
+
--ring: 294 100% 44%;
|
|
10
|
+
--theme-chart-1: 294 100% 44%;
|
|
11
|
+
--theme-chart-2: 329 100% 45%;
|
|
12
|
+
--theme-chart-3: 273 100% 64%;
|
|
13
|
+
--theme-chart-4: 345 100% 56%;
|
|
14
|
+
--theme-chart-5: 261 100% 66%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-mode='dark'][data-color='fuchsia'] {
|
|
18
|
+
--primary: 294 100% 44%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 294 50% 18%;
|
|
21
|
+
--accent-foreground: 293 100% 71%;
|
|
22
|
+
--secondary: 294 30% 18%;
|
|
23
|
+
--secondary-foreground: 293 100% 71%;
|
|
24
|
+
--ring: 294 100% 44%;
|
|
25
|
+
--theme-chart-1: 293 100% 71%;
|
|
26
|
+
--theme-chart-2: 327 95% 69%;
|
|
27
|
+
--theme-chart-3: 271 100% 85%;
|
|
28
|
+
--theme-chart-4: 350 100% 69%;
|
|
29
|
+
--theme-chart-5: 257 100% 76%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
@layer tokens {
|
|
2
2
|
[data-color='green'] {
|
|
3
|
-
--primary: 142
|
|
3
|
+
--primary: 142 100% 33%;
|
|
4
4
|
--primary-foreground: 0 0% 100%;
|
|
5
|
-
--accent: 142
|
|
6
|
-
--accent-foreground: 142
|
|
7
|
-
--secondary: 142 30%
|
|
8
|
-
--secondary-foreground: 142
|
|
9
|
-
--ring: 142
|
|
5
|
+
--accent: 142 100% 96%;
|
|
6
|
+
--accent-foreground: 142 100% 33%;
|
|
7
|
+
--secondary: 142 30% 96%;
|
|
8
|
+
--secondary-foreground: 142 100% 33%;
|
|
9
|
+
--ring: 142 100% 33%;
|
|
10
|
+
--theme-chart-1: 142 100% 33%;
|
|
11
|
+
--theme-chart-2: 160 100% 30%;
|
|
12
|
+
--theme-chart-3: 80 100% 45%;
|
|
13
|
+
--theme-chart-4: 175 100% 29%;
|
|
14
|
+
--theme-chart-5: 47 100% 50%;
|
|
10
15
|
}
|
|
11
16
|
|
|
12
17
|
[data-mode='dark'][data-color='green'] {
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
18
|
+
--primary: 142 100% 33%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 142 50% 18%;
|
|
21
|
+
--accent-foreground: 150 96% 45%;
|
|
22
|
+
--secondary: 142 30% 18%;
|
|
23
|
+
--secondary-foreground: 150 96% 45%;
|
|
24
|
+
--ring: 142 100% 33%;
|
|
25
|
+
--theme-chart-1: 150 96% 45%;
|
|
26
|
+
--theme-chart-2: 161 100% 42%;
|
|
27
|
+
--theme-chart-3: 80 100% 45%;
|
|
28
|
+
--theme-chart-4: 173 100% 42%;
|
|
29
|
+
--theme-chart-5: 47 100% 50%;
|
|
17
30
|
}
|
|
18
31
|
}
|
|
@@ -2,8 +2,21 @@
|
|
|
2
2
|
* Layer 2: color.
|
|
3
3
|
* Imports every color variant in a stable order.
|
|
4
4
|
*/
|
|
5
|
-
@import './
|
|
5
|
+
@import './base.css';
|
|
6
6
|
@import './red.css';
|
|
7
|
+
@import './orange.css';
|
|
8
|
+
@import './amber.css';
|
|
9
|
+
@import './yellow.css';
|
|
10
|
+
@import './lime.css';
|
|
7
11
|
@import './green.css';
|
|
12
|
+
@import './emerald.css';
|
|
13
|
+
@import './teal.css';
|
|
14
|
+
@import './cyan.css';
|
|
15
|
+
@import './sky.css';
|
|
16
|
+
@import './blue.css';
|
|
17
|
+
@import './indigo.css';
|
|
18
|
+
@import './violet.css';
|
|
8
19
|
@import './purple.css';
|
|
9
|
-
@import './
|
|
20
|
+
@import './fuchsia.css';
|
|
21
|
+
@import './pink.css';
|
|
22
|
+
@import './rose.css';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
[data-color='indigo'] {
|
|
3
|
+
--primary: 241 100% 69%;
|
|
4
|
+
--primary-foreground: 0 0% 100%;
|
|
5
|
+
--accent: 241 100% 96%;
|
|
6
|
+
--accent-foreground: 247 92% 60%;
|
|
7
|
+
--secondary: 241 30% 96%;
|
|
8
|
+
--secondary-foreground: 247 92% 60%;
|
|
9
|
+
--ring: 241 100% 69%;
|
|
10
|
+
--theme-chart-1: 241 100% 69%;
|
|
11
|
+
--theme-chart-2: 261 100% 66%;
|
|
12
|
+
--theme-chart-3: 216 100% 58%;
|
|
13
|
+
--theme-chart-4: 273 100% 64%;
|
|
14
|
+
--theme-chart-5: 202 100% 41%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-mode='dark'][data-color='indigo'] {
|
|
18
|
+
--primary: 241 100% 69%;
|
|
19
|
+
--primary-foreground: 0 0% 100%;
|
|
20
|
+
--accent: 241 50% 18%;
|
|
21
|
+
--accent-foreground: 230 100% 82%;
|
|
22
|
+
--secondary: 241 30% 18%;
|
|
23
|
+
--secondary-foreground: 230 100% 82%;
|
|
24
|
+
--ring: 241 100% 69%;
|
|
25
|
+
--theme-chart-1: 230 100% 82%;
|
|
26
|
+
--theme-chart-2: 257 100% 76%;
|
|
27
|
+
--theme-chart-3: 212 100% 66%;
|
|
28
|
+
--theme-chart-4: 271 100% 85%;
|
|
29
|
+
--theme-chart-5: 196 100% 50%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
[data-color='lime'] {
|
|
3
|
+
--primary: 80 100% 45%;
|
|
4
|
+
--primary-foreground: 87 71% 19%;
|
|
5
|
+
--accent: 80 100% 96%;
|
|
6
|
+
--accent-foreground: 86 100% 32%;
|
|
7
|
+
--secondary: 80 30% 96%;
|
|
8
|
+
--secondary-foreground: 86 100% 32%;
|
|
9
|
+
--ring: 80 100% 45%;
|
|
10
|
+
--theme-chart-1: 80 100% 45%;
|
|
11
|
+
--theme-chart-2: 142 100% 33%;
|
|
12
|
+
--theme-chart-3: 47 100% 50%;
|
|
13
|
+
--theme-chart-4: 160 100% 30%;
|
|
14
|
+
--theme-chart-5: 44 100% 50%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-mode='dark'][data-color='lime'] {
|
|
18
|
+
--primary: 80 100% 45%;
|
|
19
|
+
--primary-foreground: 89 89% 10%;
|
|
20
|
+
--accent: 80 50% 18%;
|
|
21
|
+
--accent-foreground: 80 100% 45%;
|
|
22
|
+
--secondary: 80 30% 18%;
|
|
23
|
+
--secondary-foreground: 80 100% 45%;
|
|
24
|
+
--ring: 80 100% 45%;
|
|
25
|
+
--theme-chart-1: 80 100% 45%;
|
|
26
|
+
--theme-chart-2: 150 96% 45%;
|
|
27
|
+
--theme-chart-3: 47 100% 50%;
|
|
28
|
+
--theme-chart-4: 161 100% 42%;
|
|
29
|
+
--theme-chart-5: 44 100% 50%;
|
|
30
|
+
}
|
|
31
|
+
}
|