@shohojdhara/atomix 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +58 -21
  2. package/dist/atomix.css +96 -121
  3. package/dist/atomix.min.css +3 -3
  4. package/dist/index.d.ts +7937 -7765
  5. package/dist/index.esm.js +3677 -4031
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +3648 -3952
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/package.json +44 -16
  12. package/scripts/atomix-cli.js +1764 -0
  13. package/scripts/build-themes.js +208 -0
  14. package/scripts/cli/interactive-init.js +520 -0
  15. package/scripts/cli/migration-tools.js +603 -0
  16. package/scripts/cli/theme-bridge.js +129 -0
  17. package/scripts/cli/token-manager.js +519 -0
  18. package/scripts/sync-theme-config.js +309 -0
  19. package/src/components/Button/Button.tsx +36 -1
  20. package/src/components/List/ListGroup.tsx +1 -2
  21. package/src/components/Popover/Popover.tsx +2 -2
  22. package/src/components/Tooltip/Tooltip.stories.tsx +49 -12
  23. package/src/components/Tooltip/Tooltip.tsx +32 -58
  24. package/src/lib/composables/useTooltip.ts +285 -0
  25. package/src/lib/config/index.ts +275 -0
  26. package/src/lib/config/loader.ts +105 -0
  27. package/src/lib/constants/cssVariables.ts +390 -0
  28. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +151 -0
  29. package/src/lib/hooks/index.ts +19 -0
  30. package/src/lib/hooks/useComponentCustomization.ts +175 -0
  31. package/src/lib/index.ts +14 -1
  32. package/src/lib/patterns/__tests__/slots.test.ts +108 -0
  33. package/src/lib/patterns/index.ts +35 -0
  34. package/src/lib/patterns/slots.tsx +421 -0
  35. package/src/lib/theme/composeTheme.ts +0 -5
  36. package/src/lib/theme/config/index.ts +1 -1
  37. package/src/lib/theme/config/loader.ts +75 -41
  38. package/src/lib/theme/config/types.ts +21 -7
  39. package/src/lib/theme/config/validator.ts +1 -1
  40. package/src/lib/theme/constants.ts +12 -2
  41. package/src/lib/theme/createTheme.ts +2 -135
  42. package/src/lib/theme/createThemeFromConfig.ts +132 -0
  43. package/src/lib/theme/cssVariableMapper.ts +261 -0
  44. package/src/lib/theme/devtools/CLI.ts +161 -76
  45. package/src/lib/theme/devtools/Comparator.tsx +343 -0
  46. package/src/lib/theme/devtools/IMPROVEMENTS.md +429 -0
  47. package/src/lib/theme/devtools/Inspector.tsx +21 -6
  48. package/src/lib/theme/devtools/LiveEditor.tsx +393 -0
  49. package/src/lib/theme/devtools/README.md +433 -0
  50. package/src/lib/theme/devtools/index.ts +12 -11
  51. package/src/lib/theme/generateCSSVariables.ts +79 -38
  52. package/src/lib/theme/index.ts +45 -246
  53. package/src/lib/theme/runtime/ThemeApplicator.ts +252 -0
  54. package/src/lib/theme/runtime/ThemeManager.test.ts +17 -1
  55. package/src/lib/theme/runtime/ThemeManager.ts +7 -7
  56. package/src/lib/theme/themeUtils.ts +27 -5
  57. package/src/lib/theme/types.ts +59 -1
  58. package/src/lib/theme-tools.ts +125 -0
  59. package/src/lib/types/components.ts +260 -72
  60. package/src/lib/types/partProps.ts +426 -0
  61. package/src/lib/utils/__tests__/componentUtils.test.ts +144 -0
  62. package/src/lib/utils/componentUtils.ts +163 -0
  63. package/src/lib/utils/index.ts +17 -57
  64. package/src/styles/01-settings/_settings.colors.scss +10 -10
  65. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  66. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  67. package/src/styles/03-generic/_generated-root.css +5 -0
  68. package/src/styles/06-components/_components.navbar.scss +12 -5
  69. package/src/styles/06-components/_components.tooltip.scss +31 -81
  70. package/src/themes/README.md +442 -0
  71. package/src/themes/themes.config.js +35 -0
  72. package/src/lib/theme/errors.test.ts +0 -207
  73. package/src/lib/theme/generators/CSSGenerator.ts +0 -311
  74. package/src/lib/theme/generators/ConfigGenerator.ts +0 -287
  75. package/src/lib/theme/generators/TypeGenerator.ts +0 -228
  76. package/src/lib/theme/generators/index.ts +0 -21
  77. package/src/lib/theme/monitoring/ThemeAnalytics.ts +0 -409
  78. package/src/lib/theme/monitoring/index.ts +0 -17
  79. package/src/lib/theme/overrides/ComponentOverrides.ts +0 -243
  80. package/src/lib/theme/overrides/index.ts +0 -15
  81. package/src/lib/theme/studio/ThemeStudio.tsx +0 -312
  82. package/src/lib/theme/studio/index.ts +0 -8
  83. package/src/lib/theme/whitelabel/WhiteLabelManager.ts +0 -364
  84. package/src/lib/theme/whitelabel/index.ts +0 -13
