@ngxsmk/theme 2.0.0 → 3.1.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.
@@ -9,16 +9,18 @@ export interface TokenOutputAdapter {
9
9
  /** Unique name for this adapter (e.g. 'ngxsmk', 'ionic'). */
10
10
  readonly name: string;
11
11
  /** Transform a resolved theme into platform-specific CSS variables. */
12
- vars(theme: ResolvedTheme): Record<string, string>;
12
+ vars(theme: ResolvedTheme, options?: {
13
+ isDark?: boolean;
14
+ }): Record<string, string>;
15
+ /** Transform a resolved theme into dark-mode platform CSS variables. */
16
+ darkVars?(theme: ResolvedTheme): Record<string, string>;
13
17
  }
14
18
  /**
15
- * Maps NGXSMK semantic color roles to Ionic's color variable namespace.
19
+ * Maps NGXSMK semantic color roles to Ionic 7 & 8 color variable specifications.
16
20
  *
17
- * Ionic expects:
18
- * --ion-color-primary, --ion-color-primary-rgb, --ion-color-primary-shade,
19
- * --ion-color-primary-tint, --ion-color-secondary, etc.
20
- *
21
- * This adapter produces the subset Ionic needs for theming.
21
+ * Emits full color suites (base, rgb, contrast, contrast-rgb, shade, tint),
22
+ * 19-step contrast ladder (--ion-color-step-50..950), safe area mappings, and
23
+ * surface variables for seamless Ionic framework interoperability.
22
24
  */
23
25
  export declare const ionicVarsAdapter: TokenOutputAdapter;
24
26
  /** Default NGXSMK adapter — emits `--ngxsmk-*` variables. */
@@ -1 +1 @@
1
- {"version":3,"file":"token-adapter.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/token-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBA6C9B,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,cAAc,EAAE,kBAG5B,CAAC"}
1
+ {"version":3,"file":"token-adapter.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/token-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnF,wEAAwE;IACxE,QAAQ,CAAC,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAa9B,CAAC;AAmIF,6DAA6D;AAC7D,eAAO,MAAM,cAAc,EAAE,kBAG5B,CAAC"}
package/lib/tokens.d.ts CHANGED
@@ -55,4 +55,13 @@ export declare const SHADOW: Record<string, string>;
55
55
  export declare const Z_INDEX: Record<string, string>;
56
56
  export declare const DURATION: Record<string, string>;
57
57
  export declare const EASING: Record<string, string>;
58
+ /** Safe-area inset defaults (fallback to CSS env() variables for iOS/Android/Ionic). */
59
+ export declare const SAFE_AREA: {
60
+ top: string;
61
+ bottom: string;
62
+ left: string;
63
+ right: string;
64
+ };
65
+ /** Minimum touch target size for mobile accessibility (Apple HIG & Android Material). */
66
+ export declare const TOUCH_TARGET_MIN = "44px";
58
67
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,UAY7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAGjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1C,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI5C,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASzC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3C,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzC,CAAC"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,UAY7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAGjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1C,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI5C,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3C,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASzC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3C,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzC,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,SAAS,CAAC"}
package/lib/types.d.ts CHANGED
@@ -70,6 +70,17 @@ export interface ThemeConfig {
70
70
  };
71
71
  /** Global corner rounding character of the theme. Default `md`. */
72
72
  borderRadius?: RadiusPreset;
73
+ /**
74
+ * Partial override of the radius ladder (`sm`/`md`/`lg`/…). Merged over
75
+ * package defaults so presets like Ink can sharpen corners without
76
+ * changing Classic (`emerald`) consumers.
77
+ */
78
+ radiusScale?: Partial<Record<string, string>>;
79
+ /**
80
+ * Partial override of the shadow ladder. Same consumer-safety pattern as
81
+ * `radiusScale`.
82
+ */
83
+ shadowScale?: Partial<Record<string, string>>;
73
84
  /** How dark mode is activated. Default: `class` (a `.dark` class on `<html>`). */
