@ngxsmk/theme 3.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.
- package/README.md +50 -9
- package/esm2022/lib/css.mjs +139 -4
- package/esm2022/lib/define-config.mjs +3 -3
- package/esm2022/lib/presets.mjs +167 -1
- package/esm2022/lib/theme-injector.service.mjs +2 -4
- package/esm2022/lib/types.mjs +1 -1
- package/fesm2022/ngxsmk-theme.mjs +308 -9
- package/fesm2022/ngxsmk-theme.mjs.map +1 -1
- package/lib/css.d.ts.map +1 -1
- package/lib/presets.d.ts +14 -0
- package/lib/presets.d.ts.map +1 -1
- package/lib/theme-injector.service.d.ts.map +1 -1
- package/lib/types.d.ts +13 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/styles/ngxsmk.css +98 -3
- package/styles/ngxsmk.emerald.css +98 -3
- package/styles/ngxsmk.ink.css +500 -0
- package/styles/ngxsmk.neutral.css +98 -3
- package/styles/ngxsmk.rose.css +98 -3
- package/styles/ngxsmk.violet.css +98 -3
|
@@ -338,9 +338,9 @@ function resolveTheme(config) {
|
|
|
338
338
|
fontFamily: { ...DEFAULT_FONT_FAMILY, ...config.typography?.fontFamily },
|
|
339
339
|
typography: DEFAULT_TYPOGRAPHY,
|
|
340
340
|
spacing: SPACING,
|
|
341
|
-
radius: RADIUS,
|
|
341
|
+
radius: { ...RADIUS, ...(config.radiusScale ?? {}) },
|
|
342
342
|
radiusBase: config.borderRadius ?? 'md',
|
|
343
|
-
shadow: SHADOW,
|
|
343
|
+
shadow: { ...SHADOW, ...(config.shadowScale ?? {}) },
|
|
344
344
|
duration: DURATION,
|
|
345
345
|
easing: EASING,
|
|
346
346
|
zIndex: Z_INDEX,
|
|
@@ -371,12 +371,25 @@ const COMPONENT_TOKEN_DEFAULTS = {
|
|
|
371
371
|
'--ngxsmk-button-font-weight': '500',
|
|
372
372
|
'--ngxsmk-button-radius': 'var(--ngxsmk-radius-base)',
|
|
373
373
|
'--ngxsmk-button-disabled-opacity': '0.5',
|
|
374
|
+
'--ngxsmk-button-border-width': '1px',
|
|
375
|
+
'--ngxsmk-button-gap': 'var(--ngxsmk-space-2)',
|
|
376
|
+
},
|
|
377
|
+
input: {
|
|
378
|
+
'--ngxsmk-input-bg': 'var(--ngxsmk-color-surface)',
|
|
379
|
+
'--ngxsmk-input-color': 'var(--ngxsmk-color-on-surface)',
|
|
380
|
+
'--ngxsmk-input-border': 'var(--ngxsmk-color-outline-strong)',
|
|
381
|
+
'--ngxsmk-input-radius': 'var(--ngxsmk-radius-base)',
|
|
382
|
+
'--ngxsmk-input-height': 'var(--ngxsmk-control-height)',
|
|
383
|
+
'--ngxsmk-input-padding-inline': 'var(--ngxsmk-space-3)',
|
|
384
|
+
'--ngxsmk-input-placeholder': 'var(--ngxsmk-color-on-surface-variant)',
|
|
374
385
|
},
|
|
375
386
|
card: {
|
|
376
387
|
'--ngxsmk-card-bg': 'var(--ngxsmk-color-surface)',
|
|
377
388
|
'--ngxsmk-card-radius': 'var(--ngxsmk-radius-xl)',
|
|
378
389
|
'--ngxsmk-card-shadow': 'var(--ngxsmk-shadow-sm)',
|
|
379
390
|
'--ngxsmk-card-border-color': 'var(--ngxsmk-color-outline)',
|
|
391
|
+
'--ngxsmk-card-border-width': '1px',
|
|
392
|
+
'--ngxsmk-card-padding': 'var(--ngxsmk-space-5)',
|
|
380
393
|
},
|
|
381
394
|
accordion: {
|
|
382
395
|
'--ngxsmk-accordion-bg': 'var(--ngxsmk-color-surface)',
|
|
@@ -398,6 +411,122 @@ const COMPONENT_TOKEN_DEFAULTS = {
|
|
|
398
411
|
'--ngxsmk-switch-thumb-bg': 'var(--ngxsmk-color-surface)',
|
|
399
412
|
'--ngxsmk-switch-checked-bg': 'var(--ngxsmk-color-primary)',
|
|
400
413
|
},
|
|
414
|
+
checkbox: {
|
|
415
|
+
'--ngxsmk-checkbox-size': '1.125rem',
|
|
416
|
+
'--ngxsmk-checkbox-radius': 'var(--ngxsmk-radius-sm)',
|
|
417
|
+
'--ngxsmk-checkbox-border': 'var(--ngxsmk-color-outline-strong)',
|
|
418
|
+
'--ngxsmk-checkbox-checked-bg': 'var(--ngxsmk-color-primary)',
|
|
419
|
+
},
|
|
420
|
+
badge: {
|
|
421
|
+
'--ngxsmk-badge-radius': 'var(--ngxsmk-radius-full)',
|
|
422
|
+
'--ngxsmk-badge-font-weight': '600',
|
|
423
|
+
'--ngxsmk-badge-padding-inline': '0.5rem',
|
|
424
|
+
'--ngxsmk-badge-padding-block': '0.125rem',
|
|
425
|
+
'--ngxsmk-badge-border-mix': '20%',
|
|
426
|
+
},
|
|
427
|
+
alert: {
|
|
428
|
+
'--ngxsmk-alert-radius': 'var(--ngxsmk-radius-lg)',
|
|
429
|
+
'--ngxsmk-alert-border-mix': '22%',
|
|
430
|
+
'--ngxsmk-alert-padding': 'var(--ngxsmk-space-4)',
|
|
431
|
+
},
|
|
432
|
+
dialog: {
|
|
433
|
+
'--ngxsmk-dialog-radius': 'var(--ngxsmk-radius-2xl)',
|
|
434
|
+
'--ngxsmk-dialog-shadow': 'var(--ngxsmk-shadow-xl)',
|
|
435
|
+
'--ngxsmk-dialog-bg': 'var(--ngxsmk-color-surface-elevated)',
|
|
436
|
+
'--ngxsmk-dialog-backdrop': 'var(--ngxsmk-color-backdrop)',
|
|
437
|
+
'--ngxsmk-dialog-blur': '4px',
|
|
438
|
+
'--ngxsmk-dialog-max-width': '28rem',
|
|
439
|
+
},
|
|
440
|
+
sheet: {
|
|
441
|
+
'--ngxsmk-sheet-radius': 'var(--ngxsmk-radius-xl)',
|
|
442
|
+
'--ngxsmk-sheet-shadow': 'var(--ngxsmk-shadow-xl)',
|
|
443
|
+
'--ngxsmk-sheet-bg': 'var(--ngxsmk-color-surface-elevated)',
|
|
444
|
+
'--ngxsmk-sheet-backdrop': 'var(--ngxsmk-color-backdrop)',
|
|
445
|
+
'--ngxsmk-sheet-width': '24rem',
|
|
446
|
+
},
|
|
447
|
+
lightbox: {
|
|
448
|
+
'--ngxsmk-lightbox-backdrop': 'rgb(0 0 0 / 0.9)',
|
|
449
|
+
'--ngxsmk-lightbox-fg': '#ffffff',
|
|
450
|
+
'--ngxsmk-lightbox-control-bg': 'rgb(255 255 255 / 0.12)',
|
|
451
|
+
'--ngxsmk-lightbox-control-bg-hover': 'rgb(255 255 255 / 0.22)',
|
|
452
|
+
},
|
|
453
|
+
toast: {
|
|
454
|
+
'--ngxsmk-toast-radius': 'var(--ngxsmk-radius-lg)',
|
|
455
|
+
'--ngxsmk-toast-shadow': 'var(--ngxsmk-shadow-lg)',
|
|
456
|
+
'--ngxsmk-toast-bg': 'var(--ngxsmk-color-surface-elevated)',
|
|
457
|
+
'--ngxsmk-toast-accent-width': '3px',
|
|
458
|
+
},
|
|
459
|
+
table: {
|
|
460
|
+
'--ngxsmk-table-border': 'var(--ngxsmk-color-outline)',
|
|
461
|
+
'--ngxsmk-table-header-bg': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 55%, transparent)',
|
|
462
|
+
'--ngxsmk-table-row-hover': 'var(--ngxsmk-color-surface-hover)',
|
|
463
|
+
'--ngxsmk-table-stripe': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 35%, transparent)',
|
|
464
|
+
'--ngxsmk-table-drop-indicator': 'inset 2px 0 0 var(--ngxsmk-color-primary)',
|
|
465
|
+
'--ngxsmk-table-cell-padding': '0.625rem 0.75rem',
|
|
466
|
+
},
|
|
467
|
+
tabs: {
|
|
468
|
+
'--ngxsmk-tabs-indicator': '2px',
|
|
469
|
+
'--ngxsmk-tabs-radius': 'var(--ngxsmk-radius-md)',
|
|
470
|
+
'--ngxsmk-tabs-gap': 'var(--ngxsmk-space-1)',
|
|
471
|
+
},
|
|
472
|
+
select: {
|
|
473
|
+
'--ngxsmk-select-bg': 'var(--ngxsmk-color-surface)',
|
|
474
|
+
'--ngxsmk-select-border': 'var(--ngxsmk-color-outline-strong)',
|
|
475
|
+
'--ngxsmk-select-radius': 'var(--ngxsmk-radius-base)',
|
|
476
|
+
'--ngxsmk-select-list-shadow': 'var(--ngxsmk-shadow-lg)',
|
|
477
|
+
'--ngxsmk-select-list-radius': 'var(--ngxsmk-radius-lg)',
|
|
478
|
+
},
|
|
479
|
+
menu: {
|
|
480
|
+
'--ngxsmk-menu-bg': 'var(--ngxsmk-color-surface-elevated)',
|
|
481
|
+
'--ngxsmk-menu-radius': 'var(--ngxsmk-radius-lg)',
|
|
482
|
+
'--ngxsmk-menu-shadow': 'var(--ngxsmk-shadow-lg)',
|
|
483
|
+
'--ngxsmk-menu-border': 'var(--ngxsmk-color-outline)',
|
|
484
|
+
'--ngxsmk-menu-item-radius': 'var(--ngxsmk-radius-md)',
|
|
485
|
+
},
|
|
486
|
+
pagination: {
|
|
487
|
+
'--ngxsmk-pagination-size': '2.25rem',
|
|
488
|
+
'--ngxsmk-pagination-radius': 'var(--ngxsmk-radius-md)',
|
|
489
|
+
},
|
|
490
|
+
formField: {
|
|
491
|
+
'--ngxsmk-form-field-gap': 'var(--ngxsmk-space-1-5)',
|
|
492
|
+
'--ngxsmk-form-field-label-weight': '500',
|
|
493
|
+
},
|
|
494
|
+
radio: {
|
|
495
|
+
'--ngxsmk-radio-size': '1.125rem',
|
|
496
|
+
'--ngxsmk-radio-dot-size': '0.5rem',
|
|
497
|
+
'--ngxsmk-radio-border': 'var(--ngxsmk-color-outline-strong)',
|
|
498
|
+
},
|
|
499
|
+
dataTable: {
|
|
500
|
+
'--ngxsmk-data-table-border': 'var(--ngxsmk-color-outline)',
|
|
501
|
+
'--ngxsmk-data-table-radius': 'var(--ngxsmk-radius-md)',
|
|
502
|
+
'--ngxsmk-data-table-filter-bg': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 40%, transparent)',
|
|
503
|
+
'--ngxsmk-data-table-filter-label-size': '0.7rem',
|
|
504
|
+
'--ngxsmk-data-table-page-size': '2rem',
|
|
505
|
+
'--ngxsmk-data-table-loading-height': '3px',
|
|
506
|
+
},
|
|
507
|
+
aiChat: {
|
|
508
|
+
'--ngxsmk-ai-chat-radius': 'var(--ngxsmk-radius-xl)',
|
|
509
|
+
'--ngxsmk-ai-chat-border': 'var(--ngxsmk-color-outline)',
|
|
510
|
+
'--ngxsmk-ai-chat-bg': 'var(--ngxsmk-color-surface)',
|
|
511
|
+
'--ngxsmk-ai-chat-header-bg': 'var(--ngxsmk-color-surface-variant)',
|
|
512
|
+
'--ngxsmk-ai-chat-bubble-bg': 'var(--ngxsmk-color-surface-variant)',
|
|
513
|
+
'--ngxsmk-ai-chat-bubble-user-bg': 'var(--ngxsmk-color-primary)',
|
|
514
|
+
'--ngxsmk-ai-chat-bubble-radius': 'var(--ngxsmk-radius-lg)',
|
|
515
|
+
'--ngxsmk-ai-chat-composer-radius': 'var(--ngxsmk-radius-full)',
|
|
516
|
+
},
|
|
517
|
+
promptInput: {
|
|
518
|
+
'--ngxsmk-prompt-radius': 'var(--ngxsmk-radius-xl)',
|
|
519
|
+
'--ngxsmk-prompt-border': 'var(--ngxsmk-color-outline-strong)',
|
|
520
|
+
'--ngxsmk-prompt-shadow': 'var(--ngxsmk-shadow-sm)',
|
|
521
|
+
'--ngxsmk-prompt-bg': 'var(--ngxsmk-color-surface)',
|
|
522
|
+
'--ngxsmk-prompt-send-radius': 'var(--ngxsmk-radius-full)',
|
|
523
|
+
},
|
|
524
|
+
chatBubble: {
|
|
525
|
+
'--ngxsmk-chat-bubble-radius': 'var(--ngxsmk-radius-lg)',
|
|
526
|
+
'--ngxsmk-chat-bubble-bg': 'var(--ngxsmk-color-surface-container)',
|
|
527
|
+
'--ngxsmk-chat-bubble-user-bg': 'var(--ngxsmk-color-primary-container)',
|
|
528
|
+
'--ngxsmk-chat-bubble-padding': 'var(--ngxsmk-space-2) var(--ngxsmk-space-3)',
|
|
529
|
+
},
|
|
401
530
|
spreadsheet: {
|
|
402
531
|
'--ngxsmk-spreadsheet-bg': 'var(--ngxsmk-color-surface)',
|
|
403
532
|
'--ngxsmk-spreadsheet-header-bg': 'var(--ngxsmk-color-surface-variant)',
|
|
@@ -429,16 +558,22 @@ const COMPONENT_TOKEN_DEFAULTS = {
|
|
|
429
558
|
'--ngxsmk-input-group-radius': 'var(--ngxsmk-radius-md)',
|
|
430
559
|
'--ngxsmk-input-group-shadow': 'none',
|
|
431
560
|
'--ngxsmk-input-group-focus-border': 'var(--ngxsmk-color-primary)',
|
|
432
|
-
'--ngxsmk-input-group-focus-shadow': '
|
|
561
|
+
'--ngxsmk-input-group-focus-shadow': 'var(--ngxsmk-focus-ring)',
|
|
433
562
|
'--ngxsmk-input-group-error-border': 'var(--ngxsmk-color-error)',
|
|
434
|
-
'--ngxsmk-input-group-error-focus-shadow': '
|
|
563
|
+
'--ngxsmk-input-group-error-focus-shadow': 'var(--ngxsmk-focus-ring-error)',
|
|
435
564
|
'--ngxsmk-input-group-success-border': 'var(--ngxsmk-color-success)',
|
|
436
565
|
'--ngxsmk-input-group-warning-border': 'var(--ngxsmk-color-warning)',
|
|
437
|
-
'--ngxsmk-input-group-height': '
|
|
566
|
+
'--ngxsmk-input-group-height': 'var(--ngxsmk-control-height)',
|
|
438
567
|
'--ngxsmk-input-group-padding': '0.75rem',
|
|
439
568
|
'--ngxsmk-input-group-gap': 'var(--ngxsmk-space-2)',
|
|
440
569
|
'--ngxsmk-input-group-font': 'var(--ngxsmk-font-sans)',
|
|
441
570
|
},
|
|
571
|
+
heatmap: {
|
|
572
|
+
'--ngxsmk-heatmap-level-1': 'color-mix(in srgb, var(--ngxsmk-color-success) 28%, var(--ngxsmk-color-surface-variant))',
|
|
573
|
+
'--ngxsmk-heatmap-level-2': 'color-mix(in srgb, var(--ngxsmk-color-success) 52%, var(--ngxsmk-color-surface-variant))',
|
|
574
|
+
'--ngxsmk-heatmap-level-3': 'color-mix(in srgb, var(--ngxsmk-color-success) 76%, var(--ngxsmk-color-surface-variant))',
|
|
575
|
+
'--ngxsmk-heatmap-level-4': 'var(--ngxsmk-color-success)',
|
|
576
|
+
},
|
|
442
577
|
};
|
|
443
578
|
/** Tokens that do not change between light and dark mode. */
|
|
444
579
|
function staticVars(theme) {
|
|
@@ -763,6 +898,9 @@ const neutralPreset = {
|
|
|
763
898
|
/**
|
|
764
899
|
* Default preset: Emerald green. This preset generates the prebuilt
|
|
765
900
|
* `ngxsmk.css` stylesheet shipped with @ngxsmk/theme.
|
|
901
|
+
*
|
|
902
|
+
* **Classic contract:** keep this visually stable for existing consumers.
|
|
903
|
+
* Premium Ink lives in `inkPreset` / `ngxsmk.ink.css` as an opt-in.
|
|
766
904
|
*/
|
|
767
905
|
const emeraldPreset = {
|
|
768
906
|
name: 'emerald',
|
|
@@ -772,11 +910,174 @@ const rosePreset = {
|
|
|
772
910
|
name: 'rose',
|
|
773
911
|
brand: { primary: '#E11D48' },
|
|
774
912
|
};
|
|
913
|
+
/**
|
|
914
|
+
* Cool graphite neutrals for the Ink & precision look. Independent of the
|
|
915
|
+
* Classic `DEFAULT_NEUTRAL` so emerald/violet/rose stay unchanged.
|
|
916
|
+
*/
|
|
917
|
+
const INK_NEUTRAL = {
|
|
918
|
+
50: '#F6F7F8',
|
|
919
|
+
100: '#EBEDF0',
|
|
920
|
+
200: '#D5D8DE',
|
|
921
|
+
300: '#B0B5BF',
|
|
922
|
+
400: '#7E8491',
|
|
923
|
+
500: '#5A606C',
|
|
924
|
+
600: '#454954',
|
|
925
|
+
700: '#33363E',
|
|
926
|
+
800: '#1C1E24',
|
|
927
|
+
900: '#12141A',
|
|
928
|
+
950: '#0A0B0E',
|
|
929
|
+
};
|
|
930
|
+
/**
|
|
931
|
+
* Opt-in premium preset: Ink & precision.
|
|
932
|
+
* Generates `ngxsmk.ink.css`. Does not replace the default `ngxsmk.css`.
|
|
933
|
+
*
|
|
934
|
+
* Consumers:
|
|
935
|
+
* ```css
|
|
936
|
+
* @import '@ngxsmk/theme/styles/ngxsmk.ink.css';
|
|
937
|
+
* ```
|
|
938
|
+
* or `theme.applyTheme(inkPreset)`.
|
|
939
|
+
*/
|
|
940
|
+
const inkPreset = {
|
|
941
|
+
name: 'ink',
|
|
942
|
+
brand: { primary: '#0F766E' },
|
|
943
|
+
neutral: INK_NEUTRAL,
|
|
944
|
+
typography: {
|
|
945
|
+
fontFamily: {
|
|
946
|
+
sans: "'Geist Sans', 'Geist Sans Fallback', system-ui, -apple-system, sans-serif",
|
|
947
|
+
mono: "'Geist Mono', 'Geist Mono Fallback', monospace",
|
|
948
|
+
},
|
|
949
|
+
},
|
|
950
|
+
borderRadius: 'md',
|
|
951
|
+
radiusScale: {
|
|
952
|
+
sm: '0.1875rem', // 3px
|
|
953
|
+
md: '0.375rem', // 6px — element base
|
|
954
|
+
lg: '0.5rem', // 8px — cards / popovers
|
|
955
|
+
xl: '0.625rem', // 10px
|
|
956
|
+
'2xl': '0.75rem', // 12px
|
|
957
|
+
'3xl': '1rem', // 16px — page surfaces (was 28px in Classic)
|
|
958
|
+
},
|
|
959
|
+
shadowScale: {
|
|
960
|
+
sm: '0 0 0 1px rgb(0 0 0 / 0.04), 0 1px 2px rgb(0 0 0 / 0.04)',
|
|
961
|
+
md: '0 0 0 1px rgb(0 0 0 / 0.04), 0 1px 2px rgb(0 0 0 / 0.05), 0 4px 10px rgb(0 0 0 / 0.05)',
|
|
962
|
+
lg: '0 0 0 1px rgb(0 0 0 / 0.05), 0 2px 4px rgb(0 0 0 / 0.05), 0 10px 28px rgb(0 0 0 / 0.08)',
|
|
963
|
+
xl: '0 0 0 1px rgb(0 0 0 / 0.05), 0 4px 8px rgb(0 0 0 / 0.06), 0 18px 40px rgb(0 0 0 / 0.1)',
|
|
964
|
+
'2xl': '0 0 0 1px rgb(0 0 0 / 0.06), 0 8px 16px rgb(0 0 0 / 0.08), 0 28px 56px rgb(0 0 0 / 0.12)',
|
|
965
|
+
},
|
|
966
|
+
overrides: {
|
|
967
|
+
light: {
|
|
968
|
+
// Graphite canvas — quieter than Classic cool-blue wash.
|
|
969
|
+
'--ngxsmk-color-background': '#F4F5F7',
|
|
970
|
+
'--ngxsmk-color-surface': '#FFFFFF',
|
|
971
|
+
'--ngxsmk-color-surface-elevated': '#FFFFFF',
|
|
972
|
+
'--ngxsmk-color-surface-overlay': '#FFFFFF',
|
|
973
|
+
'--ngxsmk-color-surface-variant': '#EBEDF0',
|
|
974
|
+
'--ngxsmk-color-on-background': '#0A0B0E',
|
|
975
|
+
'--ngxsmk-color-on-surface': '#0A0B0E',
|
|
976
|
+
'--ngxsmk-color-on-surface-variant': '#5A606C',
|
|
977
|
+
'--ngxsmk-color-surface-hover': 'rgb(10 11 14 / 0.04)',
|
|
978
|
+
'--ngxsmk-color-surface-active': 'rgb(10 11 14 / 0.08)',
|
|
979
|
+
'--ngxsmk-color-outline': 'rgb(10 11 14 / 0.1)',
|
|
980
|
+
'--ngxsmk-color-outline-strong': '#D5D8DE',
|
|
981
|
+
'--ngxsmk-color-outline-variant': 'rgb(10 11 14 / 0.06)',
|
|
982
|
+
'--ngxsmk-color-outline-subtle': 'rgb(10 11 14 / 0.05)',
|
|
983
|
+
'--ngxsmk-color-backdrop': 'rgb(10 11 14 / 0.48)',
|
|
984
|
+
'--ngxsmk-color-ring': '#0F766E',
|
|
985
|
+
// Precision focus — tighter than Classic double ring.
|
|
986
|
+
'--ngxsmk-shadow-focus': '0 0 0 1px #FFFFFF, 0 0 0 3px color-mix(in srgb, #0F766E 55%, transparent)',
|
|
987
|
+
// Density.
|
|
988
|
+
'--ngxsmk-control-height': '2.25rem',
|
|
989
|
+
'--ngxsmk-control-height-sm': '1.875rem',
|
|
990
|
+
'--ngxsmk-control-height-md': '2.25rem',
|
|
991
|
+
'--ngxsmk-control-height-lg': '2.75rem',
|
|
992
|
+
// Component chrome — border-first, no float.
|
|
993
|
+
'--ngxsmk-hover-lift': 'none',
|
|
994
|
+
'--ngxsmk-button-font-weight': '600',
|
|
995
|
+
'--ngxsmk-button-radius': 'var(--ngxsmk-radius-md)',
|
|
996
|
+
'--ngxsmk-input-border': 'var(--ngxsmk-color-outline)',
|
|
997
|
+
'--ngxsmk-input-height': 'var(--ngxsmk-control-height)',
|
|
998
|
+
'--ngxsmk-input-group-height': '2.25rem',
|
|
999
|
+
'--ngxsmk-input-group-border': 'var(--ngxsmk-color-outline)',
|
|
1000
|
+
'--ngxsmk-card-shadow': 'none',
|
|
1001
|
+
'--ngxsmk-card-radius': 'var(--ngxsmk-radius-lg)',
|
|
1002
|
+
'--ngxsmk-card-border-width': '1px',
|
|
1003
|
+
'--ngxsmk-dialog-radius': 'var(--ngxsmk-radius-lg)',
|
|
1004
|
+
'--ngxsmk-dialog-blur': '8px',
|
|
1005
|
+
'--ngxsmk-sheet-radius': 'var(--ngxsmk-radius-lg)',
|
|
1006
|
+
'--ngxsmk-toast-radius': 'var(--ngxsmk-radius-md)',
|
|
1007
|
+
'--ngxsmk-toast-accent-width': '2px',
|
|
1008
|
+
'--ngxsmk-select-border': 'var(--ngxsmk-color-outline)',
|
|
1009
|
+
'--ngxsmk-menu-radius': 'var(--ngxsmk-radius-md)',
|
|
1010
|
+
'--ngxsmk-pagination-size': '2rem',
|
|
1011
|
+
'--ngxsmk-pagination-radius': 'var(--ngxsmk-radius-md)',
|
|
1012
|
+
'--ngxsmk-table-header-bg': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 70%, transparent)',
|
|
1013
|
+
'--ngxsmk-badge-font-weight': '650',
|
|
1014
|
+
'--ngxsmk-progress-height': '0.375rem',
|
|
1015
|
+
// Forms — denser labels, quieter group chrome.
|
|
1016
|
+
'--ngxsmk-form-field-gap': 'var(--ngxsmk-space-1)',
|
|
1017
|
+
'--ngxsmk-form-field-label-weight': '600',
|
|
1018
|
+
'--ngxsmk-input-group-radius': 'var(--ngxsmk-radius-md)',
|
|
1019
|
+
'--ngxsmk-input-group-padding': '0.625rem',
|
|
1020
|
+
'--ngxsmk-radio-border': 'var(--ngxsmk-color-outline)',
|
|
1021
|
+
// Data table — ops density.
|
|
1022
|
+
'--ngxsmk-data-table-radius': 'var(--ngxsmk-radius-md)',
|
|
1023
|
+
'--ngxsmk-data-table-filter-bg': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 55%, transparent)',
|
|
1024
|
+
'--ngxsmk-data-table-page-size': '1.875rem',
|
|
1025
|
+
'--ngxsmk-data-table-loading-height': '2px',
|
|
1026
|
+
// AI surfaces — border-first console, no soft float.
|
|
1027
|
+
'--ngxsmk-ai-chat-radius': 'var(--ngxsmk-radius-lg)',
|
|
1028
|
+
'--ngxsmk-ai-chat-header-bg': 'var(--ngxsmk-color-surface)',
|
|
1029
|
+
'--ngxsmk-ai-chat-bubble-bg': 'var(--ngxsmk-color-surface-variant)',
|
|
1030
|
+
'--ngxsmk-ai-chat-bubble-radius': 'var(--ngxsmk-radius-md)',
|
|
1031
|
+
'--ngxsmk-ai-chat-composer-radius': 'var(--ngxsmk-radius-md)',
|
|
1032
|
+
'--ngxsmk-prompt-radius': 'var(--ngxsmk-radius-lg)',
|
|
1033
|
+
'--ngxsmk-prompt-border': 'var(--ngxsmk-color-outline)',
|
|
1034
|
+
'--ngxsmk-prompt-shadow': 'none',
|
|
1035
|
+
'--ngxsmk-prompt-send-radius': 'var(--ngxsmk-radius-md)',
|
|
1036
|
+
'--ngxsmk-chat-bubble-radius': 'var(--ngxsmk-radius-md)',
|
|
1037
|
+
'--ngxsmk-chat-bubble-padding': 'var(--ngxsmk-space-2) var(--ngxsmk-space-3)',
|
|
1038
|
+
},
|
|
1039
|
+
dark: {
|
|
1040
|
+
'--ngxsmk-color-background': '#0A0B0E',
|
|
1041
|
+
'--ngxsmk-color-surface': '#12141A',
|
|
1042
|
+
'--ngxsmk-color-surface-elevated': '#1C1E24',
|
|
1043
|
+
'--ngxsmk-color-surface-overlay': '#1C1E24',
|
|
1044
|
+
'--ngxsmk-color-surface-container': '#12141A',
|
|
1045
|
+
'--ngxsmk-color-surface-variant': '#1C1E24',
|
|
1046
|
+
'--ngxsmk-color-surface-1': '#12141A',
|
|
1047
|
+
'--ngxsmk-color-surface-2': '#1C1E24',
|
|
1048
|
+
'--ngxsmk-color-outline': 'rgb(246 247 248 / 0.12)',
|
|
1049
|
+
'--ngxsmk-color-outline-strong': 'rgb(246 247 248 / 0.18)',
|
|
1050
|
+
'--ngxsmk-color-outline-variant': 'rgb(246 247 248 / 0.08)',
|
|
1051
|
+
'--ngxsmk-color-backdrop': 'rgb(0 0 0 / 0.62)',
|
|
1052
|
+
'--ngxsmk-shadow-focus': '0 0 0 1px #12141A, 0 0 0 3px color-mix(in srgb, #2DD4BF 50%, transparent)',
|
|
1053
|
+
'--ngxsmk-hover-lift': 'none',
|
|
1054
|
+
'--ngxsmk-control-height': '2.25rem',
|
|
1055
|
+
'--ngxsmk-control-height-sm': '1.875rem',
|
|
1056
|
+
'--ngxsmk-control-height-md': '2.25rem',
|
|
1057
|
+
'--ngxsmk-control-height-lg': '2.75rem',
|
|
1058
|
+
'--ngxsmk-button-font-weight': '600',
|
|
1059
|
+
'--ngxsmk-card-shadow': 'none',
|
|
1060
|
+
'--ngxsmk-card-radius': 'var(--ngxsmk-radius-lg)',
|
|
1061
|
+
'--ngxsmk-dialog-radius': 'var(--ngxsmk-radius-lg)',
|
|
1062
|
+
'--ngxsmk-input-border': 'var(--ngxsmk-color-outline)',
|
|
1063
|
+
'--ngxsmk-select-border': 'var(--ngxsmk-color-outline)',
|
|
1064
|
+
'--ngxsmk-form-field-label-weight': '600',
|
|
1065
|
+
'--ngxsmk-input-group-height': '2.25rem',
|
|
1066
|
+
'--ngxsmk-ai-chat-radius': 'var(--ngxsmk-radius-lg)',
|
|
1067
|
+
'--ngxsmk-ai-chat-header-bg': 'var(--ngxsmk-color-surface)',
|
|
1068
|
+
'--ngxsmk-prompt-shadow': 'none',
|
|
1069
|
+
'--ngxsmk-prompt-border': 'var(--ngxsmk-color-outline)',
|
|
1070
|
+
'--ngxsmk-prompt-send-radius': 'var(--ngxsmk-radius-md)',
|
|
1071
|
+
'--ngxsmk-data-table-filter-bg': 'color-mix(in srgb, var(--ngxsmk-color-surface-variant) 70%, transparent)',
|
|
1072
|
+
},
|
|
1073
|
+
},
|
|
1074
|
+
};
|
|
775
1075
|
const presets = {
|
|
776
1076
|
violet: violetPreset,
|
|
777
1077
|
neutral: neutralPreset,
|
|
778
1078
|
emerald: emeraldPreset,
|
|
779
1079
|
rose: rosePreset,
|
|
1080
|
+
ink: inkPreset,
|
|
780
1081
|
};
|
|
781
1082
|
|
|
782
1083
|
/**
|
|
@@ -1019,9 +1320,7 @@ class NgxThemeInjectorService {
|
|
|
1019
1320
|
const resolved = resolveTheme(config);
|
|
1020
1321
|
const lightVars = ionicVarsAdapter.vars(resolved);
|
|
1021
1322
|
const darkVars = ionicVarsAdapter.darkVars ? ionicVarsAdapter.darkVars(resolved) : undefined;
|
|
1022
|
-
|
|
1023
|
-
style.textContent = this.buildAdapterCss('ionic', lightVars, darkVars);
|
|
1024
|
-
}
|
|
1323
|
+
style.textContent = this.buildAdapterCss('ionic', lightVars, darkVars);
|
|
1025
1324
|
}
|
|
1026
1325
|
/** Remove a runtime-applied theme, falling back to the build-time CSS. */
|
|
1027
1326
|
clearTheme() {
|
|
@@ -1159,5 +1458,5 @@ function provideNgxsmkIonicTheme(config) {
|
|
|
1159
1458
|
* Generated bundle index. Do not edit.
|
|
1160
1459
|
*/
|
|
1161
1460
|
|
|
1162
|
-
export { CONTROL_HEIGHT, CONTROL_HEIGHTS, DEFAULT_FONT_FAMILY, DEFAULT_NEUTRAL, DEFAULT_SEMANTIC, DEFAULT_TYPOGRAPHY, DURATION, EASING, FONT_WEIGHT, ICON_SIZE, LEADING, NgxThemeInjectorService, NgxsmkThemeService, OPACITY, RADIUS, SAFE_AREA, SHADOW, SPACING, TOUCH_TARGET_MIN, TRACKING, Z_INDEX, buildThemeCss, cssVarsAdapter, defineConfig, deriveScale, emeraldPreset, hexToOklch, ionicVarsAdapter, neutralPreset, oklchToHex, presets, provideNgxsmkIonicTheme, resolveTheme, rosePreset, rotateHue, shiftLightness, violetPreset };
|
|
1461
|
+
export { CONTROL_HEIGHT, CONTROL_HEIGHTS, DEFAULT_FONT_FAMILY, DEFAULT_NEUTRAL, DEFAULT_SEMANTIC, DEFAULT_TYPOGRAPHY, DURATION, EASING, FONT_WEIGHT, ICON_SIZE, LEADING, NgxThemeInjectorService, NgxsmkThemeService, OPACITY, RADIUS, SAFE_AREA, SHADOW, SPACING, TOUCH_TARGET_MIN, TRACKING, Z_INDEX, buildThemeCss, cssVarsAdapter, defineConfig, deriveScale, emeraldPreset, hexToOklch, inkPreset, ionicVarsAdapter, neutralPreset, oklchToHex, presets, provideNgxsmkIonicTheme, resolveTheme, rosePreset, rotateHue, shiftLightness, violetPreset };
|
|
1163
1462
|
//# sourceMappingURL=ngxsmk-theme.mjs.map
|