@keenmate/pure-admin-core 2.3.1 → 2.3.2

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 (69) hide show
  1. package/README.md +5 -5
  2. package/dist/css/main.css +187 -178
  3. package/package.json +1 -1
  4. package/snippets/buttons.html +375 -365
  5. package/src/scss/_base-css-variables.scss +8 -0
  6. package/src/scss/_core.scss +121 -121
  7. package/src/scss/core-components/_alerts.scss +227 -227
  8. package/src/scss/core-components/_badges.scss +16 -16
  9. package/src/scss/core-components/_base.scss +125 -125
  10. package/src/scss/core-components/_buttons.scss +31 -16
  11. package/src/scss/core-components/_callouts.scss +152 -152
  12. package/src/scss/core-components/_cards.scss +488 -488
  13. package/src/scss/core-components/_checkbox-lists.scss +289 -289
  14. package/src/scss/core-components/_code.scss +141 -141
  15. package/src/scss/core-components/_command-palette.scss +509 -509
  16. package/src/scss/core-components/_comparison.scss +172 -172
  17. package/src/scss/core-components/_data-display.scss +9 -9
  18. package/src/scss/core-components/_data-viz.scss +9 -9
  19. package/src/scss/core-components/_detail-panel.scss +1 -1
  20. package/src/scss/core-components/_file-selector.scss +780 -780
  21. package/src/scss/core-components/_filter-card.scss +58 -58
  22. package/src/scss/core-components/_forms.scss +16 -16
  23. package/src/scss/core-components/_grid.scss +293 -293
  24. package/src/scss/core-components/_layout.scss +15 -15
  25. package/src/scss/core-components/_lists.scss +211 -211
  26. package/src/scss/core-components/_loaders.scss +277 -277
  27. package/src/scss/core-components/_logic-tree.scss +280 -280
  28. package/src/scss/core-components/_modals.scss +203 -203
  29. package/src/scss/core-components/_notifications.scss +320 -320
  30. package/src/scss/core-components/_pagers.scss +141 -141
  31. package/src/scss/core-components/_popconfirm.scss +170 -170
  32. package/src/scss/core-components/_profile.scss +405 -405
  33. package/src/scss/core-components/_scrollbars.scss +40 -40
  34. package/src/scss/core-components/_settings-panel.scss +141 -141
  35. package/src/scss/core-components/_statistics.scss +200 -201
  36. package/src/scss/core-components/_tables.scss +900 -900
  37. package/src/scss/core-components/_tabs.scss +504 -504
  38. package/src/scss/core-components/_timeline.scss +589 -589
  39. package/src/scss/core-components/_toasts.scss +425 -425
  40. package/src/scss/core-components/_tooltips.scss +605 -605
  41. package/src/scss/core-components/_utilities.scss +1 -1
  42. package/src/scss/core-components/_web-components-theme.scss +21 -21
  43. package/src/scss/core-components/badges/_badge-base.scss +121 -121
  44. package/src/scss/core-components/badges/_badge-group.scss +25 -25
  45. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
  46. package/src/scss/core-components/badges/_composite-badge.scss +70 -70
  47. package/src/scss/core-components/badges/_index.scss +10 -10
  48. package/src/scss/core-components/badges/_labels.scss +155 -155
  49. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
  50. package/src/scss/core-components/forms/_form-inputs.scss +3 -3
  51. package/src/scss/core-components/forms/_form-layout.scss +66 -66
  52. package/src/scss/core-components/forms/_form-states.scss +115 -115
  53. package/src/scss/core-components/forms/_index.scss +12 -12
  54. package/src/scss/core-components/forms/_input-groups.scss +154 -154
  55. package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
  56. package/src/scss/core-components/forms/_query-editor.scss +313 -313
  57. package/src/scss/core-components/layout/_index.scss +11 -11
  58. package/src/scss/core-components/layout/_layout-container.scss +168 -168
  59. package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
  60. package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
  61. package/src/scss/core-components/layout/_navbar.scss +83 -83
  62. package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
  63. package/src/scss/core-components/layout/_sidebar.scss +234 -234
  64. package/src/scss/main.scss +7 -7
  65. package/src/scss/utilities.scss +740 -740
  66. package/src/scss/variables/_base.scss +228 -228
  67. package/src/scss/variables/_components.scss +748 -748
  68. package/src/scss/variables/_layout.scss +65 -65
  69. package/src/scss/variables/_typography.scss +37 -37