74
85
  darkMode?: {
75
86
  strategy?: DarkModeStrategy;
@@ -79,6 +90,8 @@ export interface ThemeConfig {
79
90
  /**
80
91
  * Raw semantic-role token overrides merged into the generated output,
81
92
  * e.g. `{ dark: { '--ngxsmk-color-primary': '#FAFAFA' } }`.
93
+ * Light overrides also win over static `:root` tokens (fonts already set,
94
+ * hover-lift, etc.).
82
95
  */
83
96
  overrides?: {
84
97
  light?: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/theme/src/lib/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngxsmk/theme",
3
- "version": "2.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Runtime theming and design-token engine for @ngxsmk/core with light/dark modes and preset palettes.",
5
5
  "keywords": [
6
6
  "angular",
@@ -25,11 +25,15 @@
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@angular/common": ">=17.3.0",
28
- "@angular/core": ">=17.3.0"
28
+ "@angular/core": ">=17.3.0",
29
+ "@ionic/angular": ">=7.0.0 || >=8.0.0"
29
30
  },
30
31
  "peerDependenciesMeta": {
31
32
  "tailwindcss": {
32
33
  "optional": true
34
+ },
35
+ "@ionic/angular": {
36
+ "optional": true
33
37
  }
34
38
  },
35
39
  "dependencies": {
package/public-api.d.ts CHANGED
@@ -7,4 +7,5 @@ export * from './lib/presets';
7
7
  export * from './lib/theme.service';
8
8
  export * from './lib/theme-injector.service';
9
9
  export * from './lib/token-adapter';
10
+ export * from './lib/ionic-provider';
10
11
  //# sourceMappingURL=public-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../packages/theme/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../packages/theme/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
package/styles/ngxsmk.css CHANGED
@@ -43,16 +43,32 @@
43
43
  --ngxsmk-press-scale: scale(0.98);
44
44
  --ngxsmk-focus-ring: var(--ngxsmk-shadow-focus);
45
45
  --ngxsmk-focus-ring-error: 0 0 0 2px color-mix(in srgb, var(--ngxsmk-color-error) 15%, transparent), 0 0 0 4px color-mix(in srgb, var(--ngxsmk-color-error) 45%, transparent);
46
+ --ngxsmk-safe-area-top: env(safe-area-inset-top, 0px);
47
+ --ngxsmk-safe-area-bottom: env(safe-area-inset-bottom, 0px);
48
+ --ngxsmk-safe-area-left: env(safe-area-inset-left, 0px);
49
+ --ngxsmk-safe-area-right: env(safe-area-inset-right, 0px);
50
+ --ngxsmk-touch-target-min: 44px;
46
51
  --ngxsmk-button-bg: var(--ngxsmk-color-primary);
47
52
  --ngxsmk-button-color: var(--ngxsmk-color-on-primary);
48
53
  --ngxsmk-button-font-family: var(--ngxsmk-font-sans);
49
54
  --ngxsmk-button-font-weight: 500;
50
55
  --ngxsmk-button-radius: var(--ngxsmk-radius-base);
51
56
  --ngxsmk-button-disabled-opacity: 0.5;
57
+ --ngxsmk-button-border-width: 1px;
58
+ --ngxsmk-button-gap: var(--ngxsmk-space-2);
59
+ --ngxsmk-input-bg: var(--ngxsmk-color-surface);
60
+ --ngxsmk-input-color: var(--ngxsmk-color-on-surface);
61
+ --ngxsmk-input-border: var(--ngxsmk-color-outline-strong);
62
+ --ngxsmk-input-radius: var(--ngxsmk-radius-base);
63
+ --ngxsmk-input-height: var(--ngxsmk-control-height);
64
+ --ngxsmk-input-padding-inline: var(--ngxsmk-space-3);
65
+ --ngxsmk-input-placeholder: var(--ngxsmk-color-on-surface-variant);
52
66
  --ngxsmk-card-bg: var(--ngxsmk-color-surface);
53
67
  --ngxsmk-card-radius: var(--ngxsmk-radius-xl);
54
68
  --ngxsmk-card-shadow: var(--ngxsmk-shadow-sm);
55
69
  --ngxsmk-card-border-color: var(--ngxsmk-color-outline);
70
+ --ngxsmk-card-border-width: 1px;
71
+ --ngxsmk-card-padding: var(--ngxsmk-space-5);
56
72
  --ngxsmk-accordion-bg: var(--ngxsmk-color-surface);
57
73
  --ngxsmk-accordion-radius: var(--ngxsmk-radius-lg);
58
74
  --ngxsmk-accordion-border-color: var(--ngxsmk-color-outline);
@@ -67,6 +83,86 @@
67
83
  --ngxsmk-switch-thumb-size: 0.875rem;
68
84
  --ngxsmk-switch-thumb-bg: var(--ngxsmk-color-surface);
69
85
  --ngxsmk-switch-checked-bg: var(--ngxsmk-color-primary);
86
+ --ngxsmk-checkbox-size: 1.125rem;
87
+ --ngxsmk-checkbox-radius: var(--ngxsmk-radius-sm);
88
+ --ngxsmk-checkbox-border: var(--ngxsmk-color-outline-strong);
89
+ --ngxsmk-checkbox-checked-bg: var(--ngxsmk-color-primary);
90
+ --ngxsmk-badge-radius: var(--ngxsmk-radius-full);
91
+ --ngxsmk-badge-font-weight: 600;
92
+ --ngxsmk-badge-padding-inline: 0.5rem;
93
+ --ngxsmk-badge-padding-block: 0.125rem;
94
+ --ngxsmk-badge-border-mix: 20%;
95
+ --ngxsmk-alert-radius: var(--ngxsmk-radius-lg);
96
+ --ngxsmk-alert-border-mix: 22%;
97
+ --ngxsmk-alert-padding: var(--ngxsmk-space-4);
98
+ --ngxsmk-dialog-radius: var(--ngxsmk-radius-2xl);
99
+ --ngxsmk-dialog-shadow: var(--ngxsmk-shadow-xl);
100
+ --ngxsmk-dialog-bg: var(--ngxsmk-color-surface-elevated);
101
+ --ngxsmk-dialog-backdrop: var(--ngxsmk-color-backdrop);
102
+ --ngxsmk-dialog-blur: 4px;
103
+ --ngxsmk-dialog-max-width: 28rem;
104
+ --ngxsmk-sheet-radius: var(--ngxsmk-radius-xl);
105
+ --ngxsmk-sheet-shadow: var(--ngxsmk-shadow-xl);
106
+ --ngxsmk-sheet-bg: var(--ngxsmk-color-surface-elevated);
107
+ --ngxsmk-sheet-backdrop: var(--ngxsmk-color-backdrop);
108
+ --ngxsmk-sheet-width: 24rem;
109
+ --ngxsmk-lightbox-backdrop: rgb(0 0 0 / 0.9);
110
+ --ngxsmk-lightbox-fg: #ffffff;
111
+ --ngxsmk-lightbox-control-bg: rgb(255 255 255 / 0.12);
112
+ --ngxsmk-lightbox-control-bg-hover: rgb(255 255 255 / 0.22);
113
+ --ngxsmk-toast-radius: var(--ngxsmk-radius-lg);
114
+ --ngxsmk-toast-shadow: var(--ngxsmk-shadow-lg);
115
+ --ngxsmk-toast-bg: var(--ngxsmk-color-surface-elevated);
116
+ --ngxsmk-toast-accent-width: 3px;
117
+ --ngxsmk-table-border: var(--ngxsmk-color-outline);
118
+ --ngxsmk-table-header-bg: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 55%, transparent);
119
+ --ngxsmk-table-row-hover: var(--ngxsmk-color-surface-hover);
120
+ --ngxsmk-table-stripe: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 35%, transparent);
121
+ --ngxsmk-table-drop-indicator: inset 2px 0 0 var(--ngxsmk-color-primary);
122
+ --ngxsmk-table-cell-padding: 0.625rem 0.75rem;
123
+ --ngxsmk-tabs-indicator: 2px;
124
+ --ngxsmk-tabs-radius: var(--ngxsmk-radius-md);
125
+ --ngxsmk-tabs-gap: var(--ngxsmk-space-1);
126
+ --ngxsmk-select-bg: var(--ngxsmk-color-surface);
127
+ --ngxsmk-select-border: var(--ngxsmk-color-outline-strong);
128
+ --ngxsmk-select-radius: var(--ngxsmk-radius-base);
129
+ --ngxsmk-select-list-shadow: var(--ngxsmk-shadow-lg);
130
+ --ngxsmk-select-list-radius: var(--ngxsmk-radius-lg);
131
+ --ngxsmk-menu-bg: var(--ngxsmk-color-surface-elevated);
132
+ --ngxsmk-menu-radius: var(--ngxsmk-radius-lg);
133
+ --ngxsmk-menu-shadow: var(--ngxsmk-shadow-lg);
134
+ --ngxsmk-menu-border: var(--ngxsmk-color-outline);
135
+ --ngxsmk-menu-item-radius: var(--ngxsmk-radius-md);
136
+ --ngxsmk-pagination-size: 2.25rem;
137
+ --ngxsmk-pagination-radius: var(--ngxsmk-radius-md);
138
+ --ngxsmk-form-field-gap: var(--ngxsmk-space-1-5);
139
+ --ngxsmk-form-field-label-weight: 500;
140
+ --ngxsmk-radio-size: 1.125rem;
141
+ --ngxsmk-radio-dot-size: 0.5rem;
142
+ --ngxsmk-radio-border: var(--ngxsmk-color-outline-strong);
143
+ --ngxsmk-data-table-border: var(--ngxsmk-color-outline);
144
+ --ngxsmk-data-table-radius: var(--ngxsmk-radius-md);
145
+ --ngxsmk-data-table-filter-bg: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 40%, transparent);
146
+ --ngxsmk-data-table-filter-label-size: 0.7rem;
147
+ --ngxsmk-data-table-page-size: 2rem;
148
+ --ngxsmk-data-table-loading-height: 3px;
149
+ --ngxsmk-ai-chat-radius: var(--ngxsmk-radius-xl);
150
+ --ngxsmk-ai-chat-border: var(--ngxsmk-color-outline);
151
+ --ngxsmk-ai-chat-bg: var(--ngxsmk-color-surface);
152
+ --ngxsmk-ai-chat-header-bg: var(--ngxsmk-color-surface-variant);
153
+ --ngxsmk-ai-chat-bubble-bg: var(--ngxsmk-color-surface-variant);
154
+ --ngxsmk-ai-chat-bubble-user-bg: var(--ngxsmk-color-primary);
155
+ --ngxsmk-ai-chat-bubble-radius: var(--ngxsmk-radius-lg);
156
+ --ngxsmk-ai-chat-composer-radius: var(--ngxsmk-radius-full);
157
+ --ngxsmk-prompt-radius: var(--ngxsmk-radius-xl);
158
+ --ngxsmk-prompt-border: var(--ngxsmk-color-outline-strong);
159
+ --ngxsmk-prompt-shadow: var(--ngxsmk-shadow-sm);
160
+ --ngxsmk-prompt-bg: var(--ngxsmk-color-surface);
161
+ --ngxsmk-prompt-send-radius: var(--ngxsmk-radius-full);
162
+ --ngxsmk-chat-bubble-radius: var(--ngxsmk-radius-lg);
163
+ --ngxsmk-chat-bubble-bg: var(--ngxsmk-color-surface-container);
164
+ --ngxsmk-chat-bubble-user-bg: var(--ngxsmk-color-primary-container);
165
+ --ngxsmk-chat-bubble-padding: var(--ngxsmk-space-2) var(--ngxsmk-space-3);
70
166
  --ngxsmk-spreadsheet-bg: var(--ngxsmk-color-surface);
71
167
  --ngxsmk-spreadsheet-header-bg: var(--ngxsmk-color-surface-variant);
72
168
  --ngxsmk-spreadsheet-header-color: var(--ngxsmk-color-on-surface-variant);
@@ -95,15 +191,19 @@
95
191
  --ngxsmk-input-group-radius: var(--ngxsmk-radius-md);
96
192
  --ngxsmk-input-group-shadow: none;
97
193
  --ngxsmk-input-group-focus-border: var(--ngxsmk-color-primary);
98
- --ngxsmk-input-group-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--ngxsmk-color-primary) 15%, transparent);
194
+ --ngxsmk-input-group-focus-shadow: var(--ngxsmk-focus-ring);
99
195
  --ngxsmk-input-group-error-border: var(--ngxsmk-color-error);
