@keenmate/pure-admin-core 2.3.1 → 2.3.3

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 (70) hide show
  1. package/README.md +30 -9
  2. package/dist/css/main.css +205 -190
  3. package/package.json +1 -1
  4. package/snippets/buttons.html +375 -365
  5. package/snippets/command-palette.html +15 -13
  6. package/src/scss/_base-css-variables.scss +10 -0
  7. package/src/scss/_core.scss +121 -121
  8. package/src/scss/core-components/_alerts.scss +227 -227
  9. package/src/scss/core-components/_badges.scss +16 -16
  10. package/src/scss/core-components/_base.scss +125 -125
  11. package/src/scss/core-components/_buttons.scss +31 -16
  12. package/src/scss/core-components/_callouts.scss +152 -152
  13. package/src/scss/core-components/_cards.scss +488 -488
  14. package/src/scss/core-components/_checkbox-lists.scss +289 -289
  15. package/src/scss/core-components/_code.scss +141 -141
  16. package/src/scss/core-components/_command-palette.scss +518 -509
  17. package/src/scss/core-components/_comparison.scss +172 -172
  18. package/src/scss/core-components/_data-display.scss +9 -9
  19. package/src/scss/core-components/_data-viz.scss +9 -9
  20. package/src/scss/core-components/_detail-panel.scss +1 -1
  21. package/src/scss/core-components/_file-selector.scss +780 -780
  22. package/src/scss/core-components/_filter-card.scss +58 -58
  23. package/src/scss/core-components/_forms.scss +16 -16
  24. package/src/scss/core-components/_grid.scss +293 -293
  25. package/src/scss/core-components/_layout.scss +15 -15
  26. package/src/scss/core-components/_lists.scss +211 -211
  27. package/src/scss/core-components/_loaders.scss +277 -277
  28. package/src/scss/core-components/_logic-tree.scss +280 -280
  29. package/src/scss/core-components/_modals.scss +203 -203
  30. package/src/scss/core-components/_notifications.scss +320 -320
  31. package/src/scss/core-components/_pagers.scss +141 -141
  32. package/src/scss/core-components/_popconfirm.scss +170 -170
  33. package/src/scss/core-components/_profile.scss +405 -405
  34. package/src/scss/core-components/_scrollbars.scss +40 -40
  35. package/src/scss/core-components/_settings-panel.scss +141 -141
  36. package/src/scss/core-components/_statistics.scss +200 -201
  37. package/src/scss/core-components/_tables.scss +900 -900
  38. package/src/scss/core-components/_tabs.scss +504 -504
  39. package/src/scss/core-components/_timeline.scss +589 -589
  40. package/src/scss/core-components/_toasts.scss +425 -425
  41. package/src/scss/core-components/_tooltips.scss +605 -605
  42. package/src/scss/core-components/_utilities.scss +1 -1
  43. package/src/scss/core-components/_web-components-theme.scss +21 -21
  44. package/src/scss/core-components/badges/_badge-base.scss +121 -121
  45. package/src/scss/core-components/badges/_badge-group.scss +25 -25
  46. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
  47. package/src/scss/core-components/badges/_composite-badge.scss +70 -70
  48. package/src/scss/core-components/badges/_index.scss +10 -10
  49. package/src/scss/core-components/badges/_labels.scss +155 -155
  50. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
  51. package/src/scss/core-components/forms/_form-inputs.scss +3 -3
  52. package/src/scss/core-components/forms/_form-layout.scss +66 -66
  53. package/src/scss/core-components/forms/_form-states.scss +115 -115
  54. package/src/scss/core-components/forms/_index.scss +12 -12
  55. package/src/scss/core-components/forms/_input-groups.scss +154 -154
  56. package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
  57. package/src/scss/core-components/forms/_query-editor.scss +313 -313
  58. package/src/scss/core-components/layout/_index.scss +11 -11
  59. package/src/scss/core-components/layout/_layout-container.scss +168 -168
  60. package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
  61. package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
  62. package/src/scss/core-components/layout/_navbar.scss +83 -83
  63. package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
  64. package/src/scss/core-components/layout/_sidebar.scss +234 -234
  65. package/src/scss/main.scss +7 -7
  66. package/src/scss/utilities.scss +740 -740
  67. package/src/scss/variables/_base.scss +228 -228
  68. package/src/scss/variables/_components.scss +748 -748
  69. package/src/scss/variables/_layout.scss +65 -65
  70. package/src/scss/variables/_typography.scss +37 -37