package/README.md CHANGED
@@ -40,43 +40,80 @@ function App() {
40
40
  }
41
41
  ```
42
42
 
43
- ### Theme Management
43
+ ### 🎨 Theme Management
44
44
 
45
- Atomix includes a powerful theme manager for dynamic theme switching:
45
+ Atomix provides a powerful, developer-friendly theming system with **Tailwind-like configuration**:
46
46
 
47
- ```jsx
48
- import { ThemeProvider, useTheme } from '@shohojdhara/atomix/theme';
47
+ #### Tailwind-like Configuration (Recommended)
48
+
49
+ Create `atomix.config.ts` in your project root:
50
+
51
+ ```typescript
52
+ import { defineConfig } from '@shohojdhara/atomix/config';
53
+
54
+ export default defineConfig({
55
+ theme: {
56
+ extend: {
57
+ colors: {
58
+ primary: { main: '#7AFFD7' },
59
+ secondary: { main: '#FF5733' },
60
+ },
61
+ },
62
+ },
63
+ });
64
+ ```
65
+
66
+ Use it in your app:
67
+
68
+ ```tsx
69
+ import { loadAtomixConfig } from '@shohojdhara/atomix/config';
70
+ import { createThemeFromConfig, ThemeProvider } from '@shohojdhara/atomix/theme';
71
+
72
+ const config = loadAtomixConfig();
73
+ const theme = createThemeFromConfig(config);
49
74
 
50
75
  function App() {
51
76
  return (
52
- <ThemeProvider>
77
+ <ThemeProvider defaultTheme={theme}>
53
78
  <YourApp />
54
79
  </ThemeProvider>
55
80
  );
56
81
  }
82
+ ```
83
+
84
+ #### Quick Start with Themes
57
85
 