100
- --ngxsmk-input-group-error-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--ngxsmk-color-error) 15%, transparent);
196
+ --ngxsmk-input-group-error-focus-shadow: var(--ngxsmk-focus-ring-error);
101
197
  --ngxsmk-input-group-success-border: var(--ngxsmk-color-success);
102
198
  --ngxsmk-input-group-warning-border: var(--ngxsmk-color-warning);
103
- --ngxsmk-input-group-height: 2.5rem;
199
+ --ngxsmk-input-group-height: var(--ngxsmk-control-height);
104
200
  --ngxsmk-input-group-padding: 0.75rem;
105
201
  --ngxsmk-input-group-gap: var(--ngxsmk-space-2);
106
202
  --ngxsmk-input-group-font: var(--ngxsmk-font-sans);
203
+ --ngxsmk-heatmap-level-1: color-mix(in srgb, var(--ngxsmk-color-success) 28%, var(--ngxsmk-color-surface-variant));
204
+ --ngxsmk-heatmap-level-2: color-mix(in srgb, var(--ngxsmk-color-success) 52%, var(--ngxsmk-color-surface-variant));
205
+ --ngxsmk-heatmap-level-3: color-mix(in srgb, var(--ngxsmk-color-success) 76%, var(--ngxsmk-color-surface-variant));
206
+ --ngxsmk-heatmap-level-4: var(--ngxsmk-color-success);
107
207
  --ngxsmk-control-height-sm: 2rem;