@@ -1,168 +1,168 @@
1
- /* ========================================
2
- Layout Container
3
- Main layout wrapper, content areas, sticky/scroll modes
4
- ======================================== */
5
- @use '../../variables' as *;
6
-
7
- // Layout wrapper - applied to body for mode-specific classes
8
- body.pa-layout--sticky {
9
- height: 100vh;
10
- overflow: hidden;
11
- }
12
-
13
- // Layout Container - centered, starts below navbar
14
- .pa-layout {
15
- max-width: 100%;
16
- margin: $header-height auto 0;
17
- background-color: var(--pa-main-bg);
18
- overflow: visible; // Allow tooltips to escape
19
- display: flex;
20
- flex-direction: column;
21
- }
22
-
23
- // Constrained widths - controlled by body class
24
- body.pa-container-sm .pa-layout {
25
- max-width: $layout-container-sm;
26
- box-shadow: $shadow-2xl;
27
- border-left: $border-width-base solid var(--pa-border-color);
28
- border-right: $border-width-base solid var(--pa-border-color);
29
- }
30
-
31
- body.pa-container-md .pa-layout {
32
- max-width: $layout-container-md;
33
- box-shadow: $shadow-2xl;
34
- border-left: $border-width-base solid var(--pa-border-color);
35
- border-right: $border-width-base solid var(--pa-border-color);
36
- }
37
-
38
- body.pa-container-lg .pa-layout {
39
- max-width: $layout-container-lg;
40
- box-shadow: $shadow-2xl;
41
- border-left: $border-width-base solid var(--pa-border-color);
42
- border-right: $border-width-base solid var(--pa-border-color);
43
- }
44
-
45
- body.pa-container-xl .pa-layout {
46
- max-width: $layout-container-xl;
47
- box-shadow: $shadow-xl;
48
- border-left: $border-width-base solid var(--pa-border-color);
49
- border-right: $border-width-base solid var(--pa-border-color);
50
- }
51
-
52
- body.pa-container-2xl .pa-layout {
53
- max-width: $layout-container-2xl;
54
- box-shadow: $shadow-xl;
55
- border-left: $border-width-base solid var(--pa-border-color);
56
- border-right: $border-width-base solid var(--pa-border-color);
57
- }
58
-
59
- // Sticky mode - fixed height
60
- body.pa-layout--sticky .pa-layout {
61
- height: calc(100vh - #{$header-height}); // Full viewport minus top margin
62
- }
63
-
64
- // Scroll mode - minimum height
65
- body:not(.pa-layout--sticky) .pa-layout {
66
- min-height: calc(100vh - #{$header-height}); // Ensure footer reaches bottom
67
- }
68
-
69
- // Layout inner container - flex wrapper for sidebar + content
70
- .pa-layout__inner {
71
- display: flex;
72
- width: 100%;
73
- flex: 1; // Take available space, pushing footer to bottom
74
- }
75
-
76
- // Sticky mode - inner container takes full height minus footer
77
- body.pa-layout--sticky .pa-layout__inner {
78
- flex: 1;
79
- overflow: hidden; // Prevent overflow, let content wrapper scroll
80
- }
81
-
82
- // Content wrapper - wraps main content only
83
- .pa-layout__content {
84
- flex: 1;
85
- display: flex;
86
- flex-direction: column;
87
- overflow-y: auto; // Always scrollable
88
- }
89
-
90
- // Main content area
91
- .pa-layout__main {
92
- flex: 1;
93
- padding: $spacing-base;
94
- container-type: inline-size;
95
- }
96
-
97
- // Footer - outside inner, sibling to inner
98
- .pa-layout__footer {
99
- min-height: $footer-height;
100
- background-color: var(--pa-footer-bg);
101
- border-top: $border-width-base solid var(--pa-footer-border-color);
102
- display: flex;
103
- align-items: center;
104
- padding: $spacing-xs $spacing-base;
105
- flex-shrink: 0; // Don't shrink footer
106
- gap: $spacing-base;
107
- }
108
-
109
- // Footer sections - Start/Center/End layout (mirrors navbar structure)
110
- .pa-footer__start {
111
- display: flex;
112
- align-items: center;
113
- gap: $spacing-base;
114
- flex-shrink: 0;
115
- }
116
-
117
- .pa-footer__center {
118
- flex: 1;
119
- min-width: 0; // Allow shrinking for ellipsis
120
- display: flex;
121
- align-items: center;
122
- justify-content: center;
123
- }
124
-
125
- .pa-footer__end {
126
- display: flex;
127
- align-items: center;
128
- gap: $spacing-base;
129
- flex-shrink: 0;
130
-
131
- &--vertical {
132
- flex-direction: column;
133
- align-items: flex-end;
134
- gap: $spacing-xs;
135
- }
136
- }
137
-
138
- // Responsive footer - stack sections on mobile
139
- @media (max-width: $mobile-breakpoint) {
140
- .pa-layout__footer {
141
- flex-wrap: wrap;
142
- min-height: auto;
143
- padding: $spacing-sm $spacing-base;
144
- }
145
-
146
- .pa-footer__start,
147
- .pa-footer__center,
148
- .pa-footer__end {
149
- flex-shrink: 1;
150
- min-width: 0;
151
- }
152
-
153
- .pa-footer__start {
154
- flex: 1 1 auto;
155
- }
156
-
157
- .pa-footer__center {
158
- display: none; // Hide empty center on mobile
159
- }
160
-
161
- .pa-footer__end {
162
- flex: 0 1 auto;
163
-
164
- &--vertical {
165
- align-items: flex-end;
166
- }
167
- }
168
- }
1
+ /* ========================================
2
+ Layout Container
3
+ Main layout wrapper, content areas, sticky/scroll modes
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Layout wrapper - applied to body for mode-specific classes
8
+ body.pa-layout--sticky {
9
+ height: 100vh;
10
+ overflow: hidden;
11
+ }
12
+
13
+ // Layout Container - centered, starts below navbar
14
+ .pa-layout {
15
+ max-width: 100%;
16
+ margin: $header-height auto 0;
17
+ background-color: var(--pa-main-bg);
18
+ overflow: visible; // Allow tooltips to escape
19
+ display: flex;
20
+ flex-direction: column;
21
+ }
22
+
23
+ // Constrained widths - controlled by body class
24
+ body.pa-container-sm .pa-layout {
25
+ max-width: $layout-container-sm;
26
+ box-shadow: $shadow-2xl;
27
+ border-left: $border-width-base solid var(--pa-border-color);
28
+ border-right: $border-width-base solid var(--pa-border-color);
29
+ }
30
+
31
+ body.pa-container-md .pa-layout {
32
+ max-width: $layout-container-md;
33
+ box-shadow: $shadow-2xl;
34
+ border-left: $border-width-base solid var(--pa-border-color);
35
+ border-right: $border-width-base solid var(--pa-border-color);
36
+ }
37
+
38
+ body.pa-container-lg .pa-layout {
39
+ max-width: $layout-container-lg;
40
+ box-shadow: $shadow-2xl;
41
+ border-left: $border-width-base solid var(--pa-border-color);
42
+ border-right: $border-width-base solid var(--pa-border-color);
43
+ }
44
+
45
+ body.pa-container-xl .pa-layout {
46
+ max-width: $layout-container-xl;
47
+ box-shadow: $shadow-xl;
48
+ border-left: $border-width-base solid var(--pa-border-color);
49
+ border-right: $border-width-base solid var(--pa-border-color);
50
+ }
51
+
52
+ body.pa-container-2xl .pa-layout {
53
+ max-width: $layout-container-2xl;
54
+ box-shadow: $shadow-xl;
55
+ border-left: $border-width-base solid var(--pa-border-color);
56
+ border-right: $border-width-base solid var(--pa-border-color);
57
+ }
58
+
59
+ // Sticky mode - fixed height
60
+ body.pa-layout--sticky .pa-layout {
61
+ height: calc(100vh - #{$header-height}); // Full viewport minus top margin
62
+ }
63
+
64
+ // Scroll mode - minimum height
65
+ body:not(.pa-layout--sticky) .pa-layout {
66
+ min-height: calc(100vh - #{$header-height}); // Ensure footer reaches bottom
67
+ }
68
+
69
+ // Layout inner container - flex wrapper for sidebar + content
70
+ .pa-layout__inner {
71
+ display: flex;
72
+ width: 100%;
73
+ flex: 1; // Take available space, pushing footer to bottom
74
+ }
75
+
76
+ // Sticky mode - inner container takes full height minus footer
77
+ body.pa-layout--sticky .pa-layout__inner {
78
+ flex: 1;
79
+ overflow: hidden; // Prevent overflow, let content wrapper scroll
80
+ }
81
+
82
+ // Content wrapper - wraps main content only
83
+ .pa-layout__content {
84
+ flex: 1;
85
+ display: flex;
86
+ flex-direction: column;
87
+ overflow-y: auto; // Always scrollable
88
+ }
89
+
90
+ // Main content area
91
+ .pa-layout__main {
92
+ flex: 1;
93
+ padding: $spacing-base;
94
+ container-type: inline-size;
95
+ }
96
+
97
+ // Footer - outside inner, sibling to inner
98
+ .pa-layout__footer {
99
+ min-height: $footer-height;
100
+ background-color: var(--pa-footer-bg);
101
+ border-top: $border-width-base solid var(--pa-footer-border-color);
102
+ display: flex;
103
+ align-items: center;
104
+ padding: $spacing-xs $spacing-base;
105
+ flex-shrink: 0; // Don't shrink footer
106
+ gap: $spacing-base;
107
+ }
108
+
109
+ // Footer sections - Start/Center/End layout (mirrors navbar structure)
110
+ .pa-footer__start {
111
+ display: flex;
112
+ align-items: center;
113
+ gap: $spacing-base;
114
+ flex-shrink: 0;
115
+ }
116
+
117
+ .pa-footer__center {
118
+ flex: 1;
119
+ min-width: 0; // Allow shrinking for ellipsis
120
+ display: flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ }
124
+
125
+ .pa-footer__end {
126
+ display: flex;
127
+ align-items: center;
128
+ gap: $spacing-base;
129
+ flex-shrink: 0;
130
+
131
+ &--vertical {
132
+ flex-direction: column;
133
+ align-items: flex-end;
134
+ gap: $spacing-xs;
135
+ }
136
+ }
137
+
138
+ // Responsive footer - stack sections on mobile
139
+ @media (max-width: $mobile-breakpoint) {
140
+ .pa-layout__footer {
141
+ flex-wrap: wrap;
142
+ min-height: auto;
143
+ padding: $spacing-sm $spacing-base;
144
+ }
145
+
146
+ .pa-footer__start,
147
+ .pa-footer__center,
148
+ .pa-footer__end {
149
+ flex-shrink: 1;
150
+ min-width: 0;
151
+ }
152
+
153
+ .pa-footer__start {
154
+ flex: 1 1 auto;
155
+ }
156
+
157
+ .pa-footer__center {
158
+ display: none; // Hide empty center on mobile
159
+ }
160
+
161
+ .pa-footer__end {
162
+ flex: 0 1 auto;
163
+
164
+ &--vertical {
165
+ align-items: flex-end;
166
+ }
167
+ }
168
+ }
@@ -1,99 +1,99 @@
1
- /* ========================================
2
- Layout Responsive
3
- Mobile and tablet media queries
4
- ======================================== */
5
- @use '../../variables' as *;
6
-
7
- // Responsive Design - Mobile and Tablet
8
- @media (max-width: $mobile-breakpoint) {
9
- // Mobile: Auto-hide sidebar, content takes full width
10
- body:not(.sidebar-visible) {
11
- .pa-layout__sidebar {
12
- width: 0;
13
- opacity: 0;
14
- overflow: hidden;
15
- border-inline-end: none; // RTL: flips to left
16
- }
17
-
18
- // Override icon-collapse mode on mobile - sidebar should be fully hidden
19
- .pa-layout__sidebar--icon-collapse {
20
- width: 0 !important;
21
- }
22
- }
23
-
24
- // Mobile: Fullscreen sidebar overlay when visible
25
- .sidebar-visible {
26
- // Use fixed positioning for mobile overlay
27
- .pa-layout__inner {
28
- position: relative;
29
- }
30
-
31
- .pa-layout__sidebar {
32
- position: fixed;
33
- top: $header-height;
34
- inset-inline-start: 0; // RTL: flips to right
35
- bottom: 0;
36
- width: $mobile-sidebar-width;
37
- z-index: 1050;
38
- background-color: var(--pa-sidebar-bg);
39
- opacity: 1;
40
- overflow-y: auto;
41
- }
42
-
43
- // Override icon-collapse mode on mobile - show full width overlay
44
- .pa-layout__sidebar--icon-collapse {
45
- width: $mobile-sidebar-width !important;
46
- overflow-y: auto !important;
47
-
48
- .pa-sidebar__label {
49
- opacity: 1 !important;
50
- width: auto !important;
51
- overflow: visible !important;
52
- position: static !important;
53
- }
54
- }
55
-
56
- // Add backdrop overlay
57
- &::before {
58
- content: "";
59
- position: fixed;
60
- top: $header-height;
61
- inset-inline: 0; // RTL: covers full width
62
- bottom: 0;
63
- background-color: $mobile-backdrop-bg;
64
- z-index: 1040;
65
- }
66
- }
67
-
68
- // Adjust header for mobile
69
- .pa-header {
70
- gap: $spacing-sm;
71
-
72
- &__nav {
73
- display: none; // Hide navigation links on mobile
74
- }
75
-
76
- &__title h2 {
77
- font-size: $font-size-sm;
78
- }
79
- }
80
-
81
- // Hide theme switcher label on mobile
82
- .theme-switcher {
83
- label {
84
- display: none;
85
- }
86
- }
87
- }
88
-
89
- @media (max-width: $tablet-breakpoint) and (min-width: $tablet-breakpoint-min) {
90
- // Tablet: Reduce sidebar width
91
- .pa-layout__sidebar {
92
- width: $sidebar-width-tablet;
93
-
94
- &__nav ul li a {
95
- padding: $spacing-sm $spacing-md;
96
- font-size: $font-size-sm;
97
- }
98
- }
99
- }
1
+ /* ========================================
2
+ Layout Responsive
3
+ Mobile and tablet media queries
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Responsive Design - Mobile and Tablet
8
+ @media (max-width: $mobile-breakpoint) {
9
+ // Mobile: Auto-hide sidebar, content takes full width
10
+ body:not(.sidebar-visible) {
11
+ .pa-layout__sidebar {
12
+ width: 0;
13
+ opacity: 0;
14
+ overflow: hidden;
15
+ border-inline-end: none; // RTL: flips to left
16
+ }
17
+
18
+ // Override icon-collapse mode on mobile - sidebar should be fully hidden
19
+ .pa-layout__sidebar--icon-collapse {
20
+ width: 0 !important;
21
+ }
22
+ }
23
+
24
+ // Mobile: Fullscreen sidebar overlay when visible
25
+ .sidebar-visible {
26
+ // Use fixed positioning for mobile overlay
27
+ .pa-layout__inner {
28
+ position: relative;
29
+ }
30
+
31
+ .pa-layout__sidebar {
32
+ position: fixed;
33
+ top: $header-height;
34
+ inset-inline-start: 0; // RTL: flips to right
35
+ bottom: 0;
36
+ width: $mobile-sidebar-width;
37
+ z-index: 1050;
38
+ background-color: var(--pa-sidebar-bg);
39
+ opacity: 1;
40
+ overflow-y: auto;
41
+ }
42
+
43
+ // Override icon-collapse mode on mobile - show full width overlay
44
+ .pa-layout__sidebar--icon-collapse {
45
+ width: $mobile-sidebar-width !important;
46
+ overflow-y: auto !important;
47
+
48
+ .pa-sidebar__label {
49
+ opacity: 1 !important;
50
+ width: auto !important;
51
+ overflow: visible !important;
52
+ position: static !important;
53
+ }
54
+ }
55
+
56
+ // Add backdrop overlay
57
+ &::before {
58
+ content: "";
59
+ position: fixed;
60
+ top: $header-height;
61
+ inset-inline: 0; // RTL: covers full width
62
+ bottom: 0;
63
+ background-color: $mobile-backdrop-bg;
64
+ z-index: 1040;
65
+ }
66
+ }
67
+
68
+ // Adjust header for mobile
69
+ .pa-header {
70
+ gap: $spacing-sm;
71
+
72
+ &__nav {
73
+ display: none; // Hide navigation links on mobile
74
+ }
75
+
76
+ &__title h2 {
77
+ font-size: $font-size-sm;
78
+ }
79
+ }
80
+
81
+ // Hide theme switcher label on mobile
82
+ .theme-switcher {
83
+ label {
84
+ display: none;
85
+ }
86
+ }
87
+ }
88
+
89
+ @media (max-width: $tablet-breakpoint) and (min-width: $tablet-breakpoint-min) {
90
+ // Tablet: Reduce sidebar width
91
+ .pa-layout__sidebar {
92
+ width: $sidebar-width-tablet;
93
+
94
+ &__nav ul li a {
95
+ padding: $spacing-sm $spacing-md;
96
+ font-size: $font-size-sm;
97
+ }
98
+ }
99
+ }