58
- function ThemeSwitcher() {
59
- const { theme, setTheme, availableThemes } = useTheme();
60
-
86
+ ```jsx
87
+ import { ThemeProvider, useTheme } from '@shohojdhara/atomix/theme';
88
+
89
+ function App() {
61
90
  return (
62
- <select value={theme} onChange={(e) => setTheme(e.target.value)}>
63
- {availableThemes.map(t => (
64
- <option key={t.class} value={t.class}>{t.name}</option>
65
- ))}
66
- </select>
91
+ <ThemeProvider>
92
+ <YourApp />
93
+ </ThemeProvider>
67
94
  );
68
95
  }
69
96
  ```
70
97
 
71
- **Available Themes:**
72
- - Built-in styles are used by default (no theme CSS loaded)
73
- - `flashtrade` - Crypto trading platform theme (stable)
74
- - `boomdevs` - BoomDevs theme (beta)
75
- - `esrar` - Esrar theme (beta)
76
- - `mashroom` - Mashroom theme (beta)
77
- - `applemix` - Apple-inspired glass morphism theme (experimental)
98
+ #### Programmatic Theme Creation
99
+
100
+ ```jsx
101
+ import { createTheme, ThemeProvider } from '@shohojdhara/atomix/theme';
102
+
103
+ const myTheme = createTheme({
104
+ palette: {
105
+ primary: { main: '#7AFFD7' },
106
+ },
107
+ });
108
+
109
+ <ThemeProvider defaultTheme={myTheme}>
110
+ <App />
111
+ </ThemeProvider>
112
+ ```
78
113
 
79
- For detailed theme manager documentation, see [Theme Manager Guide](docs/THEME_MANAGER.md).
114
+ For complete documentation, see:
115
+ - [Getting Started - Theme System](docs/getting-started/theme-system.md) - Quick start guide
116
+ - [Theme System Guide](docs/THEME_SYSTEM.md) - Complete reference (includes guides for both external developers and library developers)
80
117
 
81
118
 
82
119
  ## Styles
package/dist/atomix.css CHANGED
@@ -365,7 +365,7 @@ summary {
365
365
  */
366
366
  :root,
367
367
  [data-atomix-color-mode=light] {
368
- --atomix-primary: #7c3aed;
368
+ --atomix-primary: #ffb800;
369
369
  --atomix-secondary: #f3f4f6;
370
370
  --atomix-success: #22c55e;
371
371
  --atomix-info: #3b82f6;
@@ -373,7 +373,7 @@ summary {
373
373
  --atomix-error: #ef4444;
374
374
  --atomix-light: #f9fafb;
375
375
  --atomix-dark: #1f2937;
376
- --atomix-primary-rgb: 124, 58, 237;
376
+ --atomix-primary-rgb: 255, 184, 0;
377
377
  --atomix-secondary-rgb: 243, 244, 246;
378
378
  --atomix-success-rgb: 34, 197, 94;
379
379
  --atomix-info-rgb: 59, 130, 246;
@@ -391,22 +391,22 @@ summary {
391
391
  --atomix-gray-8: #374151;
392
392
  --atomix-gray-9: #1f2937;
393
393
  --atomix-gray-10: #111827;
394
- --atomix-primary-1: #f2e8fd;
395
- --atomix-primary-2: #e4d0fa;
396
- --atomix-primary-3: #d0b2f5;
397
- --atomix-primary-4: #b88cef;
398
- --atomix-primary-5: #9c63e9;
399
- --atomix-primary-6: #7c3aed;
400
- --atomix-primary-7: #6425ca;
401
- --atomix-primary-8: #501ba6;
402
- --atomix-primary-9: #3c1583;
403
- --atomix-primary-10: #2a0e60;
394
+ --atomix-primary-1: #fff9e6;
395
+ --atomix-primary-2: #fff4cc;
396
+ --atomix-primary-3: #ffe699;
397
+ --atomix-primary-4: #ffd966;
398
+ --atomix-primary-5: #ffcc33;
399
+ --atomix-primary-6: #ffb800;
400
+ --atomix-primary-7: #e6a600;
401
+ --atomix-primary-8: #cc9400;
402
+ --atomix-primary-9: #b38200;
403
+ --atomix-primary-10: #997000;
404
404
  --atomix-primary-text-emphasis: #111827;
405
405
  --atomix-secondary-text-emphasis: #374151;
406
406
  --atomix-tertiary-text-emphasis: #6b7280;
407
407
  --atomix-disabled-text-emphasis: #9ca3af;
408
408
  --atomix-invert-text-emphasis: #111827;
409
- --atomix-brand-text-emphasis: #7c3aed;
409
+ --atomix-brand-text-emphasis: #ffb800;
410
410
  --atomix-error-text-emphasis: #ef4444;
411
411
  --atomix-success-text-emphasis: #22c55e;
412
412
  --atomix-warning-text-emphasis: #eab308;
@@ -417,7 +417,7 @@ summary {
417
417
  --atomix-secondary-bg-subtle: #e5e7eb;
418
418
  --atomix-tertiary-bg-subtle: #d1d5db;
419
419
  --atomix-invert-bg-subtle: #111827;
420
- --atomix-brand-bg-subtle: #e4d0fa;
420
+ --atomix-brand-bg-subtle: #fff4cc;
421
421
  --atomix-error-bg-subtle: #fee2e2;
422
422
  --atomix-success-bg-subtle: #dcfce7;
423
423
  --atomix-warning-bg-subtle: #fef9c3;
@@ -430,10 +430,10 @@ summary {
430
430
  --atomix-error-border-subtle: #ef4444;
431
431
  --atomix-warning-border-subtle: #eab308;
432
432
  --atomix-info-border-subtle: #3b82f6;
433
- --atomix-brand-border-subtle: #7c3aed;
433
+ --atomix-brand-border-subtle: #ffb800;
434
434
  --atomix-light-border-subtle: #f9fafb;
435
435
  --atomix-dark-border-subtle: #1f2937;
436
- --atomix-primary-hover: #7c3aed;
436
+ --atomix-primary-hover: #ffb800;
437
437
  --atomix-secondary-hover: #e5e7eb;
438
438
  --atomix-light-hover: #f3f4f6;
439
439
  --atomix-dark-hover: #4b5563;
@@ -441,7 +441,7 @@ summary {
441
441
  --atomix-success-hover: #15803d;
442
442
  --atomix-warning-hover: #a16207;
443
443
  --atomix-info-hover: #1d4ed8;
444
- --atomix-primary-gradient: linear-gradient(135deg, #e4d0fa, #d0b2f5, #b88cef);
444
+ --atomix-primary-gradient: linear-gradient(135deg, #fff4cc, #ffe699, #ffd966);
445
445
  --atomix-secondary-gradient: linear-gradient(135deg, #f3f4f6, #e5e7eb, #d1d5db);
446
446
  --atomix-light-gradient: linear-gradient(135deg, #f9fafb, #f3f4f6, #e5e7eb);
447
447
  --atomix-dark-gradient: linear-gradient(135deg, #4b5563, #1f2937, #000000);
@@ -459,11 +459,11 @@ summary {
459
459
  --atomix-body-color: #111827;
460
460
  --atomix-body-bg: #ffffff;
461
461
  --atomix-heading-color: #111827;
462
- --atomix-link-color: #7c3aed;
463
- --atomix-link-color-rgb: 124, 58, 237;
462
+ --atomix-link-color: #ffb800;
463
+ --atomix-link-color-rgb: 255, 184, 0;
464
464
  --atomix-link-decoration: none;
465
- --atomix-link-hover-color: rgb(85.3674418605, 18.2930232558, 200.2069767442);
466
- --atomix-link-hover-color-rgb: 85.3674418605, 18.2930232558, 200.2069767442;
465
+ --atomix-link-hover-color: rgb(178.5, 128.8, 0);
466
+ --atomix-link-hover-color-rgb: 178.5, 128.8, 0;
467
467
  --atomix-highlight-bg: #fef08a;
468
468
  --atomix-border-width: 1px;
469
469
  --atomix-border-style: solid;
@@ -484,7 +484,7 @@ summary {
484
484
  --atomix-box-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.175);
485
485
  --atomix-box-shadow-xl: 0px 16px 64px -8px rgba(45, 54, 67, 0.14);
486
486
  --atomix-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
487
- --atomix-focus-border-color: #9c63e9;
487
+ --atomix-focus-border-color: #ffcc33;
488
488
  --atomix-form-valid-color: #22c55e;
489
489
  --atomix-form-valid-border-color: #22c55e;
490
490
  --atomix-form-invalid-color: #ef4444;
@@ -624,7 +624,7 @@ summary {
624
624
  color-scheme: dark;
625
625
  --atomix-body-color: #ffffff;
626
626
  --atomix-body-bg: #1f2937;
627
- --atomix-primary: #7c3aed;
627
+ --atomix-primary: #ffb800;
628
628
  --atomix-secondary: #4b5563;
629
629
  --atomix-light: #f9fafb;
630
630
  --atomix-dark: #374151;
@@ -632,7 +632,7 @@ summary {
632
632
  --atomix-success: #22c55e;
633
633
  --atomix-warning: #eab308;
634
634
  --atomix-info: #3b82f6;
635
- --atomix-primary-rgb: 124, 58, 237;
635
+ --atomix-primary-rgb: 255, 184, 0;
636
636
  --atomix-secondary-rgb: 75, 85, 99;
637
637
  --atomix-light-rgb: 249, 250, 251;
638
638
  --atomix-dark-rgb: 55, 65, 81;
@@ -645,7 +645,7 @@ summary {
645
645
  --atomix-tertiary-text-emphasis: #d1d5db;
646
646
  --atomix-disabled-text-emphasis: #9ca3af;
647
647
  --atomix-invert-text-emphasis: #f9fafb;
648
- --atomix-brand-text-emphasis: #e4d0fa;
648
+ --atomix-brand-text-emphasis: #fff4cc;
649
649
  --atomix-error-text-emphasis: #fecaca;
650
650
  --atomix-success-text-emphasis: #bbf7d0;
651
651
  --atomix-warning-text-emphasis: #fef08a;
@@ -656,7 +656,7 @@ summary {
656
656
  --atomix-secondary-bg-subtle: #4b5563;
657
657
  --atomix-tertiary-bg-subtle: #6b7280;
658
658
  --atomix-invert-bg-subtle: #ffffff;
659
- --atomix-brand-bg-subtle: #501ba6;
659
+ --atomix-brand-bg-subtle: #cc9400;
660
660
  --atomix-error-bg-subtle: #7f1d1d;
661
661
  --atomix-success-bg-subtle: #166534;
662
662
  --atomix-warning-bg-subtle: #713f12;
@@ -669,10 +669,10 @@ summary {
669
669
  --atomix-error-border-subtle: #ef4444;
670
670
  --atomix-warning-border-subtle: #eab308;
671
671
  --atomix-info-border-subtle: #3b82f6;
672
- --atomix-brand-border-subtle: #7c3aed;
672
+ --atomix-brand-border-subtle: #ffb800;
673
673
  --atomix-light-border-subtle: #f9fafb;
674
674
  --atomix-dark-border-subtle: #374151;
675
- --atomix-primary-hover: #7c3aed;
675
+ --atomix-primary-hover: #ffb800;
676
676
  --atomix-secondary-hover: #6b7280;
677
677
  --atomix-light-hover: #9ca3af;
678
678
  --atomix-dark-hover: #4b5563;
@@ -680,7 +680,7 @@ summary {
680
680
  --atomix-success-hover: #86efac;
681
681
  --atomix-warning-hover: #facc15;
682
682
  --atomix-info-hover: #93c5fd;
683
- --atomix-primary-gradient: linear-gradient(135deg, #2a0e60, #3c1583, #501ba6);
683
+ --atomix-primary-gradient: linear-gradient(135deg, #997000, #b38200, #cc9400);
684
684
  --atomix-secondary-gradient: linear-gradient(135deg, #374151, #6b7280, #d1d5db);
685
685
  --atomix-light-gradient: linear-gradient(135deg, #9ca3af, #6b7280, #9ca3af);
686
686
  --atomix-dark-gradient: linear-gradient(135deg, #000000, #4b5563, #1f2937);
@@ -695,33 +695,33 @@ summary {
695
695
  --atomix-box-shadow-lg: 0px 8px 18px -2px rgba(30, 30, 30, 0.5), 0px 8px 24px -2px rgba(30, 30, 30, 0.5);
696
696
  --atomix-box-shadow-xl: 0px 33px 61px -8px rgba(30, 30, 30, 0.9), 0px 8px 10px 0px rgba(30, 30, 30, 0.9);
697
697
  --atomix-heading-color: #e5e7eb;
698
- --atomix-link-color: #b88cef;
699
- --atomix-link-color-rgb: 184, 140, 239;
700
- --atomix-link-hover-color: rgb(142.5381679389, 72.8435114504, 229.6564885496);
701
- --atomix-link-hover-color-rgb: 142.5381679389, 72.8435114504, 229.6564885496;
698
+ --atomix-link-color: #ffd966;
699
+ --atomix-link-color-rgb: 255, 217, 102;
700
+ --atomix-link-hover-color: rgb(255, 198, 25.5);
701
+ --atomix-link-hover-color-rgb: 255, 198, 25.5;
702
702
  --atomix-code-color: #f87171;
703
703
  --atomix-border-color: #374151;
704
704
  --atomix-border-color-translucent: rgba(255, 255, 255, 0.15);
705
- --atomix-focus-border-color: #b88cef;
705
+ --atomix-focus-border-color: #ffd966;
706
706
  --atomix-form-valid-color: #4ade80;
707
707
  --atomix-form-valid-border-color: #4ade80;
708
708
  --atomix-form-invalid-color: #f87171;
709
709
  --atomix-form-invalid-border-color: #f87171;
710
710
  }
711
711
  ::-moz-selection {
712
- background: #7c3aed;
713
- background: rgba(124, 58, 237, 0.3);
712
+ background: #ffb800;
713
+ background: rgba(255, 184, 0, 0.3);
714
714
  }
715
715
  ::selection {
716
- background: #7c3aed;
717
- background: rgba(124, 58, 237, 0.3);
716
+ background: #ffb800;
717
+ background: rgba(255, 184, 0, 0.3);
718
718
  }
719
719
  ::-moz-selection {
720
- background: #7c3aed;
721
- background: rgba(124, 58, 237, 0.3);
720
+ background: #ffb800;
721
+ background: rgba(255, 184, 0, 0.3);
722
722
  }
723
723
  * {
724
- -webkit-tap-highlight-color: rgba(124, 58, 237, 0.2);
724
+ -webkit-tap-highlight-color: rgba(255, 184, 0, 0.2);
725
725
  }
726
726
  *,
727
727
  *:before,
@@ -2252,17 +2252,17 @@ a, a:hover {
2252
2252
  }
2253
2253
  .c-btn--primary {
2254
2254
  --atomix-btn-color: #ffffff;
2255
- --atomix-btn-bg: #7c3aed;
2256
- --atomix-btn-border-color: #7c3aed;
2255
+ --atomix-btn-bg: #ffb800;
2256
+ --atomix-btn-border-color: #ffb800;
2257
2257
  --atomix-btn-hover-color: #ffffff;
2258
- --atomix-btn-hover-bg: rgb(97.9674418605, 20.9930232558, 229.7569767442);
2259
- --atomix-btn-hover-border-color: rgb(106.0255813953, 30.9697674419, 234.5302325581);
2258
+ --atomix-btn-hover-bg: rgb(216.75, 156.4, 0);
2259
+ --atomix-btn-hover-border-color: rgb(229.5, 165.6, 0);
2260
2260
  --atomix-btn-active-color: #ffffff;
2261
- --atomix-btn-active-bg: rgb(92.2046511628, 19.7581395349, 216.2418604651);
2262
- --atomix-btn-active-border-color: rgb(86.4418604651, 18.523255814, 202.726744186);
2261
+ --atomix-btn-active-bg: rgb(204, 147.2, 0);
2262
+ --atomix-btn-active-border-color: rgb(191.25, 138, 0);
2263
2263
  --atomix-btn-disabled-color: #ffffff;
2264
- --atomix-btn-disabled-bg: #7c3aed;
2265
- --atomix-btn-disabled-border-color: #7c3aed;
2264
+ --atomix-btn-disabled-bg: #ffb800;
2265
+ --atomix-btn-disabled-border-color: #ffb800;
2266
2266
  }
2267
2267
  .c-btn--secondary {
2268
2268
  --atomix-btn-color: var(--atomix-dark-text-emphasis);
@@ -7009,7 +7009,7 @@ a, a:hover {
7009
7009
  --atomix-input-textarea-height: 120px;
7010
7010
  }
7011
7011
  .c-input--primary {
7012
- --atomix-input-border-color: var(--atomix-primary-border-subtle, #7c3aed);
7012
+ --atomix-input-border-color: var(--atomix-primary-border-subtle, #ffb800);
7013
7013
  }
7014
7014
  .c-input--success {
7015
7015
  --atomix-input-border-color: var(--atomix-success-border-subtle, #22c55e);
@@ -7382,7 +7382,7 @@ a, a:hover {
7382
7382
  --atomix-messages-file-text-color: var(--atomix-body-color);
7383
7383
  --atomix-messages-file-icon-size: 2.5rem;
7384
7384
  --atomix-messages-file-icon-margin-right: 0.5rem;
7385
- --atomix-messages-file-icon-bg: #e4d0fa;
7385
+ --atomix-messages-file-icon-bg: #fff4cc;
7386
7386
  --atomix-messages-file-info-font-size: 0.75rem;
7387
7387
  --atomix-messages-file-info-color: var(--atomix-tertiary-text-emphasis);
7388
7388
  --atomix-messages-file-bg: var(--atomix-tertiary-bg-subtle);
@@ -7527,7 +7527,7 @@ a, a:hover {
7527
7527
  border-radius: var(--atomix-messages-file-border-radius) 0.25rem 0.25rem var(--atomix-messages-file-border-radius);
7528
7528
  }
7529
7529
  .c-messages__content--self .c-messages__file [data-atomix-color-mode=dark] {
7530
- --atomix-messages-file-icon-bg: #6425ca;
7530
+ --atomix-messages-file-icon-bg: #e6a600;
7531
7531
  }
7532
7532
  .c-messages__content--self .c-messages__image {
7533
7533
  border-radius: var(--atomix-messages-image-border-radius) 0.25rem 0.25rem var(--atomix-messages-image-border-radius);
@@ -7537,7 +7537,7 @@ a, a:hover {
7537
7537
  background-color: var(--atomix-messages-file-icon-bg);
7538
7538
  }
7539
7539
  .c-messages__content--self .c-messages__file-icon [data-atomix-color-mode=dark] {
7540
- --atomix-messages-file-icon-bg: #6425ca;
7540
+ --atomix-messages-file-icon-bg: #e6a600;
7541
7541
  }
7542
7542
  .c-messages__form {
7543
7543
  display: flex;
@@ -8016,7 +8016,7 @@ a, a:hover {
8016
8016
  --atomix-navbar-brand-font-size: 1.25rem;
8017
8017
  --atomix-navbar-brand-font-weight: 700;
8018
8018
  --atomix-navbar-brand-color: var(--atomix-body-color);
8019
- --atomix-navbar-toggler-size: 30px;
8019
+ --atomix-navbar-toggler-size: 2rem;
8020
8020
  --atomix-navbar-toggler-color: var(--atomix-body-color);
8021
8021
  --atomix-navbar-toggler-bg: transparent;
8022
8022
  --atomix-navbar-toggler-border: 0;
@@ -8041,6 +8041,13 @@ a, a:hover {
8041
8041
  max-width: var(--atomix-navbar-container-max-width);
8042
8042
  padding: 0 var(--atomix-navbar-padding-x);
8043
8043
  margin: 0 auto;
8044
+ gap: var(--atomix-navbar-padding-x);
8045
+ }
8046
+ @media (max-width: 767.98px) {
8047
+ .c-navbar__container {
8048
+ flex-wrap: nowrap;
8049
+ gap: 0.5rem;
8050
+ }
8044
8051
  }
8045
8052
  .c-navbar__brand {
8046
8053
  margin-right: var(--atomix-navbar-brand-margin-end);
@@ -8059,6 +8066,7 @@ a, a:hover {
8059
8066
  color: inherit;
8060
8067
  }
8061
8068
  .c-navbar__toggler {
8069
+ position: relative;
8062
8070
  display: none;
8063
8071
  align-items: center;
8064
8072
  justify-content: center;
@@ -8083,15 +8091,11 @@ a, a:hover {
8083
8091
  }
8084
8092
  .c-navbar__toggler-icon {
8085
8093
  position: relative;
8086
- display: inline-block;
8087
- width: 1.5em;
8088
- height: 1.5em;
8089
- vertical-align: middle;
8090
8094
  }
8091
8095
  .c-navbar__toggler-icon::before, .c-navbar__toggler-icon::after, .c-navbar__toggler-icon {
8092
8096
  position: absolute;
8093
8097
  height: 2px;
8094
- width: 100%;
8098
+ width: var(--atomix-navbar-toggler-size);
8095
8099
  background-color: var(--atomix-navbar-toggler-color);
8096
8100
  border-radius: 1px;
8097
8101
  transition: transform 0.15s ease;
@@ -8184,6 +8188,9 @@ a, a:hover {
8184
8188
  .c-navbar--collapsible .c-navbar__collapse {
8185
8189
  display: flex !important;
8186
8190
  }
8191
+ .c-navbar--collapsible .c-navbar__toggler {
8192
+ display: none !important;
8193
+ }
8187
8194
  }
8188
8195
  .c-navbar--fixed:not(.c-navbar--glass), .c-navbar--fixed-bottom:not(.c-navbar--glass) {
8189
8196
  position: fixed;
@@ -9046,7 +9053,7 @@ a, a:hover {
9046
9053
  display: block;
9047
9054
  }
9048
9055
  .c-rating__star--primary {
9049
- --atomix-rating-star-bg: #7c3aed;
9056
+ --atomix-rating-star-bg: #ffb800;
9050
9057
  }
9051
9058
  .c-rating__star--secondary {
9052
9059
  --atomix-rating-star-bg: #f3f4f6;
@@ -9116,7 +9123,7 @@ a, a:hover {
9116
9123
  flex-direction: column;
9117
9124
  }
9118
9125
  .c-rating--primary {
9119
- --atomix-rating-star-bg: #7c3aed;
9126
+ --atomix-rating-star-bg: #ffb800;
9120
9127
  }
9121
9128
  .c-rating--secondary {
9122
9129
  --atomix-rating-star-bg: #f3f4f6;
@@ -10577,13 +10584,14 @@ a, a:hover {
10577
10584
  --atomix-tooltip-bg: var(--atomix-invert-bg-subtle);
10578
10585
  --atomix-tooltip-font-size: 0.75rem;
10579
10586
  --atomix-tooltip-font-weight: 400;
10580
- --atomix-tooltip-color: var(--atomix-invert-text);
10587
+ --atomix-tooltip-color: var(--atomix-body-bg);
10581
10588
  --atomix-tooltip-border-radius: 0.5rem;
10582
10589
  --atomix-tooltip-border-width: ;
10583
10590
  --atomix-tooltip-border-color: ;
10584
10591
  --atomix-tooltip-box-shadow: ;
10585
10592
  --atomix-tooltip-arrow-size: 0.75rem;
10586
10593
  --atomix-tooltip-offset: 0.75rem;
10594
+ --atomix-z-index-tooltip: 1060;
10587
10595
  position: absolute;
10588
10596
  width: -moz-max-content;
10589
10597
  width: max-content;
@@ -10591,37 +10599,7 @@ a, a:hover {
10591
10599
  height: max-content;
10592
10600
  max-width: var(--atomix-tooltip-max-width);
10593
10601
  pointer-events: none;
10594
- z-index: 1000;
10595
- }
10596
- .c-tooltip--top, .c-tooltip--top-left, .c-tooltip--top-right {
10597
- bottom: calc(100% + var(--atomix-tooltip-offset));
10598
- transform-origin: bottom center;
10599
- }
10600
- .c-tooltip--bottom, .c-tooltip--bottom-left, .c-tooltip--bottom-right {
10601
- top: calc(100% + var(--atomix-tooltip-offset));
10602
- transform-origin: top center;
10603
- }
10604
- .c-tooltip--left {
10605
- right: calc(100% + var(--atomix-tooltip-offset));
10606
- top: 50%;
10607
- transform: translateY(-50%);
10608
- transform-origin: right center;
10609
- }
10610
- .c-tooltip--right {
10611
- left: calc(100% + var(--atomix-tooltip-offset));
10612
- top: 50%;
10613
- transform: translateY(-50%);
10614
- transform-origin: left center;
10615
- }
10616
- .c-tooltip--top, .c-tooltip--bottom {
10617
- left: 50%;
10618
- transform: translateX(-50%);
10619
- }
10620
- .c-tooltip--top-left, .c-tooltip--bottom-left {
10621
- left: 0;
10622
- }
10623
- .c-tooltip--top-right, .c-tooltip--bottom-right {
10624
- right: 0;
10602
+ z-index: var(--atomix-z-index-tooltip);
10625
10603
  }
10626
10604
  .c-tooltip__content {
10627
10605
  position: relative;
@@ -10646,35 +10624,32 @@ a, a:hover {
10646
10624
  position: absolute;
10647
10625
  width: var(--atomix-tooltip-arrow-size);
10648
10626
  height: var(--atomix-tooltip-arrow-size);
10627
+ border-radius: calc((var(--atomix-tooltip-arrow-size) - var(--atomix-tooltip-border-radius)) / 2);
10649
10628
  background-color: var(--atomix-tooltip-bg);
10650
10629
  z-index: 1;
10651
10630
  transform: rotate(45deg);
10652
10631
  }
10653
- .c-tooltip--top .c-tooltip__arrow, .c-tooltip--top-left .c-tooltip__arrow, .c-tooltip--top-right .c-tooltip__arrow {
10654
- bottom: calc(var(--atomix-tooltip-arrow-size) / -2);
10655
- }
10656
- .c-tooltip--bottom .c-tooltip__arrow, .c-tooltip--bottom-left .c-tooltip__arrow, .c-tooltip--bottom-right .c-tooltip__arrow {
10657
- top: calc(var(--atomix-tooltip-arrow-size) / -2);
10632
+ .c-tooltip--left .c-tooltip__arrow, .c-tooltip--right .c-tooltip__arrow {
10633
+ transform: rotate(45deg);
10658
10634
  }
10659
- .c-tooltip--left .c-tooltip__arrow {
10660
- right: calc(var(--atomix-tooltip-arrow-size) / -2);
10661
- top: 50%;
10662
- transform: translateY(-50%) rotate(45deg);
10635
+ .c-tooltip--top .c-tooltip__arrow {
10636
+ transform: rotate(45deg);
10663
10637
  }
10664
- .c-tooltip--right .c-tooltip__arrow {
10665
- left: calc(var(--atomix-tooltip-arrow-size) / -2);
10666
- top: 50%;
10667
- transform: translateY(-50%) rotate(45deg);
10638
+ .c-tooltip--bottom .c-tooltip__arrow {
10639
+ transform: rotate(225deg);
10668
10640
  }
10669
- .c-tooltip--top .c-tooltip__arrow, .c-tooltip--bottom .c-tooltip__arrow {
10670
- left: 50%;
10671
- transform: translateX(-50%) rotate(45deg);
10641
+ .c-tooltip--glass {
10642
+ z-index: auto;
10643
+ z-index: initial;
10672
10644
  }
10673
- .c-tooltip--top-left .c-tooltip__arrow, .c-tooltip--bottom-left .c-tooltip__arrow {
10674
- left: var(--atomix-tooltip-arrow-size);
10645
+ .c-tooltip--glass .c-tooltip__content {
10646
+ background-color: color-mix(in srgb, var(--atomix-tooltip-bg) 40%, transparent);
10675
10647
  }
10676
- .c-tooltip--top-right .c-tooltip__arrow, .c-tooltip--bottom-right .c-tooltip__arrow {
10677
- right: var(--atomix-tooltip-arrow-size);
10648
+ .c-tooltip--glass .c-tooltip__arrow {
10649
+ background-color: color-mix(in srgb, var(--atomix-tooltip-bg) 40%, transparent);
10650
+ clip-path: polygon(0 100%, 100% 100%, 100% 0);
10651
+ -webkit-backdrop-filter: var(--atomix-glass-container-backdrop);
10652
+ backdrop-filter: var(--atomix-glass-container-backdrop);
10678
10653
  }
10679
10654
  .c-upload {
10680
10655
  --atomix-upload-width: 31.25rem;
@@ -12322,7 +12297,7 @@ body.is-open-photoviewer {
12322
12297
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
12323
12298
  }
12324
12299
  .c-image-gallery__item:hover .c-image-gallery__card {
12325
- border-color: #9c63e9;
12300
+ border-color: #ffcc33;
12326
12301
  }
12327
12302
  .c-image-gallery__card {
12328
12303
  height: 100%;
@@ -12385,8 +12360,8 @@ body.is-open-photoviewer {
12385
12360
  text-decoration-color: RGBA(var(--atomix-primary-rgb), var(--atomix-u-link-underline-opacity, 1)) !important;
12386
12361
  }
12387
12362
  .u-link-primary:hover, .u-link-primary:focus {
12388
- color: RGBA(143.65, 87.55, 239.7, var(--atomix-u-link-opacity, 1)) !important;
12389
- text-decoration-color: RGBA(143.65, 87.55, 239.7, var(--atomix-u-link-underline-opacity, 1)) !important;
12363
+ color: RGBA(255, 194.65, 38.25, var(--atomix-u-link-opacity, 1)) !important;
12364
+ text-decoration-color: RGBA(255, 194.65, 38.25, var(--atomix-u-link-underline-opacity, 1)) !important;
12390
12365
  }
12391
12366
  .u-link-secondary {
12392
12367
  color: RGBA(var(--atomix-secondary-rgb), var(--atomix-u-link-opacity, 1)) !important;
@@ -12456,7 +12431,7 @@ body.is-open-photoviewer {
12456
12431
  white-space: nowrap;
12457
12432
  }
12458
12433
  .u-bg-primary {
12459
- background-color: #7c3aed;
12434
+ background-color: #ffb800;
12460
12435
  }
12461
12436
  .u-bg-secondary {
12462
12437
  background-color: #f3f4f6;
@@ -12558,7 +12533,7 @@ body.is-open-photoviewer {
12558
12533
  border-inline-start: 0;
12559
12534
  }
12560
12535
  .u-border-primary {
12561
- border-color: #7c3aed;
12536
+ border-color: #ffb800;
12562
12537
  }
12563
12538
  .u-border-secondary {
12564
12539
  border-color: #f3f4f6;
@@ -12978,7 +12953,7 @@ body.is-open-photoviewer {
12978
12953
  order: 6;
12979
12954
  }
12980
12955
  .u-bg-gradient-primary {
12981
- background-image: linear-gradient(135deg, #e4d0fa, #d0b2f5, #b88cef);
12956
+ background-image: linear-gradient(135deg, #fff4cc, #ffe699, #ffd966);
12982
12957
  }
12983
12958
  .u-bg-gradient-secondary {
12984
12959
  background-image: linear-gradient(135deg, #f3f4f6, #e5e7eb, #d1d5db);
@@ -13026,7 +13001,7 @@ body.is-open-photoviewer {
13026
13001
  text-underline-offset: 0.375em;
13027
13002
  }
13028
13003
  .u-link-underline-primary {
13029
- text-decoration-color: #7c3aed;
13004
+ text-decoration-color: #ffb800;
13030
13005
  }
13031
13006
  .u-link-underline-secondary {
13032
13007
  text-decoration-color: #f3f4f6;
@@ -15342,7 +15317,7 @@ body.is-open-photoviewer {
15342
15317
  word-break: break-word !important;
15343
15318
  }
15344
15319
  .u-text-primary {
15345
- color: #7c3aed;
15320
+ color: #ffb800;
15346
15321
  }
15347
15322
  .u-text-secondary {
15348
15323
  color: #f3f4f6;