108
208
  --ngxsmk-control-height-md: 2.5rem;
109
209
  --ngxsmk-control-height-lg: 3rem;
@@ -238,12 +338,17 @@
238
338
  --ngxsmk-color-on-surface: #0A1317;
239
339
  --ngxsmk-color-surface-variant: #E4E9EE;
240
340
  --ngxsmk-color-on-surface-variant: #4E606F;
341
+ --ngxsmk-color-surface-muted: #F1F4F7;
342
+ --ngxsmk-color-surface-elevated: #FFFFFF;
343
+ --ngxsmk-color-surface-overlay: #FFFFFF;
344
+ --ngxsmk-color-on-surface-muted: #778593;
241
345
  --ngxsmk-color-surface-hover: rgb(5 54 89 / 0.05);
242
346
  --ngxsmk-color-surface-active: rgb(5 54 89 / 0.1);
243
347
  --ngxsmk-color-surface-container: #FFFFFF;
244
348
  --ngxsmk-color-outline: rgb(5 54 89 / 0.1);
245
349
  --ngxsmk-color-outline-strong: #CCD3DB;
246
350
  --ngxsmk-color-outline-variant: rgb(5 54 89 / 0.06);
351
+ --ngxsmk-color-outline-subtle: rgb(5 54 89 / 0.05);
247
352
  --ngxsmk-color-surface-1: #FFFFFF;