@@ -1,205 +1,205 @@
1
- /* ========================================
2
- Checkboxes and Radio Buttons
3
- Custom checkbox component with tri-state support, radio buttons
4
- ======================================== */
5
- @use '../../variables' as *;
6
-
7
- // Checkboxes and Radio Buttons Container
8
- .pa-checkbox-group,
9
- .pa-radio-group {
10
- display: flex;
11
- flex-direction: column;
12
- gap: $form-scale;
13
- }
14
-
15
- // ============================================================================
16
- // Custom Checkbox Component (Tri-State Support)
17
- // ============================================================================
18
- // States: unchecked, checked, indeterminate
19
- // Set indeterminate via JS: checkbox.indeterminate = true
20
- // ============================================================================
21
- .pa-checkbox {
22
- display: inline-flex;
23
- align-items: center;
24
- gap: $spacing-sm;
25
- cursor: pointer;
26
- font-size: $font-size-sm;
27
- color: var(--pa-text-color-1);
28
- user-select: none;
29
-
30
- // Hide native checkbox (visually hidden but accessible)
31
- input[type="checkbox"] {
32
- position: absolute;
33
- opacity: 0;
34
- width: 0;
35
- height: 0;
36
- pointer-events: none;
37
- }
38
-
39
- // Custom checkbox box
40
- &__box {
41
- position: relative;
42
- width: $checkbox-size;
43
- height: $checkbox-size;
44
- border: $checkbox-border-width solid var(--pa-checkbox-border-color);
45
- border-radius: $checkbox-border-radius;
46
- background-color: var(--pa-checkbox-bg);
47
- transition: all $checkbox-transition $easing-snappy;
48
- flex-shrink: 0;
49
-
50
- // Checkmark/dash (hidden by default)
51
- &::after {
52
- content: '';
53
- position: absolute;
54
- display: none;
55
- }
56
- }
57
-
58
- // Hover state
59
- &:hover &__box {
60
- border-color: var(--pa-checkbox-border-color-hover);
61
- }
62
-
63
- // Focus state (keyboard navigation)
64
- input:focus-visible + &__box {
65
- box-shadow: var(--pa-checkbox-focus-shadow);
66
- border-color: var(--pa-checkbox-border-color-checked);
67
- }
68
-
69
- // Checked state
70
- input:checked + &__box {
71
- background-color: var(--pa-checkbox-bg-checked);
72
- border-color: var(--pa-checkbox-border-color-checked);
73
-
74
- &::after {
75
- display: block;
76
- // Checkmark shape (CSS border trick)
77
- left: 30%;
78
- top: 10%;
79
- width: 30%;
80
- height: 55%;
81
- border: solid var(--pa-checkbox-checkmark-color);
82
- border-width: 0 2px 2px 0;
83
- transform: rotate(45deg);
84
- }
85
- }
86
-
87
- // Indeterminate state (dash)
88
- input:indeterminate + &__box {
89
- background-color: var(--pa-checkbox-bg-indeterminate);
90
- border-color: var(--pa-checkbox-border-color-checked);
91
-
92
- &::after {
93
- display: block;
94
- // Dash shape
95
- left: 20%;
96
- top: 45%;
97
- width: 60%;
98
- height: 0;
99
- border: solid var(--pa-checkbox-checkmark-color);
100
- border-width: 0 0 2px 0;
101
- transform: none;
102
- }
103
- }
104
-
105
- // Label text
106
- &__label {
107
- flex: 1;
108
- }
109
-
110
- // Size modifiers - apply to box element
111
- &--xs &__box { width: $checkbox-size-xs; height: $checkbox-size-xs; }
112
- &--sm &__box { width: $checkbox-size-sm; height: $checkbox-size-sm; }
113
- &--lg &__box { width: $checkbox-size-lg; height: $checkbox-size-lg; }
114
- &--xl &__box { width: $checkbox-size-xl; height: $checkbox-size-xl; }
115
-
116
- // Checkmark position adjustments for smaller sizes
117
- &--xs input:checked + &__box::after,
118
- &--sm input:checked + &__box::after {
119
- left: 25%;
120
- top: 5%;
121
- }
122
- &--xs input:indeterminate + &__box::after,
123
- &--sm input:indeterminate + &__box::after {
124
- top: 40%;
125
- }
126
-
127
- // X mark modifier (instead of checkmark)
128
- &--x input:checked + &__box {
129
- &::after {
130
- // First diagonal of X
131
- left: 50%;
132
- top: 50%;
133
- width: 60%;
134
- height: 0;
135
- border: solid var(--pa-checkbox-checkmark-color);
136
- border-width: 0 0 2px 0;
137
- transform: translate(-50%, -50%) rotate(45deg);
138
- }
139
- &::before {
140
- // Second diagonal of X
141
- content: '';
142
- position: absolute;
143
- display: block;
144
- left: 50%;
145
- top: 50%;
146
- width: 60%;
147
- height: 0;
148
- border: solid var(--pa-checkbox-checkmark-color);
149
- border-width: 0 0 2px 0;
150
- transform: translate(-50%, -50%) rotate(-45deg);
151
- }
152
- }
153
-
154
- // Disabled state
155
- &--disabled,
156
- &:has(input:disabled) {
157
- opacity: 0.5;
158
- cursor: not-allowed;
159
-
160
- .pa-checkbox__box {
161
- cursor: not-allowed;
162
- }
163
- }
164
- }
165
-
166
- // ============================================================================
167
- // Radio Buttons (Native styling)
168
- // ============================================================================
169
- .pa-radio {
170
- display: flex;
171
- align-items: center;
172
- gap: $form-scale;
173
- cursor: pointer;
174
- font-size: $font-size-sm;
175
- color: var(--pa-text-color-1);
176
-
177
- input {
178
- margin: 0;
179
- width: $checkbox-size;
180
- height: $checkbox-size;
181
- cursor: pointer;
182
- flex-shrink: 0;
183
- }
184
-
185
- // Size modifiers
186
- &--xs input {
187
- width: $checkbox-size-xs;
188
- height: $checkbox-size-xs;
189
- }
190
-
191
- &--sm input {
192
- width: $checkbox-size-sm;
193
- height: $checkbox-size-sm;
194
- }
195
-
196
- &--lg input {
197
- width: $checkbox-size-lg;
198
- height: $checkbox-size-lg;
199
- }
200
-
201
- &--xl input {
202
- width: $checkbox-size-xl;
203
- height: $checkbox-size-xl;
204
- }
205
- }
1
+ /* ========================================
2
+ Checkboxes and Radio Buttons
3
+ Custom checkbox component with tri-state support, radio buttons
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Checkboxes and Radio Buttons Container
8
+ .pa-checkbox-group,
9
+ .pa-radio-group {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: $form-scale;
13
+ }
14
+
15
+ // ============================================================================
16
+ // Custom Checkbox Component (Tri-State Support)
17
+ // ============================================================================
18
+ // States: unchecked, checked, indeterminate
19
+ // Set indeterminate via JS: checkbox.indeterminate = true
20
+ // ============================================================================
21
+ .pa-checkbox {
22
+ display: inline-flex;
23
+ align-items: center;
24
+ gap: $spacing-sm;
25
+ cursor: pointer;
26
+ font-size: $font-size-sm;
27
+ color: var(--pa-text-color-1);
28
+ user-select: none;
29
+
30
+ // Hide native checkbox (visually hidden but accessible)
31
+ input[type="checkbox"] {
32
+ position: absolute;
33
+ opacity: 0;
34
+ width: 0;
35
+ height: 0;
36
+ pointer-events: none;
37
+ }
38
+
39
+ // Custom checkbox box
40
+ &__box {
41
+ position: relative;
42
+ width: $checkbox-size;
43
+ height: $checkbox-size;
44
+ border: $checkbox-border-width solid var(--pa-checkbox-border-color);
45
+ border-radius: var(--pa-border-radius-sm);
46
+ background-color: var(--pa-checkbox-bg);
47
+ transition: all $checkbox-transition $easing-snappy;
48
+ flex-shrink: 0;
49
+
50
+ // Checkmark/dash (hidden by default)
51
+ &::after {
52
+ content: '';
53
+ position: absolute;
54
+ display: none;
55
+ }
56
+ }
57
+
58
+ // Hover state
59
+ &:hover &__box {
60
+ border-color: var(--pa-checkbox-border-color-hover);
61
+ }
62
+
63
+ // Focus state (keyboard navigation)
64
+ input:focus-visible + &__box {
65
+ box-shadow: var(--pa-checkbox-focus-shadow);
66
+ border-color: var(--pa-checkbox-border-color-checked);
67
+ }
68
+
69
+ // Checked state
70
+ input:checked + &__box {
71
+ background-color: var(--pa-checkbox-bg-checked);
72
+ border-color: var(--pa-checkbox-border-color-checked);
73
+
74
+ &::after {
75
+ display: block;
76
+ // Checkmark shape (CSS border trick)
77
+ left: 30%;
78
+ top: 10%;
79
+ width: 30%;
80
+ height: 55%;
81
+ border: solid var(--pa-checkbox-checkmark-color);
82
+ border-width: 0 2px 2px 0;
83
+ transform: rotate(45deg);
84
+ }
85
+ }
86
+
87
+ // Indeterminate state (dash)
88
+ input:indeterminate + &__box {
89
+ background-color: var(--pa-checkbox-bg-indeterminate);
90
+ border-color: var(--pa-checkbox-border-color-checked);
91
+
92
+ &::after {
93
+ display: block;
94
+ // Dash shape
95
+ left: 20%;
96
+ top: 45%;
97
+ width: 60%;
98
+ height: 0;
99
+ border: solid var(--pa-checkbox-checkmark-color);
100
+ border-width: 0 0 2px 0;
101
+ transform: none;
102
+ }
103
+ }
104
+
105
+ // Label text
106
+ &__label {
107
+ flex: 1;
108
+ }
109
+
110
+ // Size modifiers - apply to box element
111
+ &--xs &__box { width: $checkbox-size-xs; height: $checkbox-size-xs; }
112
+ &--sm &__box { width: $checkbox-size-sm; height: $checkbox-size-sm; }
113
+ &--lg &__box { width: $checkbox-size-lg; height: $checkbox-size-lg; }
114
+ &--xl &__box { width: $checkbox-size-xl; height: $checkbox-size-xl; }
115
+
116
+ // Checkmark position adjustments for smaller sizes
117
+ &--xs input:checked + &__box::after,
118
+ &--sm input:checked + &__box::after {
119
+ left: 25%;
120
+ top: 5%;
121
+ }
122
+ &--xs input:indeterminate + &__box::after,
123
+ &--sm input:indeterminate + &__box::after {
124
+ top: 40%;
125
+ }
126
+
127
+ // X mark modifier (instead of checkmark)
128
+ &--x input:checked + &__box {
129
+ &::after {
130
+ // First diagonal of X
131
+ left: 50%;
132
+ top: 50%;
133
+ width: 60%;
134
+ height: 0;
135
+ border: solid var(--pa-checkbox-checkmark-color);
136
+ border-width: 0 0 2px 0;
137
+ transform: translate(-50%, -50%) rotate(45deg);
138
+ }
139
+ &::before {
140
+ // Second diagonal of X
141
+ content: '';
142
+ position: absolute;
143
+ display: block;
144
+ left: 50%;
145
+ top: 50%;
146
+ width: 60%;
147
+ height: 0;
148
+ border: solid var(--pa-checkbox-checkmark-color);
149
+ border-width: 0 0 2px 0;
150
+ transform: translate(-50%, -50%) rotate(-45deg);
151
+ }
152
+ }
153
+
154
+ // Disabled state
155
+ &--disabled,
156
+ &:has(input:disabled) {
157
+ opacity: 0.5;
158
+ cursor: not-allowed;
159
+
160
+ .pa-checkbox__box {
161
+ cursor: not-allowed;
162
+ }
163
+ }
164
+ }
165
+
166
+ // ============================================================================
167
+ // Radio Buttons (Native styling)
168
+ // ============================================================================
169
+ .pa-radio {
170
+ display: flex;
171
+ align-items: center;
172
+ gap: $form-scale;
173
+ cursor: pointer;
174
+ font-size: $font-size-sm;
175
+ color: var(--pa-text-color-1);
176
+
177
+ input {
178
+ margin: 0;
179
+ width: $checkbox-size;
180
+ height: $checkbox-size;
181
+ cursor: pointer;
182
+ flex-shrink: 0;
183
+ }
184
+
185
+ // Size modifiers
186
+ &--xs input {
187
+ width: $checkbox-size-xs;
188
+ height: $checkbox-size-xs;
189
+ }
190
+
191
+ &--sm input {
192
+ width: $checkbox-size-sm;
193
+ height: $checkbox-size-sm;
194
+ }
195
+
196
+ &--lg input {
197
+ width: $checkbox-size-lg;
198
+ height: $checkbox-size-lg;
199
+ }
200
+
201
+ &--xl input {
202
+ width: $checkbox-size-xl;
203
+ height: $checkbox-size-xl;
204
+ }
205
+ }
@@ -9,7 +9,7 @@
9
9
  height: #{$base-input-size-md-height}rem;
10
10
  padding: $input-padding-v $input-padding-h;
11
11
  border: $border-width-base solid var(--pa-border-color);
12
- border-radius: $border-radius;
12
+ border-radius: var(--pa-border-radius);
13
13
  font-size: $font-size-sm;
14
14
  background-color: var(--pa-input-bg);
15
15
  color: var(--pa-text-color-1);
@@ -27,7 +27,7 @@
27
27
  height: #{$base-input-size-md-height}rem;
28
28
  padding: $select-padding-v $select-padding-h;
29
29
  border: $border-width-base solid var(--pa-border-color);
30
- border-radius: $border-radius;
30
+ border-radius: var(--pa-border-radius);
31
31
  font-size: $font-size-sm;
32
32
  line-height: normal;
33
33
  background-color: var(--pa-input-bg);
@@ -45,7 +45,7 @@
45
45
  width: 100%;
46
46
  padding: $input-padding-v $input-padding-h;
47
47
  border: $border-width-base solid var(--pa-border-color);
48
- border-radius: $border-radius;
48
+ border-radius: var(--pa-border-radius);
49
49
  font-size: $font-size-sm;
50
50
  background-color: var(--pa-input-bg);
51
51
  color: var(--pa-text-color-1);
@@ -1,66 +1,66 @@
1
- /* ========================================
2
- Form Layout
3
- Form groups, form containers, horizontal layouts
4
- ======================================== */
5
- @use '../../variables' as *;
6
-
7
- // Form Elements
8
- .pa-form-group {
9
- margin-bottom: $form-group-margin-bottom;
10
-
11
- // Remove margins when first/last child in card body (direct, in forms+grids, or in grid columns)
12
- .pa-card__body > &:first-child,
13
- .pa-card__body > .pa-form > .pure-g > [class*="pure-u"]:first-child > &:first-child,
14
- .pa-card__body > [class*="pure-u"]:first-child > &:first-child {
15
- margin-top: 0;
16
- }
17
- .pa-card__body > &:last-child,
18
- .pa-card__body > .pa-form > .pure-g > [class*="pure-u"]:last-child > &:last-child,
19
- .pa-card__body > [class*="pure-u"]:last-child > &:last-child {
20
- margin-bottom: 0;
21
- }
22
- }
23
-
24
- // Horizontal form group (label on left, input on right)
25
- .pa-form-group--horizontal {
26
- display: flex;
27
- align-items: flex-start;
28
- gap: $spacing-base;
29
-
30
- label {
31
- flex-shrink: 0;
32
- padding-top: $input-padding-v;
33
- margin-bottom: 0;
34
- color: var(--pa-text-color-1);
35
- font-weight: $font-weight-medium;
36
- font-size: $font-size-sm;
37
- }
38
-
39
- // Input container takes remaining space
40
- > .pa-input,
41
- > .pa-select,
42
- > .pa-textarea {
43
- flex: 1;
44
- }
45
- }
46
-
47
- .pa-form {
48
- .pa-form-group {
49
- label {
50
- display: flex;
51
- align-items: center;
52
- gap: $form-scale;
53
- margin-bottom: $form-label-margin-bottom;
54
- color: var(--pa-text-color-1);
55
- font-weight: $font-weight-medium;
56
- font-size: $font-size-sm;
57
- }
58
- }
59
-
60
- .pa-form-actions {
61
- margin-top: $spacing-base;
62
- display: flex;
63
- gap: $form-scale;
64
- flex-wrap: wrap;
65
- }
66
- }
1
+ /* ========================================
2
+ Form Layout
3
+ Form groups, form containers, horizontal layouts
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Form Elements
8
+ .pa-form-group {
9
+ margin-bottom: $form-group-margin-bottom;
10
+
11
+ // Remove margins when first/last child in card body (direct, in forms+grids, or in grid columns)
12
+ .pa-card__body > &:first-child,
13
+ .pa-card__body > .pa-form > .pure-g > [class*="pure-u"]:first-child > &:first-child,
14
+ .pa-card__body > [class*="pure-u"]:first-child > &:first-child {
15
+ margin-top: 0;
16
+ }
17
+ .pa-card__body > &:last-child,
18
+ .pa-card__body > .pa-form > .pure-g > [class*="pure-u"]:last-child > &:last-child,
19
+ .pa-card__body > [class*="pure-u"]:last-child > &:last-child {
20
+ margin-bottom: 0;
21
+ }
22
+ }
23
+
24
+ // Horizontal form group (label on left, input on right)
25
+ .pa-form-group--horizontal {
26
+ display: flex;
27
+ align-items: flex-start;
28
+ gap: $spacing-base;
29
+
30
+ label {
31
+ flex-shrink: 0;
32
+ padding-top: $input-padding-v;
33
+ margin-bottom: 0;
34
+ color: var(--pa-text-color-1);
35
+ font-weight: $font-weight-medium;
36
+ font-size: $font-size-sm;
37
+ }
38
+
39
+ // Input container takes remaining space
40
+ > .pa-input,
41
+ > .pa-select,
42
+ > .pa-textarea {
43
+ flex: 1;
44
+ }
45
+ }
46
+
47
+ .pa-form {
48
+ .pa-form-group {
49
+ label {
50
+ display: flex;
51
+ align-items: center;
52
+ gap: $form-scale;
53
+ margin-bottom: $form-label-margin-bottom;
54
+ color: var(--pa-text-color-1);
55
+ font-weight: $font-weight-medium;
56
+ font-size: $font-size-sm;
57
+ }
58
+ }
59
+
60
+ .pa-form-actions {
61
+ margin-top: $spacing-base;
62
+ display: flex;
63
+ gap: $form-scale;
64
+ flex-wrap: wrap;
65
+ }
66
+ }