@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,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
+ }