248
353
  --ngxsmk-color-surface-2: #F1F4F7;
249
354
  --ngxsmk-color-surface-3: #E4E9EE;
@@ -302,12 +407,17 @@
302
407
  --ngxsmk-color-on-surface: #DFE2E5;
303
408
  --ngxsmk-color-surface-variant: #28292C;
304
409
  --ngxsmk-color-on-surface-variant: #AAAFB5;
410
+ --ngxsmk-color-surface-muted: #141416;
411
+ --ngxsmk-color-surface-elevated: #28292C;
412
+ --ngxsmk-color-surface-overlay: #2F3136;
413
+ --ngxsmk-color-on-surface-muted: #777C85;
305
414
  --ngxsmk-color-surface-hover: rgb(255 255 255 / 0.05);
306
415
  --ngxsmk-color-surface-active: rgb(255 255 255 / 0.1);
307
416
  --ngxsmk-color-surface-container: #28292C;
308
417
  --ngxsmk-color-outline: rgb(242 244 246 / 0.1);
309
418
  --ngxsmk-color-outline-strong: #494D53;
310
419
  --ngxsmk-color-outline-variant: rgb(242 244 246 / 0.06);
420
+ --ngxsmk-color-outline-subtle: rgb(242 244 246 / 0.05);
311
421
  --ngxsmk-color-surface-1: #1F1F22;
312
422
  --ngxsmk-color-surface-2: #2A333B;
313
423
  --ngxsmk-color-surface-3: #3A4650;
@@ -43,16 +43,32 @@
43
43
  --ngxsmk-press-scale: scale(0.98);
44
44
  --ngxsmk-focus-ring: var(--ngxsmk-shadow-focus);
45
45
  --ngxsmk-focus-ring-error: 0 0 0 2px color-mix(in srgb, var(--ngxsmk-color-error) 15%, transparent), 0 0 0 4px color-mix(in srgb, var(--ngxsmk-color-error) 45%, transparent);
46
+ --ngxsmk-safe-area-top: env(safe-area-inset-top, 0px);
47
+ --ngxsmk-safe-area-bottom: env(safe-area-inset-bottom, 0px);
48
+ --ngxsmk-safe-area-left: env(safe-area-inset-left, 0px);
49
+ --ngxsmk-safe-area-right: env(safe-area-inset-right, 0px);
50
+ --ngxsmk-touch-target-min: 44px;
46
51
  --ngxsmk-button-bg: var(--ngxsmk-color-primary);
47
52
  --ngxsmk-button-color: var(--ngxsmk-color-on-primary);
48
53
  --ngxsmk-button-font-family: var(--ngxsmk-font-sans);
49
54
  --ngxsmk-button-font-weight: 500;
50
55
  --ngxsmk-button-radius: var(--ngxsmk-radius-base);
51
56
  --ngxsmk-button-disabled-opacity: 0.5;
