proje-react-panel 1.6.0-test-1 → 1.7.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.
Files changed (75) hide show
  1. package/COLOR_SYSTEM_GUIDE.md +296 -0
  2. package/DASHBOARD_GUIDE.md +531 -0
  3. package/README.md +18 -1
  4. package/dist/components/DashboardContainer.d.ts +7 -0
  5. package/dist/components/DashboardGrid.d.ts +9 -0
  6. package/dist/components/DashboardItem.d.ts +10 -0
  7. package/dist/components/ThemeSwitcher.d.ts +7 -0
  8. package/dist/components/dashboard/Dashboard.d.ts +7 -0
  9. package/dist/components/dashboard/DashboardGrid.d.ts +7 -0
  10. package/dist/components/dashboard/DashboardItem.d.ts +6 -0
  11. package/dist/components/dashboard/index.d.ts +3 -0
  12. package/dist/index.cjs.js +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.esm.js +1 -1
  15. package/dist/store/themeStore.d.ts +23 -0
  16. package/package.json +1 -1
  17. package/src/components/dashboard/Dashboard.tsx +11 -0
  18. package/src/components/dashboard/DashboardGrid.tsx +14 -0
  19. package/src/components/dashboard/DashboardItem.tsx +9 -0
  20. package/src/components/dashboard/index.ts +3 -0
  21. package/src/index.ts +1 -0
  22. package/src/styles/base/_variables.scss +45 -0
  23. package/src/styles/components/button.scss +3 -3
  24. package/src/styles/components/checkbox.scss +6 -6
  25. package/src/styles/components/form-header.scss +21 -19
  26. package/src/styles/components/uploader.scss +15 -37
  27. package/src/styles/counter.scss +25 -33
  28. package/src/styles/dashboard.scss +9 -0
  29. package/src/styles/details.scss +6 -15
  30. package/src/styles/error-boundary.scss +75 -74
  31. package/src/styles/filter-popup.scss +29 -27
  32. package/src/styles/form.scss +16 -15
  33. package/src/styles/index.scss +8 -4
  34. package/src/styles/layout.scss +9 -8
  35. package/src/styles/list.scss +29 -27
  36. package/src/styles/loading-screen.scss +4 -4
  37. package/src/styles/login.scss +3 -3
  38. package/src/styles/pagination.scss +13 -13
  39. package/src/styles/sidebar.scss +24 -22
  40. package/src/styles/utils/scrollbar.scss +4 -3
  41. package/dist/components/components/Checkbox.d.ts +0 -7
  42. package/dist/components/components/Counter.d.ts +0 -9
  43. package/dist/components/components/ErrorBoundary.d.ts +0 -16
  44. package/dist/components/components/ErrorComponent.d.ts +0 -4
  45. package/dist/components/components/FormField.d.ts +0 -17
  46. package/dist/components/components/ImageUploader.d.ts +0 -15
  47. package/dist/components/components/InnerForm.d.ts +0 -17
  48. package/dist/components/components/Label.d.ts +0 -9
  49. package/dist/components/components/LoadingScreen.d.ts +0 -2
  50. package/dist/components/components/Uploader.d.ts +0 -8
  51. package/dist/components/components/index.d.ts +0 -8
  52. package/dist/components/components/list/Datagrid.d.ts +0 -9
  53. package/dist/components/components/list/EmptyList.d.ts +0 -2
  54. package/dist/components/components/list/FilterPopup.d.ts +0 -11
  55. package/dist/components/components/list/ListPage.d.ts +0 -20
  56. package/dist/components/components/list/Pagination.d.ts +0 -11
  57. package/dist/components/components/list/index.d.ts +0 -0
  58. package/dist/components/pages/ControllerDetails.d.ts +0 -5
  59. package/dist/components/pages/FormPage.d.ts +0 -18
  60. package/dist/components/pages/ListPage.d.ts +0 -18
  61. package/dist/components/pages/Login.d.ts +0 -13
  62. package/dist/decorators/Crud.d.ts +0 -6
  63. package/dist/decorators/form/FormOptions.d.ts +0 -7
  64. package/dist/decorators/form/getFormFields.d.ts +0 -3
  65. package/dist/decorators/list/GetCellFields.d.ts +0 -2
  66. package/dist/decorators/list/ImageCell.d.ts +0 -6
  67. package/dist/decorators/list/ListData.d.ts +0 -6
  68. package/dist/decorators/list/getListFields.d.ts +0 -2
  69. package/dist/initPanel.d.ts +0 -2
  70. package/dist/types/Screen.d.ts +0 -4
  71. package/dist/types/ScreenCreatorData.d.ts +0 -13
  72. package/dist/types/getDetailsData.d.ts +0 -1
  73. package/dist/types/initPanelOptions.d.ts +0 -2
  74. package/dist/utils/createScreens.d.ts +0 -1
  75. package/dist/utils/getFields.d.ts +0 -3
