@keenmate/pure-admin-core 2.3.0 → 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 +7 -5
  2. package/dist/css/main.css +207 -181
  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 +580 -548
  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 +136 -135
  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,154 +1,154 @@
1
- /* ========================================
2
- Input Groups
3
- Input groups with prepend/append addons and buttons
4
- RTL-aware using CSS logical properties
5
- ======================================== */
6
- @use '../../variables' as *;
7
-
8
- .pa-input-group {
9
- display: flex;
10
- align-items: stretch;
11
-
12
- .pa-input {
13
- border-radius: 0;
14
- flex: 1;
15
-
16
- &:first-child {
17
- border-start-start-radius: $border-radius; // RTL: top-right in RTL
18
- border-end-start-radius: $border-radius; // RTL: bottom-right in RTL
19
- }
20
-
21
- &:last-child {
22
- border-start-end-radius: $border-radius; // RTL: top-left in RTL
23
- border-end-end-radius: $border-radius; // RTL: bottom-left in RTL
24
- }
25
-
26
- &:not(:first-child) {
27
- border-inline-start: none; // RTL: flips to border-right
28
- }
29
-
30
- &:not(:last-child) {
31
- border-inline-end: none; // RTL: flips to border-left
32
- }
33
- }
34
-
35
- &__prepend,
36
- &__append {
37
- display: flex;
38
- align-items: center;
39
- height: #{$base-input-size-md-height}rem;
40
- line-height: #{$base-input-size-md-height}rem;
41
- padding: 0 $input-padding-h;
42
- border: $border-width-base solid var(--pa-border-color);
43
- font-size: $font-size-sm;
44
- white-space: nowrap;
45
- border-radius: 0;
46
- }
47
-
48
- &__prepend {
49
- background-color: var(--pa-input-group-prepend-bg);
50
- color: var(--pa-input-group-prepend-text);
51
- border-color: var(--pa-input-group-prepend-bg);
52
- border-inline-end: none; // RTL: flips to border-left
53
-
54
- &:first-child {
55
- border-start-start-radius: $border-radius; // RTL: top-right in RTL
56
- border-end-start-radius: $border-radius; // RTL: bottom-right in RTL
57
- }
58
- }
59
-
60
- &__append {
61
- background-color: var(--pa-input-group-append-bg);
62
- color: var(--pa-input-group-append-text);
63
- border-color: var(--pa-input-group-append-bg);
64
- border-inline-start: none; // RTL: flips to border-right
65
-
66
- &:last-child {
67
- border-start-end-radius: $border-radius; // RTL: top-left in RTL
68
- border-end-end-radius: $border-radius; // RTL: bottom-left in RTL
69
- }
70
- }
71
-
72
- // Adjacent prepends/appends need borders between them
73
- &__prepend + &__prepend {
74
- border-inline-start: $border-width-base solid var(--pa-input-group-prepend-bg); // RTL: flips
75
- }
76
-
77
- &__append + &__append {
78
- border-inline-start: $border-width-base solid var(--pa-input-group-append-bg); // RTL: flips
79
- }
80
-
81
- // When input is focused, show focus border on adjacent prepend/append
82
- &:has(.pa-input:focus) {
83
- // Last prepend (one before input) gets focus border
84
- .pa-input-group__prepend {
85
- border-inline-end: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
86
- }
87
-
88
- // But prepends followed by another prepend keep normal border
89
- .pa-input-group__prepend:has(+ .pa-input-group__prepend) {
90
- border-inline-end: none; // RTL: flips
91
- }
92
-
93
- // First append (one after input) gets focus border
94
- .pa-input-group__append {
95
- border-inline-start: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
96
- }
97
-
98
- // But appends following another append keep normal border
99
- .pa-input-group__append + .pa-input-group__append {
100
- border-inline-start: $border-width-base solid var(--pa-border-color); // RTL: flips
101
- }
102
- }
103
-
104
- &__button {
105
- border-radius: 0;
106
-
107
- &:first-child {
108
- border-start-start-radius: $border-radius; // RTL: top-right in RTL
109
- border-end-start-radius: $border-radius; // RTL: bottom-right in RTL
110
- }
111
-
112
- &:last-child {
113
- border-start-end-radius: $border-radius; // RTL: top-left in RTL
114
- border-end-end-radius: $border-radius; // RTL: bottom-left in RTL
115
- }
116
- }
117
-
118
- // Input group sizes - match prepend/append to input sizes
119
- &--xs {
120
- .pa-input-group__prepend,
121
- .pa-input-group__append {
122
- height: #{$base-input-size-xs-height}rem;
123
- line-height: #{$base-input-size-xs-height}rem;
124
- font-size: $font-size-xs;
125
- }
126
- }
127
-
128
- &--sm {
129
- .pa-input-group__prepend,
130
- .pa-input-group__append {
131
- height: #{$base-input-size-sm-height}rem;
132
- line-height: #{$base-input-size-sm-height}rem;
133
- font-size: $font-size-sm;
134
- }
135
- }
136
-
137
- &--lg {
138
- .pa-input-group__prepend,
139
- .pa-input-group__append {
140
- height: #{$base-input-size-lg-height}rem;
141
- line-height: #{$base-input-size-lg-height}rem;
142
- font-size: $font-size-base;
143
- }
144
- }
145
-
146
- &--xl {
147
- .pa-input-group__prepend,
148
- .pa-input-group__append {
149
- height: #{$base-input-size-xl-height}rem;
150
- line-height: #{$base-input-size-xl-height}rem;
151
- font-size: $font-size-lg;
152
- }
153
- }
154
- }
1
+ /* ========================================
2
+ Input Groups
3
+ Input groups with prepend/append addons and buttons
4
+ RTL-aware using CSS logical properties
5
+ ======================================== */
6
+ @use '../../variables' as *;
7
+
8
+ .pa-input-group {
9
+ display: flex;
10
+ align-items: stretch;
11
+
12
+ .pa-input {
13
+ border-radius: 0;
14
+ flex: 1;
15
+
16
+ &:first-child {
17
+ border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
18
+ border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
19
+ }
20
+
21
+ &:last-child {
22
+ border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
23
+ border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
24
+ }
25
+
26
+ &:not(:first-child) {
27
+ border-inline-start: none; // RTL: flips to border-right
28
+ }
29
+
30
+ &:not(:last-child) {
31
+ border-inline-end: none; // RTL: flips to border-left
32
+ }
33
+ }
34
+
35
+ &__prepend,
36
+ &__append {
37
+ display: flex;
38
+ align-items: center;
39
+ height: #{$base-input-size-md-height}rem;
40
+ line-height: #{$base-input-size-md-height}rem;
41
+ padding: 0 $input-padding-h;
42
+ border: $border-width-base solid var(--pa-border-color);
43
+ font-size: $font-size-sm;
44
+ white-space: nowrap;
45
+ border-radius: 0;
46
+ }
47
+
48
+ &__prepend {
49
+ background-color: var(--pa-input-group-prepend-bg);
50
+ color: var(--pa-input-group-prepend-text);
51
+ border-color: var(--pa-input-group-prepend-bg);
52
+ border-inline-end: none; // RTL: flips to border-left
53
+
54
+ &:first-child {
55
+ border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
56
+ border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
57
+ }
58
+ }
59
+
60
+ &__append {
61
+ background-color: var(--pa-input-group-append-bg);
62
+ color: var(--pa-input-group-append-text);
63
+ border-color: var(--pa-input-group-append-bg);
64
+ border-inline-start: none; // RTL: flips to border-right
65
+
66
+ &:last-child {
67
+ border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
68
+ border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
69
+ }
70
+ }
71
+
72
+ // Adjacent prepends/appends need borders between them
73
+ &__prepend + &__prepend {
74
+ border-inline-start: $border-width-base solid var(--pa-input-group-prepend-bg); // RTL: flips
75
+ }
76
+
77
+ &__append + &__append {
78
+ border-inline-start: $border-width-base solid var(--pa-input-group-append-bg); // RTL: flips
79
+ }
80
+
81
+ // When input is focused, show focus border on adjacent prepend/append
82
+ &:has(.pa-input:focus) {
83
+ // Last prepend (one before input) gets focus border
84
+ .pa-input-group__prepend {
85
+ border-inline-end: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
86
+ }
87
+
88
+ // But prepends followed by another prepend keep normal border
89
+ .pa-input-group__prepend:has(+ .pa-input-group__prepend) {
90
+ border-inline-end: none; // RTL: flips
91
+ }
92
+
93
+ // First append (one after input) gets focus border
94
+ .pa-input-group__append {
95
+ border-inline-start: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
96
+ }
97
+
98
+ // But appends following another append keep normal border
99
+ .pa-input-group__append + .pa-input-group__append {
100
+ border-inline-start: $border-width-base solid var(--pa-border-color); // RTL: flips
101
+ }
102
+ }
103
+
104
+ &__button {
105
+ border-radius: 0;
106
+
107
+ &:first-child {
108
+ border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
109
+ border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
110
+ }
111
+
112
+ &:last-child {
113
+ border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
114
+ border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
115
+ }
116
+ }
117
+
118
+ // Input group sizes - match prepend/append to input sizes
119
+ &--xs {
120
+ .pa-input-group__prepend,
121
+ .pa-input-group__append {
122
+ height: #{$base-input-size-xs-height}rem;
123
+ line-height: #{$base-input-size-xs-height}rem;
124
+ font-size: $font-size-xs;
125
+ }
126
+ }
127
+
128
+ &--sm {
129
+ .pa-input-group__prepend,
130
+ .pa-input-group__append {
131
+ height: #{$base-input-size-sm-height}rem;
132
+ line-height: #{$base-input-size-sm-height}rem;
133
+ font-size: $font-size-sm;
134
+ }
135
+ }
136
+
137
+ &--lg {
138
+ .pa-input-group__prepend,
139
+ .pa-input-group__append {
140
+ height: #{$base-input-size-lg-height}rem;
141
+ line-height: #{$base-input-size-lg-height}rem;
142
+ font-size: $font-size-base;
143
+ }
144
+ }
145
+
146
+ &--xl {
147
+ .pa-input-group__prepend,
148
+ .pa-input-group__append {
149
+ height: #{$base-input-size-xl-height}rem;
150
+ line-height: #{$base-input-size-xl-height}rem;
151
+ font-size: $font-size-lg;
152
+ }
153
+ }
154
+ }
@@ -1,89 +1,89 @@
1
- /* ========================================
2
- Input Wrapper
3
- Input with clear button, search tokens container
4
- ======================================== */
5
- @use '../../variables' as *;
6
-
7
- // Input with clear button wrapper
8
- .pa-input-wrapper {
9
- position: relative;
10
- display: flex;
11
- flex-wrap: wrap;
12
- align-items: center;
13
- gap: $spacing-xs;
14
- width: 100%;
15
-
16
- .pa-input,
17
- .pa-select,
18
- .pa-virtual-textbox {
19
- flex: 1;
20
- min-width: 0; // Allow inputs to shrink below their content size
21
- padding-inline-end: 4rem; // RTL: flips to padding-left, make room for clear button
22
- }
23
-
24
- &__clear {
25
- position: absolute;
26
- inset-inline-end: $spacing-xs; // RTL: flips to left
27
- top: 50%;
28
- transform: translateY(-50%);
29
- background: transparent;
30
- border: none;
31
- color: var(--pa-text-color-2);
32
- cursor: pointer;
33
- padding: $spacing-xs;
34
- font-size: $font-size-base;
35
- line-height: 1;
36
- opacity: 0.6;
37
- transition: opacity $transition-fast $easing-snappy;
38
-
39
- &:hover {
40
- opacity: 1;
41
- color: $danger-bg;
42
- }
43
-
44
- &:focus {
45
- outline: none;
46
- opacity: 1;
47
- }
48
-
49
- // Hide when input is empty
50
- &--hidden {
51
- display: none;
52
- }
53
- }
54
- }
55
-
56
- // Search Tokens Container (for query builder badges)
57
- .pa-search-tokens {
58
- display: flex;
59
- flex-wrap: wrap;
60
- gap: $spacing-xs;
61
- align-items: center;
62
- }
63
-
64
- .pa-search-token-group {
65
- display: inline-flex;
66
- align-items: center;
67
- gap: 2px;
68
-
69
- .pa-badge {
70
- margin: 0;
71
- }
72
- }
73
-
74
- .pa-search-token-remove {
75
- margin-inline-start: $spacing-xs; // RTL: flips to margin-right
76
- padding: 0 $spacing-xs;
77
- border: none;
78
- background: transparent;
79
- color: currentColor;
80
- cursor: pointer;
81
- font-size: 1.2em;
82
- line-height: 1;
83
- opacity: 0.7;
84
- transition: opacity $transition-fast $easing-smooth;
85
-
86
- &:hover {
87
- opacity: 1;
88
- }
89
- }
1
+ /* ========================================
2
+ Input Wrapper
3
+ Input with clear button, search tokens container
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Input with clear button wrapper
8
+ .pa-input-wrapper {
9
+ position: relative;
10
+ display: flex;
11
+ flex-wrap: wrap;
12
+ align-items: center;
13
+ gap: $spacing-xs;
14
+ width: 100%;
15
+
16
+ .pa-input,
17
+ .pa-select,
18
+ .pa-virtual-textbox {
19
+ flex: 1;
20
+ min-width: 0; // Allow inputs to shrink below their content size
21
+ padding-inline-end: 4rem; // RTL: flips to padding-left, make room for clear button
22
+ }
23
+
24
+ &__clear {
25
+ position: absolute;
26
+ inset-inline-end: $spacing-xs; // RTL: flips to left
27
+ top: 50%;
28
+ transform: translateY(-50%);
29
+ background: transparent;
30
+ border: none;
31
+ color: var(--pa-text-color-2);
32
+ cursor: pointer;
33
+ padding: $spacing-xs;
34
+ font-size: $font-size-base;
35
+ line-height: 1;
36
+ opacity: 0.6;
37
+ transition: opacity $transition-fast $easing-snappy;
38
+
39
+ &:hover {
40
+ opacity: 1;
41
+ color: $danger-bg;
42
+ }
43
+
44
+ &:focus {
45
+ outline: none;
46
+ opacity: 1;
47
+ }
48
+
49
+ // Hide when input is empty
50
+ &--hidden {
51
+ display: none;
52
+ }
53
+ }
54
+ }
55
+
56
+ // Search Tokens Container (for query builder badges)
57
+ .pa-search-tokens {
58
+ display: flex;
59
+ flex-wrap: wrap;
60
+ gap: $spacing-xs;
61
+ align-items: center;
62
+ }
63
+
64
+ .pa-search-token-group {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ gap: 2px;
68
+
69
+ .pa-badge {
70
+ margin: 0;
71
+ }
72
+ }
73
+
74
+ .pa-search-token-remove {
75
+ margin-inline-start: $spacing-xs; // RTL: flips to margin-right
76
+ padding: 0 $spacing-xs;
77
+ border: none;
78
+ background: transparent;
79
+ color: currentColor;
80
+ cursor: pointer;
81
+ font-size: 1.2em;
82
+ line-height: 1;
83
+ opacity: 0.7;
84
+ transition: opacity $transition-fast $easing-smooth;
85
+
86
+ &:hover {
87
+ opacity: 1;
88
+ }
89
+ }