57
+ --ngxsmk-button-border-width: 1px;
58
+ --ngxsmk-button-gap: var(--ngxsmk-space-2);
59
+ --ngxsmk-input-bg: var(--ngxsmk-color-surface);
60
+ --ngxsmk-input-color: var(--ngxsmk-color-on-surface);
61
+ --ngxsmk-input-border: var(--ngxsmk-color-outline-strong);
62
+ --ngxsmk-input-radius: var(--ngxsmk-radius-base);
63
+ --ngxsmk-input-height: var(--ngxsmk-control-height);
64
+ --ngxsmk-input-padding-inline: var(--ngxsmk-space-3);
65
+ --ngxsmk-input-placeholder: var(--ngxsmk-color-on-surface-variant);
52
66
  --ngxsmk-card-bg: var(--ngxsmk-color-surface);
53
67
  --ngxsmk-card-radius: var(--ngxsmk-radius-xl);
54
68
  --ngxsmk-card-shadow: var(--ngxsmk-shadow-sm);
55
69
  --ngxsmk-card-border-color: var(--ngxsmk-color-outline);
70
+ --ngxsmk-card-border-width: 1px;
71
+ --ngxsmk-card-padding: var(--ngxsmk-space-5);
56
72
  --ngxsmk-accordion-bg: var(--ngxsmk-color-surface);
57
73
  --ngxsmk-accordion-radius: var(--ngxsmk-radius-lg);
58
74
  --ngxsmk-accordion-border-color: var(--ngxsmk-color-outline);
@@ -67,6 +83,86 @@
67
83
  --ngxsmk-switch-thumb-size: 0.875rem;
68
84
  --ngxsmk-switch-thumb-bg: var(--ngxsmk-color-surface);
69
85
  --ngxsmk-switch-checked-bg: var(--ngxsmk-color-primary);