@@ -0,0 +1,23 @@
1
+ export type ThemeMode = 'light' | 'dark' | 'automatic';
2
+ interface ThemeState {
3
+ theme: ThemeMode;
4
+ resolvedTheme: 'light' | 'dark';
5
+ setTheme: (theme: ThemeMode) => void;
6
+ initializeTheme: () => void;
7
+ }
8
+ export declare const useThemeStore: import("zustand/traditional").UseBoundStoreWithEqualityFn<Omit<import("zustand/vanilla").StoreApi<ThemeState>, "persist"> & {
9
+ persist: {
10
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ThemeState, unknown>>) => void;
11
+ clearStorage: () => void;
12
+ rehydrate: () => Promise<void> | void;
13
+ hasHydrated: () => boolean;
14
+ onHydrate: (fn: (state: ThemeState) => void) => () => void;
15
+ onFinishHydration: (fn: (state: ThemeState) => void) => () => void;
16
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<ThemeState, unknown>>;
17
+ };
18
+ }>;
19
+ export declare const getTheme: () => ThemeMode;
20
+ export declare const getResolvedTheme: () => "light" | "dark";
21
+ export declare const setTheme: (theme: ThemeMode) => void;
22
+ export declare const initializeTheme: () => void;
23
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proje-react-panel",
3
- "version": "1.6.0-test-1",
3
+ "version": "1.7.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "SEFA DEMİR",
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { DashboardGrid } from './DashboardGrid';
3
+
4
+ interface DashboardProps {
5
+ children: React.ReactNode;
6
+ columns?: number;
7
+ }
8
+
9
+ export function Dashboard({ children, columns }: DashboardProps) {
10
+ return <DashboardGrid columns={columns}>{children}</DashboardGrid>;
11
+ }
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+
3
+ interface DashboardGridProps {
4
+ children: React.ReactNode;
5
+ columns?: number;
6
+ }
7
+
8
+ export function DashboardGrid({ children, columns = 3 }: DashboardGridProps) {
9
+ return (
10
+ <div className="dashboard-grid" style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` }}>
11
+ {children}
12
+ </div>
13
+ );
14
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+
3
+ interface DashboardItemProps {
4
+ children: React.ReactNode;
5
+ }
6
+
7
+ export function DashboardItem({ children }: DashboardItemProps) {
8
+ return <div className="dashboard-item">{children}</div>;
9
+ }
@@ -0,0 +1,3 @@
1
+ export { Dashboard } from './Dashboard';
2
+ export { DashboardGrid } from './DashboardGrid';
3
+ export { DashboardItem } from './DashboardItem';
package/src/index.ts CHANGED
@@ -29,6 +29,7 @@ export { Panel } from './components/Panel';
29
29
 
30
30
  //DASHBOARD
31
31
  export { Counter } from './components/Counter';
32
+ export { Dashboard, DashboardGrid, DashboardItem } from './components/dashboard';
32
33
 
33
34
  //LAYOUT
34
35
  export { Layout } from './components/layout';
@@ -0,0 +1,45 @@
1
+ // SCSS Color Variables - Dark Theme
2
+ // ⚠️ IMPORTANT: If you change any variables here, you MUST update COLOR_SYSTEM_GUIDE.md
3
+ $dark-void: #1a1a1a; // Darkest background
4
+ $dark-slate: #2b2b2b; // Dark background
5
+ $dark-mist: #333333; // Medium dark background
6
+ $dark-silver: #444444; // Lighter dark background
7
+
8
+ $dark-pearl: #ffffff; // White
9
+ $dark-ash: #e0e0e0; // Light gray
10
+ $dark-dust: #999999; // Medium gray
11
+
12
+ $dark-ocean: #007bff; // Primary blue
13
+ $dark-sky: #66b2ff; // Light blue (focus)
14
+ $dark-emerald: #4caf50; // Success green
15
+ $dark-ruby: #ff4d4f; // Error red
16
+
17
+ .layout {
18
+ // Backgrounds
19
+ --prp-bg-primary: #{$dark-void};
20
+ --prp-bg-secondary: #{$dark-slate};
21
+ --prp-bg-tertiary: #{$dark-mist};
22
+ --prp-bg-white: #{$dark-pearl};
23
+ --prp-bg-button-primary: #{$dark-ocean};
24
+ --prp-bg-button-success: #{$dark-emerald};
25
+
26
+ // Text
27
+ --prp-text-primary: #{$dark-pearl};
28
+ --prp-text-secondary: #{$dark-ash};
29
+ --prp-text-muted: #{$dark-dust};
30
+
31
+ // Borders
32
+ --prp-border-primary: #{$dark-silver};
33
+ --prp-border-light: #{$dark-ash};
34
+
35
+ // Colors
36
+ --prp-color-focus: #{$dark-sky};
37
+ --prp-color-success: #{$dark-emerald};
38
+ --prp-color-error: #{$dark-ruby};
39
+
40
+ // Shadows
41
+ --prp-shadow-light: rgba(0, 0, 0, 0.05);
42
+ --prp-shadow-medium: rgba(0, 0, 0, 0.2);
43
+ --prp-shadow-dark: rgba(0, 0, 0, 0.3);
44
+ --prp-shadow-focus: rgba(102, 178, 255, 0.2);
45
+ }
@@ -1,9 +1,9 @@
1
1
  .panel-button {
2
2
  padding: 0.5rem 1rem;
3
- border: 1px solid #444444;
3
+ border: 1px solid var(--prp-border-primary);
4
4
  border-radius: 4px;
5
- background-color: cornflowerblue;
6
- color: #ffffff;
5
+ background-color: var(--prp-bg-button-primary);
6
+ color: var(--prp-text-primary);
7
7
  font-size: 0.875rem;
8
8
  font-weight: 500;
9
9
  cursor: pointer;
@@ -13,10 +13,10 @@ input.apple-switch {
13
13
  outline: none;
14
14
  width: 50px;
15
15
  height: 30px;
16
- background-color: #fff;
16
+ background-color: var(--prp-bg-white);
17
17
  border: 1px solid #d9dadc;
18
18
  border-radius: 50px;
19
- box-shadow: inset -20px 0 0 0 #fff;
19
+ box-shadow: inset -20px 0 0 0 var(--prp-bg-white);
20
20
  }
21
21
 
22
22
  input.apple-switch:after {
@@ -28,15 +28,15 @@ input.apple-switch:after {
28
28
  width: 26px;
29
29
  height: 26px;
30
30
  border-radius: 50%;
31
- box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.2);
31
+ box-shadow: 2px 4px 6px var(--prp-shadow-medium);
32
32
  }
33
33
 
34
34
  input.apple-switch:checked {
35
- box-shadow: inset 20px 0 0 0 #4ed164;
36
- border-color: #4ed164;
35
+ box-shadow: inset 20px 0 0 0 var(--prp-color-success);
36
+ border-color: var(--prp-color-success);
37
37
  }
38
38
 
39
39
  input.apple-switch:checked:after {
40
40
  left: 20px;
41
- box-shadow: -2px 4px 3px rgba(0, 0, 0, 0.05);
41
+ box-shadow: -2px 4px 3px var(--prp-shadow-light);
42
42
  }
@@ -4,14 +4,14 @@
4
4
  align-items: center;
5
5
  padding: 1rem;
6
6
  margin-bottom: 1.5rem;
7
- background-color: #333333;
7
+ background-color: var(--prp-bg-tertiary);
8
8
  border-radius: 8px 0 0 8px;
9
9
 
10
10
  .form-title {
11
11
  margin: 0;
12
12
  font-size: 1.5rem;
13
13
  font-weight: 600;
14
- color: #cccccc;
14
+ color: var(--prp-text-secondary);
15
15
  }
16
16
 
17
17
  .form-header-inner {
@@ -23,50 +23,52 @@
23
23
  .export-button,
24
24
  .import-button {
25
25
  padding: 0.5rem 1rem;
26
- border: 1px solid #444444;
26
+ border: 1px solid var(--prp-border-primary);
27
27
  border-radius: 4px;
28
- background-color: #222222;
29
- color: #cccccc;
28
+ background-color: var(--prp-bg-secondary);
29
+ color: var(--prp-text-secondary);
30
30
  font-size: 0.875rem;
31
31
  cursor: pointer;
32
32
  transition: all 0.2s ease;
33
33
 
34
34
  &:hover {
35
- background-color: #444444;
36
- border-color: #555555;
35
+ background-color: var(--prp-bg-tertiary);
36
+ border-color: var(--prp-border-primary);
37
37
  }
38
38
  }
39
39
  }
40
40
 
41
41
  &.dark-theme {
42
- background-color: black;
42
+ background-color: var(--prp-bg-primary);
43
43
  box-shadow: none;
44
44
 
45
45
  .form-title {
46
- color: white;
46
+ color: var(--prp-text-primary);
47
47
  }
48
48
 
49
49
  .form-actions {
50
50
  .export-button {
51
- background-color: black;
52
- border-color: black;
53
- color: white;
51
+ background-color: var(--prp-bg-primary);
52
+ border-color: var(--prp-bg-primary);
53
+ color: var(--prp-text-primary);
54
54
 
55
55
  &:hover {
56
- background-color: black;
57
- border-color: black;
56
+ background-color: var(--prp-bg-primary);
57
+ border-color: var(--prp-bg-primary);
58
+ opacity: 0.9;
58
59
  }
59
60
  }
60
61
 
61
62
  .import-button {
62
63
  .import-label {
63
- background-color: black;
64
- border-color: black;
65
- color: white;
64
+ background-color: var(--prp-bg-primary);
65
+ border-color: var(--prp-bg-primary);
66
+ color: var(--prp-text-primary);
66
67
 
67
68
  &:hover {
68
- background-color: black;
69
- border-color: black;
69
+ background-color: var(--prp-bg-primary);
70
+ border-color: var(--prp-bg-primary);
71
+ opacity: 0.9;
70
72
  }
71
73
  }
72
74
  }
@@ -1,19 +1,20 @@
1
1
  .uploader {
2
2
  &-container {
3
3
  padding: 1.5rem;
4
- border: 2px dashed var(--border-color, #e0e0e0);
4
+ border: 2px dashed var(--prp-border-light);
5
5
  border-radius: 8px;
6
- background-color: var(--bg-color, #fafafa);
6
+ background-color: var(--prp-bg-white);
7
7
  transition: all 0.3s ease;
8
8
 
9
9
  &:hover {
10
- border-color: var(--primary-color, #2196f3);
11
- background-color: var(--bg-hover-color, #f5f5f5);
10
+ border-color: var(--prp-bg-button-primary);
11
+ background-color: var(--prp-bg-tertiary);
12
+ opacity: 0.9;
12
13
  }
13
14
  }
14
15
 
15
16
  &-button {
16
- background-color: var(--primary-color, #2196f3);
17
+ background-color: var(--prp-bg-button-primary);
17
18
  color: var(--button-text-color, white);
18
19
  padding: 0.75rem 1.5rem;
19
20
  border: none;
@@ -23,11 +24,13 @@
23
24
  transition: background-color 0.3s ease;
24
25
 
25
26
  &:hover {
26
- background-color: var(--primary-hover-color, #1976d2);
27
+ background-color: var(--prp-bg-button-primary);
28
+ opacity: 0.9;
27
29
  }
28
30
 
29
31
  &:active {
30
- background-color: var(--primary-active-color, #1565c0);
32
+ background-color: var(--prp-bg-button-primary);
33
+ opacity: 0.8;
31
34
  }
32
35
  }
33
36
 
@@ -38,49 +41,24 @@
38
41
  }
39
42
 
40
43
  &-file {
41
- background-color: var(--file-bg-color, white);
44
+ background-color: var(--prp-bg-secondary);
42
45
  padding: 1rem;
43
46
  border-radius: 6px;
44
- box-shadow: 0 2px 4px var(--shadow-color, rgba(0, 0, 0, 0.05));
47
+ box-shadow: 0 2px 4px var(--prp-shadow-light);
45
48
  display: grid;
46
49
  gap: 0.5rem;
47
50
 
48
51
  p {
49
52
  margin: 0;
50
- color: var(--text-color, #424242);
53
+ color: var(--prp-text-muted);
51
54
  font-size: 0.875rem;
52
55
 
53
56
  &:first-child {
54
- color: var(--primary-color, #1976d2);
57
+ color: var(--prp-bg-button-primary);
55
58
  font-weight: 500;
56
59
  }
57
60
  }
58
61
  }
59
62
  }
60
63
 
61
- :root {
62
- --border-color: #424242;
63
- --bg-color: #1e1e1e;
64
- --bg-hover-color: #2d2d2d;
65
- --primary-color: #64b5f6;
66
- --primary-hover-color: #42a5f5;
67
- --primary-active-color: #2196f3;
68
- --button-text-color: #ffffff;
69
- --file-bg-color: #2d2d2d;
70
- --shadow-color: rgba(0, 0, 0, 0.2);
71
- --text-color: #e0e0e0;
72
- }
73
-
74
- // Dark theme
75
- [data-theme='dark'] {
76
- --border-color: #424242;
77
- --bg-color: #1e1e1e;
78
- --bg-hover-color: #2d2d2d;
79
- --primary-color: #64b5f6;
80
- --primary-hover-color: #42a5f5;
81
- --primary-active-color: #2196f3;
82
- --button-text-color: #ffffff;
83
- --file-bg-color: #2d2d2d;
84
- --shadow-color: rgba(0, 0, 0, 0.2);
85
- --text-color: #e0e0e0;
86
- }
64
+ // Note: Background colors are now managed in base/_variables.scss
@@ -1,42 +1,34 @@
1
- // Variables
2
- $primary-color: #007bff;
3
- $text-color: #ffffff;
4
- $bg-color: #1a1a1a;
5
- $shadow-color: rgba(0, 0, 0, 0.3);
6
-
7
1
  // Mixins
8
2
  @mixin flex-center {
9
- display: flex;
10
- align-items: center;
3
+ display: flex;
4
+ align-items: center;
11
5
  }
12
6
 
13
7
  .counter {
14
- &-container {
15
- @include flex-center;
16
- flex-direction: column;
17
- padding: 20px;
18
- border-radius: 8px;
19
- box-shadow: 0 2px 4px $shadow-color;
20
- background-color: $bg-color;
21
- max-width: 300px;
22
- margin: 20px auto;
23
- }
8
+ &-container {
9
+ @include flex-center;
10
+ flex-direction: column;
11
+ padding: 20px;
12
+ border-radius: 8px;
13
+ max-width: 300px;
14
+ margin: 20px auto;
15
+ }
24
16
 
25
- &-image {
26
- margin-bottom: 15px;
27
- }
17
+ &-image {
18
+ margin-bottom: 15px;
19
+ }
28
20
 
29
- &-text {
30
- font-size: 18px;
31
- margin-bottom: 15px;
32
- color: $text-color;
33
- }
21
+ &-text {
22
+ font-size: 18px;
23
+ margin-bottom: 15px;
24
+ color: var(--prp-text-primary);
25
+ }
34
26
 
35
- &-value {
36
- font-size: 24px;
37
- font-weight: bold;
38
- min-width: 40px;
39
- text-align: center;
40
- color: $text-color;
41
- }
27
+ &-value {
28
+ font-size: 24px;
29
+ font-weight: bold;
30
+ min-width: 40px;
31
+ text-align: center;
32
+ color: var(--prp-text-primary);
33
+ }
42
34
  }
@@ -0,0 +1,9 @@
1
+ .dashboard-grid,
2
+ .dashboard {
3
+ display: grid;
4
+ gap: 1rem;
5
+ }
6
+
7
+ .dashboard-item {
8
+ width: 100%;
9
+ }
@@ -1,12 +1,3 @@
1
- :root {
2
- --background-color: #1a1a1a;
3
- --text-color: #e0e0e0;
4
- --label-color: #a0a0a0;
5
- --empty-value-color: #666;
6
- --error-color: #ff6b6b;
7
- --shadow-color: rgba(0, 0, 0, 0.3);
8
- }
9
-
10
1
  .details-page {
11
2
  padding: 2rem;
12
3
  max-width: 1200px;
@@ -17,11 +8,11 @@
17
8
  }
18
9
 
19
10
  .details-item {
20
- background: var(--background-color);
11
+ background: var(--prp-bg-primary);
21
12
  border-radius: 8px;
22
13
  padding: 1.5rem;
23
14
  margin-bottom: 1rem;
24
- box-shadow: 0 2px 4px var(--shadow-color);
15
+ box-shadow: 0 2px 4px var(--prp-shadow-dark);
25
16
  transition: transform 0.2s ease;
26
17
 
27
18
  &:hover {
@@ -30,7 +21,7 @@
30
21
 
31
22
  .item-label {
32
23
  font-size: 0.875rem;
33
- color: var(--label-color);
24
+ color: var(--prp-text-secondary);
34
25
  text-transform: uppercase;
35
26
  letter-spacing: 0.5px;
36
27
  margin-bottom: 0.5rem;
@@ -38,14 +29,14 @@
38
29
 
39
30
  .item-value {
40
31
  font-size: 1rem;
41
- color: var(--text-color);
32
+ color: var(--prp-text-muted);
42
33
  line-height: 1.5;
43
34
  word-break: break-word;
44
35
 
45
36
  &:empty {
46
37
  &::after {
47
38
  content: '—';
48
- color: var(--empty-value-color);
39
+ color: var(--prp-text-muted);
49
40
  }
50
41
  }
51
42
  }
@@ -62,5 +53,5 @@
62
53
  .error-container {
63
54
  padding: 2rem;
64
55
  text-align: center;
65
- color: var(--error-color);
56
+ color: var(--prp-color-error);
66
57
  }
@@ -1,89 +1,90 @@
1
1
  .error-boundary {
2
- display: flex;
3
- align-items: center;
4
- justify-content: center;
5
- min-height: 100vh;
6
- padding: 2rem;
7
- background: linear-gradient(135deg, #1a1d21 0%, #121416 100%);
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ min-height: 100vh;
6
+ padding: 2rem;
7
+ background: linear-gradient(135deg, var(--prp-bg-primary) 0%, var(--prp-bg-secondary) 100%);
8
8
 
9
- &__content {
10
- max-width: 600px;
11
- padding: 3rem;
12
- text-align: center;
13
- background: #2c3036;
14
- border-radius: 1rem;
15
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
16
- }
9
+ &__content {
10
+ max-width: 600px;
11
+ padding: 3rem;
12
+ text-align: center;
13
+ background: var(--prp-bg-tertiary);
14
+ border-radius: 1rem;
15
+ box-shadow: 0 10px 30px var(--prp-shadow-dark);
16
+ }
17
17
 
18
- &__icon {
19
- width: 80px;
20
- height: 80px;
21
- margin: 0 auto 2rem;
22
- color: #ff6b6b;
18
+ &__icon {
19
+ width: 80px;
20
+ height: 80px;
21
+ margin: 0 auto 2rem;
22
+ color: var(--prp-color-error);
23
23
 
24
- svg {
25
- width: 100%;
26
- height: 100%;
27
- stroke-width: 1.5;
28
- }
24
+ svg {
25
+ width: 100%;
26
+ height: 100%;
27
+ stroke-width: 1.5;
29
28
  }
29
+ }
30
30
 
31
- h1 {
32
- margin: 0 0 1rem;
33
- font-size: 2rem;
34
- color: #e9ecef;
35
- font-weight: 600;
36
- }
31
+ h1 {
32
+ margin: 0 0 1rem;
33
+ font-size: 2rem;
34
+ color: var(--prp-text-muted);
35
+ font-weight: 600;
36
+ }
37
37
 
38
- &__message {
39
- margin: 0 0 2rem;
40
- font-size: 1.1rem;
41
- color: #adb5bd;
42
- line-height: 1.6;
43
- }
38
+ &__message {
39
+ margin: 0 0 2rem;
40
+ font-size: 1.1rem;
41
+ color: var(--prp-text-secondary);
42
+ line-height: 1.6;
43
+ }
44
44
 
45
- &__button {
46
- padding: 0.8rem 2rem;
47
- font-size: 1rem;
48
- color: white;
49
- background: #4dabf7;
50
- border: none;
51
- border-radius: 0.5rem;
52
- cursor: pointer;
53
- transition: background 0.3s ease;
45
+ &__button {
46
+ padding: 0.8rem 2rem;
47
+ font-size: 1rem;
48
+ color: var(--prp-text-primary);
49
+ background: var(--prp-bg-button-primary);
50
+ border: none;
51
+ border-radius: 0.5rem;
52
+ cursor: pointer;
53
+ transition: background 0.3s ease;
54
54
 
55
- &:hover {
56
- background: #339af0;
57
- }
55
+ &:hover {
56
+ background: var(--prp-bg-button-primary);
57
+ opacity: 0.9;
58
58
  }
59
+ }
59
60
 
60
- &__details {
61
- margin-top: 2rem;
62
- padding: 1rem;
63
- text-align: left;
64
- background: #212529;
65
- border-radius: 0.5rem;
61
+ &__details {
62
+ margin-top: 2rem;
63
+ padding: 1rem;
64
+ text-align: left;
65
+ background: var(--prp-bg-secondary);
66
+ border-radius: 0.5rem;
66
67
 
67
- summary {
68
- margin-bottom: 1rem;
69
- color: #ced4da;
70
- cursor: pointer;
71
- font-weight: 500;
72
- }
68
+ summary {
69
+ margin-bottom: 1rem;
70
+ color: var(--prp-text-secondary);
71
+ cursor: pointer;
72
+ font-weight: 500;
73
+ }
73
74
 
74
- pre {
75
- margin: 0;
76
- padding: 1rem;
77
- background: #1a1d21;
78
- color: #e9ecef;
79
- border-radius: 0.3rem;
80
- overflow-x: auto;
81
- font-size: 0.9rem;
82
- line-height: 1.5;
75
+ pre {
76
+ margin: 0;
77
+ padding: 1rem;
78
+ background: var(--prp-bg-primary);
79
+ color: var(--prp-text-muted);
80
+ border-radius: 0.3rem;
81
+ overflow-x: auto;
82
+ font-size: 0.9rem;
83
+ line-height: 1.5;
83
84
 
84
- & + pre {
85
- margin-top: 1rem;
86
- }
87
- }
85
+ & + pre {
86
+ margin-top: 1rem;
87
+ }
88
88
  }
89
- }
89
+ }
90
+ }