86
+ --ngxsmk-checkbox-size: 1.125rem;
87
+ --ngxsmk-checkbox-radius: var(--ngxsmk-radius-sm);
88
+ --ngxsmk-checkbox-border: var(--ngxsmk-color-outline-strong);
89
+ --ngxsmk-checkbox-checked-bg: var(--ngxsmk-color-primary);
90
+ --ngxsmk-badge-radius: var(--ngxsmk-radius-full);
91
+ --ngxsmk-badge-font-weight: 600;
92
+ --ngxsmk-badge-padding-inline: 0.5rem;
93
+ --ngxsmk-badge-padding-block: 0.125rem;
94
+ --ngxsmk-badge-border-mix: 20%;
95
+ --ngxsmk-alert-radius: var(--ngxsmk-radius-lg);
96
+ --ngxsmk-alert-border-mix: 22%;
97
+ --ngxsmk-alert-padding: var(--ngxsmk-space-4);
98
+ --ngxsmk-dialog-radius: var(--ngxsmk-radius-2xl);
99
+ --ngxsmk-dialog-shadow: var(--ngxsmk-shadow-xl);
100
+ --ngxsmk-dialog-bg: var(--ngxsmk-color-surface-elevated);
101
+ --ngxsmk-dialog-backdrop: var(--ngxsmk-color-backdrop);
102
+ --ngxsmk-dialog-blur: 4px;
103
+ --ngxsmk-dialog-max-width: 28rem;
104
+ --ngxsmk-sheet-radius: var(--ngxsmk-radius-xl);
105
+ --ngxsmk-sheet-shadow: var(--ngxsmk-shadow-xl);
106
+ --ngxsmk-sheet-bg: var(--ngxsmk-color-surface-elevated);
107
+ --ngxsmk-sheet-backdrop: var(--ngxsmk-color-backdrop);
108
+ --ngxsmk-sheet-width: 24rem;
109
+ --ngxsmk-lightbox-backdrop: rgb(0 0 0 / 0.9);
110
+ --ngxsmk-lightbox-fg: #ffffff;
111
+ --ngxsmk-lightbox-control-bg: rgb(255 255 255 / 0.12);
112
+ --ngxsmk-lightbox-control-bg-hover: rgb(255 255 255 / 0.22);
113
+ --ngxsmk-toast-radius: var(--ngxsmk-radius-lg);
114
+ --ngxsmk-toast-shadow: var(--ngxsmk-shadow-lg);
115
+ --ngxsmk-toast-bg: var(--ngxsmk-color-surface-elevated);
116
+ --ngxsmk-toast-accent-width: 3px;
117
+ --ngxsmk-table-border: var(--ngxsmk-color-outline);
118
+ --ngxsmk-table-header-bg: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 55%, transparent);
119
+ --ngxsmk-table-row-hover: var(--ngxsmk-color-surface-hover);
120
+ --ngxsmk-table-stripe: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 35%, transparent);
121
+ --ngxsmk-table-drop-indicator: inset 2px 0 0 var(--ngxsmk-color-primary);
122
+ --ngxsmk-table-cell-padding: 0.625rem 0.75rem;
123
+ --ngxsmk-tabs-indicator: 2px;
124
+ --ngxsmk-tabs-radius: var(--ngxsmk-radius-md);
125
+ --ngxsmk-tabs-gap: var(--ngxsmk-space-1);
126
+ --ngxsmk-select-bg: var(--ngxsmk-color-surface);
127
+ --ngxsmk-select-border: var(--ngxsmk-color-outline-strong);
128
+ --ngxsmk-select-radius: var(--ngxsmk-radius-base);
129
+ --ngxsmk-select-list-shadow: var(--ngxsmk-shadow-lg);
130
+ --ngxsmk-select-list-radius: var(--ngxsmk-radius-lg);
131
+ --ngxsmk-menu-bg: var(--ngxsmk-color-surface-elevated);
132
+ --ngxsmk-menu-radius: var(--ngxsmk-radius-lg);
133
+ --ngxsmk-menu-shadow: var(--ngxsmk-shadow-lg);
134
+ --ngxsmk-menu-border: var(--ngxsmk-color-outline);
135
+ --ngxsmk-menu-item-radius: var(--ngxsmk-radius-md);
136
+ --ngxsmk-pagination-size: 2.25rem;
137
+ --ngxsmk-pagination-radius: var(--ngxsmk-radius-md);
138
+ --ngxsmk-form-field-gap: var(--ngxsmk-space-1-5);
139
+ --ngxsmk-form-field-label-weight: 500;
140
+ --ngxsmk-radio-size: 1.125rem;
141
+ --ngxsmk-radio-dot-size: 0.5rem;
142
+ --ngxsmk-radio-border: var(--ngxsmk-color-outline-strong);
143
+ --ngxsmk-data-table-border: var(--ngxsmk-color-outline);
144
+ --ngxsmk-data-table-radius: var(--ngxsmk-radius-md);
145
+ --ngxsmk-data-table-filter-bg: color-mix(in srgb, var(--ngxsmk-color-surface-variant) 40%, transparent);
146
+ --ngxsmk-data-table-filter-label-size: 0.7rem;
147
+ --ngxsmk-data-table-page-size: 2rem;
148
+ --ngxsmk-data-table-loading-height: 3px;
149
+ --ngxsmk-ai-chat-radius: var(--ngxsmk-radius-xl);
150
+ --ngxsmk-ai-chat-border: var(--ngxsmk-color-outline);
151
+ --ngxsmk-ai-chat-bg: var(--ngxsmk-color-surface);
152
+ --ngxsmk-ai-chat-header-bg: var(--ngxsmk-color-surface-variant);
153
+ --ngxsmk-ai-chat-bubble-bg: var(--ngxsmk-color-surface-variant);
154
+ --ngxsmk-ai-chat-bubble-user-bg: var(--ngxsmk-color-primary);
155
+ --ngxsmk-ai-chat-bubble-radius: var(--ngxsmk-radius-lg);
156
+ --ngxsmk-ai-chat-composer-radius: var(--ngxsmk-radius-full);
157
+ --ngxsmk-prompt-radius: var(--ngxsmk-radius-xl);
158
+ --ngxsmk-prompt-border: var(--ngxsmk-color-outline-strong);
159
+ --ngxsmk-prompt-shadow: var(--ngxsmk-shadow-sm);
160
+ --ngxsmk-prompt-bg: var(--ngxsmk-color-surface);
161
+ --ngxsmk-prompt-send-radius: var(--ngxsmk-radius-full);
162
+ --ngxsmk-chat-bubble-radius: var(--ngxsmk-radius-lg);
163
+ --ngxsmk-chat-bubble-bg: var(--ngxsmk-color-surface-container);
164
+ --ngxsmk-chat-bubble-user-bg: var(--ngxsmk-color-primary-container);
165
+ --ngxsmk-chat-bubble-padding: var(--ngxsmk-space-2) var(--ngxsmk-space-3);
70
166
  --ngxsmk-spreadsheet-bg: var(--ngxsmk-color-surface);
71
167
  --ngxsmk-spreadsheet-header-bg: var(--ngxsmk-color-surface-variant);
72
168
  --ngxsmk-spreadsheet-header-color: var(--ngxsmk-color-on-surface-variant);
@@ -95,15 +191,19 @@
95
191
  --ngxsmk-input-group-radius: var(--ngxsmk-radius-md);
96
192
  --ngxsmk-input-group-shadow: none;
97
193
  --ngxsmk-input-group-focus-border: var(--ngxsmk-color-primary);
98
- --ngxsmk-input-group-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--ngxsmk-color-primary) 15%, transparent);
194
+ --ngxsmk-input-group-focus-shadow: var(--ngxsmk-focus-ring);
99
195
  --ngxsmk-input-group-error-border: var(--ngxsmk-color-error);
100
- --ngxsmk-input-group-error-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--ngxsmk-color-error) 15%, transparent);
196
+ --ngxsmk-input-group-error-focus-shadow: var(--ngxsmk-focus-ring-error);
101
197
  --ngxsmk-input-group-success-border: var(--ngxsmk-color-success);
102
198
  --ngxsmk-input-group-warning-border: var(--ngxsmk-color-warning);
103
- --ngxsmk-input-group-height: 2.5rem;
199
+ --ngxsmk-input-group-height: var(--ngxsmk-control-height);
104
200
  --ngxsmk-input-group-padding: 0.75rem;
105
201
  --ngxsmk-input-group-gap: var(--ngxsmk-space-2);
106
202
  --ngxsmk-input-group-font: var(--ngxsmk-font-sans);
203
+ --ngxsmk-heatmap-level-1: color-mix(in srgb, var(--ngxsmk-color-success) 28%, var(--ngxsmk-color-surface-variant));
204
+ --ngxsmk-heatmap-level-2: color-mix(in srgb, var(--ngxsmk-color-success) 52%, var(--ngxsmk-color-surface-variant));
205
+ --ngxsmk-heatmap-level-3: color-mix(in srgb, var(--ngxsmk-color-success) 76%, var(--ngxsmk-color-surface-variant));
206
+ --ngxsmk-heatmap-level-4: var(--ngxsmk-color-success);
107
207
  --ngxsmk-control-height-sm: 2rem;
108
208
  --ngxsmk-control-height-md: 2.5rem;
109
209
  --ngxsmk-control-height-lg: 3rem;
@@ -238,12 +338,17 @@
238
338
  --ngxsmk-color-on-surface: #0A1317;
239
339
  --ngxsmk-color-surface-variant: #E4E9EE;
240
340
  --ngxsmk-color-on-surface-variant: #4E606F;
341
+ --ngxsmk-color-surface-muted: #F1F4F7;
342
+ --ngxsmk-color-surface-elevated: #FFFFFF;
343
+ --ngxsmk-color-surface-overlay: #FFFFFF;
344
+ --ngxsmk-color-on-surface-muted: #778593;
241
345
  --ngxsmk-color-surface-hover: rgb(5 54 89 / 0.05);
242
346
  --ngxsmk-color-surface-active: rgb(5 54 89 / 0.1);
243
347
  --ngxsmk-color-surface-container: #FFFFFF;
244
348
  --ngxsmk-color-outline: rgb(5 54 89 / 0.1);
245
349
  --ngxsmk-color-outline-strong: #CCD3DB;
246
350
  --ngxsmk-color-outline-variant: rgb(5 54 89 / 0.06);
351
+ --ngxsmk-color-outline-subtle: rgb(5 54 89 / 0.05);
247
352
  --ngxsmk-color-surface-1: #FFFFFF;
248
353
  --ngxsmk-color-surface-2: #F1F4F7;
249
354
  --ngxsmk-color-surface-3: #E4E9EE;
@@ -302,12 +407,17 @@
302
407
  --ngxsmk-color-on-surface: #DFE2E5;
303
408
  --ngxsmk-color-surface-variant: #28292C;
304
409
  --ngxsmk-color-on-surface-variant: #AAAFB5;
410
+ --ngxsmk-color-surface-muted: #141416;
411
+ --ngxsmk-color-surface-elevated: #28292C;
412
+ --ngxsmk-color-surface-overlay: #2F3136;
413
+ --ngxsmk-color-on-surface-muted: #777C85;
305
414
  --ngxsmk-color-surface-hover: rgb(255 255 255 / 0.05);
306
415
  --ngxsmk-color-surface-active: rgb(255 255 255 / 0.1);
307
416
  --ngxsmk-color-surface-container: #28292C;
308
417
  --ngxsmk-color-outline: rgb(242 244 246 / 0.1);
309
418
  --ngxsmk-color-outline-strong: #494D53;
310
419
  --ngxsmk-color-outline-variant: rgb(242 244 246 / 0.06);
420
+ --ngxsmk-color-outline-subtle: rgb(242 244 246 / 0.05);
311
421
  --ngxsmk-color-surface-1: #1F1F22;
312
422
  --ngxsmk-color-surface-2: #2A333B;
313
423
  --ngxsmk-color-surface-3: #3A4650;