@keenmate/pure-admin-core 1.0.0 → 1.1.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.
- package/README.md +77 -7
- package/dist/css/main.css +792 -431
- package/package.json +1 -1
- package/snippets/customization.html +1 -1
- package/snippets/layout.html +4 -4
- package/snippets/manifest.json +0 -50
- package/snippets/profile.html +51 -3
- package/src/scss/_base-css-variables.scss +432 -422
- package/src/scss/_core.scss +105 -105
- package/src/scss/_fonts.scss +0 -14
- package/src/scss/_variables.scss +12 -14
- package/src/scss/core-components/_alerts.scss +7 -7
- package/src/scss/core-components/_base.scss +3 -3
- package/src/scss/core-components/_buttons.scss +425 -425
- package/src/scss/core-components/_callouts.scss +139 -139
- package/src/scss/core-components/_cards.scss +321 -321
- package/src/scss/core-components/_checkbox-lists.scss +2 -2
- package/src/scss/core-components/_code.scss +4 -4
- package/src/scss/core-components/_command-palette.scss +518 -518
- package/src/scss/core-components/_comparison.scss +3 -3
- package/src/scss/core-components/_file-selector.scss +780 -780
- package/src/scss/core-components/_forms.scss +16 -16
- package/src/scss/core-components/_layout.scss +15 -15
- package/src/scss/core-components/_lists.scss +7 -7
- package/src/scss/core-components/_logic-tree.scss +280 -280
- package/src/scss/core-components/_modals.scss +2 -2
- package/src/scss/core-components/_notifications.scss +7 -7
- package/src/scss/core-components/_pagers.scss +3 -3
- package/src/scss/core-components/_popconfirm.scss +1 -1
- package/src/scss/core-components/_profile.scss +400 -389
- package/src/scss/core-components/_scrollbars.scss +40 -40
- package/src/scss/core-components/_settings-panel.scss +5 -5
- package/src/scss/core-components/_statistics.scss +6 -6
- package/src/scss/core-components/_tables.scss +566 -566
- package/src/scss/core-components/_tabs.scss +493 -493
- package/src/scss/core-components/_timeline.scss +15 -15
- package/src/scss/core-components/_toasts.scss +4 -4
- package/src/scss/core-components/_tooltips.scss +8 -8
- package/src/scss/core-components/_utilities.scss +11 -30
- package/src/scss/core-components/_web-components-theme.scss +294 -294
- package/src/scss/core-components/badges/_composite-badge-variants.scss +3 -3
- package/src/scss/core-components/badges/_labels.scss +1 -1
- package/src/scss/core-components/forms/_checkboxes-radios.scss +2 -2
- package/src/scss/core-components/forms/_form-inputs.scss +4 -4
- package/src/scss/core-components/forms/_form-layout.scss +2 -2
- package/src/scss/core-components/forms/_form-states.scss +1 -1
- package/src/scss/core-components/forms/_input-wrapper.scss +1 -1
- package/src/scss/core-components/forms/_query-editor.scss +17 -17
- package/src/scss/core-components/layout/_layout-container.scss +1 -1
- package/src/scss/core-components/layout/_navbar-elements.scss +1 -1
- package/src/scss/core-components/layout/_sidebar.scss +5 -5
- package/src/scss/utilities.scss +24 -0
- package/src/scss/variables/_base.scss +20 -10
- package/src/scss/variables/_colors.scss +7 -6
- package/src/scss/variables/_components.scss +8 -11
- package/src/scss/variables/_index.scss +11 -7
- package/src/scss/variables/_spacing.scss +12 -0
- package/src/scss/variables/_typography.scss +2 -2
- package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
- package/src/scss/themes/_dark-base.scss +0 -207
- package/src/scss/themes/audi-light.scss +0 -341
- package/src/scss/themes/audi.scss +0 -303
- package/src/scss/themes/corporate.scss +0 -229
- package/src/scss/themes/dark-blue.scss +0 -165
- package/src/scss/themes/dark-green.scss +0 -169
- package/src/scss/themes/dark-red.scss +0 -173
- package/src/scss/themes/dark.scss +0 -158
- package/src/scss/themes/express.scss +0 -294
- package/src/scss/themes/minimal.scss +0 -134
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Form Components
|
|
3
|
-
Form groups, inputs, selects, textareas, checkboxes, radio buttons, states
|
|
4
|
-
======================================== */
|
|
5
|
-
|
|
6
|
-
// ============================================================================
|
|
7
|
-
// BACKWARD COMPATIBILITY AGGREGATOR
|
|
8
|
-
// This file re-exports all form components from the modular forms/ directory.
|
|
9
|
-
// For new code, prefer importing from forms/ directly:
|
|
10
|
-
// @use 'forms' as *;
|
|
11
|
-
// or specific modules:
|
|
12
|
-
// @use 'forms/form-inputs';
|
|
13
|
-
// @use 'forms/checkboxes-radios';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
|
|
16
|
-
@forward 'forms/index';
|
|
1
|
+
/* ========================================
|
|
2
|
+
Form Components
|
|
3
|
+
Form groups, inputs, selects, textareas, checkboxes, radio buttons, states
|
|
4
|
+
======================================== */
|
|
5
|
+
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// BACKWARD COMPATIBILITY AGGREGATOR
|
|
8
|
+
// This file re-exports all form components from the modular forms/ directory.
|
|
9
|
+
// For new code, prefer importing from forms/ directly:
|
|
10
|
+
// @use 'forms' as *;
|
|
11
|
+
// or specific modules:
|
|
12
|
+
// @use 'forms/form-inputs';
|
|
13
|
+
// @use 'forms/checkboxes-radios';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
|
|
16
|
+
@forward 'forms/index';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Layout V2 - Based on Testbench Structure
|
|
3
|
-
======================================== */
|
|
4
|
-
|
|
5
|
-
// ============================================================================
|
|
6
|
-
// BACKWARD COMPATIBILITY AGGREGATOR
|
|
7
|
-
// This file re-exports all layout components from the modular layout/ directory.
|
|
8
|
-
// For new code, prefer importing from layout/ directly:
|
|
9
|
-
// @use 'layout' as *;
|
|
10
|
-
// or specific modules:
|
|
11
|
-
// @use 'layout/navbar';
|
|
12
|
-
// @use 'layout/sidebar';
|
|
13
|
-
// ============================================================================
|
|
14
|
-
|
|
15
|
-
@forward 'layout/index';
|
|
1
|
+
/* ========================================
|
|
2
|
+
Layout V2 - Based on Testbench Structure
|
|
3
|
+
======================================== */
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// BACKWARD COMPATIBILITY AGGREGATOR
|
|
7
|
+
// This file re-exports all layout components from the modular layout/ directory.
|
|
8
|
+
// For new code, prefer importing from layout/ directly:
|
|
9
|
+
// @use 'layout' as *;
|
|
10
|
+
// or specific modules:
|
|
11
|
+
// @use 'layout/navbar';
|
|
12
|
+
// @use 'layout/sidebar';
|
|
13
|
+
// ============================================================================
|
|
14
|
+
|
|
15
|
+
@forward 'layout/index';
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
|
|
121
121
|
dt {
|
|
122
122
|
font-weight: $font-weight-semibold;
|
|
123
|
-
color: var(--pa-text-
|
|
123
|
+
color: var(--pa-text-color-1);
|
|
124
124
|
margin-bottom: $spacing-xs;
|
|
125
125
|
margin-top: $spacing-base;
|
|
126
126
|
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
dd {
|
|
133
133
|
margin-left: $spacing-lg;
|
|
134
134
|
margin-bottom: $spacing-sm;
|
|
135
|
-
color: var(--pa-text-
|
|
135
|
+
color: var(--pa-text-color-2);
|
|
136
136
|
line-height: 1.6;
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
&:hover {
|
|
176
|
-
background-color: var(--pa-
|
|
176
|
+
background-color: var(--pa-main-bg);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
width: $btn-icon-only-size;
|
|
182
182
|
height: $btn-icon-only-size;
|
|
183
183
|
border-radius: 50%;
|
|
184
|
-
background-color: var(--pa-
|
|
184
|
+
background-color: var(--pa-main-bg);
|
|
185
185
|
display: flex;
|
|
186
186
|
align-items: center;
|
|
187
187
|
justify-content: center;
|
|
@@ -194,18 +194,18 @@
|
|
|
194
194
|
|
|
195
195
|
&__title {
|
|
196
196
|
font-weight: $font-weight-medium;
|
|
197
|
-
color: var(--pa-text-
|
|
197
|
+
color: var(--pa-text-color-1);
|
|
198
198
|
margin-bottom: $spacing-xs;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
&__subtitle {
|
|
202
|
-
color: var(--pa-text-
|
|
202
|
+
color: var(--pa-text-color-2);
|
|
203
203
|
font-size: $font-size-sm;
|
|
204
204
|
margin-bottom: $spacing-xs;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
&__meta {
|
|
208
|
-
color: var(--pa-text-
|
|
208
|
+
color: var(--pa-text-color-2);
|
|
209
209
|
font-size: $font-size-xs;
|
|
210
210
|
}
|
|
211
211
|
}
|
|
@@ -1,280 +1,280 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Logic Tree Renderer - Scratch-style visual query representation
|
|
3
|
-
* Renders nested blocks showing logical flow and precedence
|
|
4
|
-
*/
|
|
5
|
-
@use '../variables' as *;
|
|
6
|
-
|
|
7
|
-
.pa-logic-tree {
|
|
8
|
-
padding: $spacing-base;
|
|
9
|
-
background: #f9fafb;
|
|
10
|
-
border-radius: $border-radius;
|
|
11
|
-
min-height: 6.4rem;
|
|
12
|
-
font-family: $body-font-family;
|
|
13
|
-
|
|
14
|
-
// Empty state
|
|
15
|
-
&__empty {
|
|
16
|
-
text-align: center;
|
|
17
|
-
color: var(--pa-text-
|
|
18
|
-
padding: $spacing-xl;
|
|
19
|
-
font-style: italic;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Empty branch (incomplete query)
|
|
23
|
-
&__empty-branch {
|
|
24
|
-
color: var(--pa-text-
|
|
25
|
-
font-style: italic;
|
|
26
|
-
padding: $spacing-sm $spacing-md;
|
|
27
|
-
background: #f9fafb;
|
|
28
|
-
border: 1.6px dashed #d1d5db;
|
|
29
|
-
border-radius: $border-radius-sm;
|
|
30
|
-
text-align: center;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Node wrapper
|
|
34
|
-
&__node {
|
|
35
|
-
margin-bottom: $spacing-sm;
|
|
36
|
-
|
|
37
|
-
&:last-child {
|
|
38
|
-
margin-bottom: 0;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Block (condition, logical, group)
|
|
43
|
-
&__block {
|
|
44
|
-
background: #fff;
|
|
45
|
-
border: 3.2px solid var(--pa-border-color);
|
|
46
|
-
border-radius: $border-radius;
|
|
47
|
-
padding: $spacing-sm;
|
|
48
|
-
position: relative;
|
|
49
|
-
transition: box-shadow 0.32s $easing-smooth;
|
|
50
|
-
|
|
51
|
-
&:hover {
|
|
52
|
-
box-shadow: $shadow-sm;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Condition block (field operator value)
|
|
56
|
-
&--condition {
|
|
57
|
-
background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
|
|
58
|
-
border-color: var(--pa-
|
|
59
|
-
border-left-width: 6.4px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Logical operator blocks
|
|
63
|
-
&--logical {
|
|
64
|
-
padding: $spacing-md;
|
|
65
|
-
background: #fff;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
&--and {
|
|
69
|
-
border-color: $warning-bg;
|
|
70
|
-
background: linear-gradient(135deg, #fff8e1 0%, #ffffff 100%);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
&--or {
|
|
74
|
-
border-color: $info-bg;
|
|
75
|
-
background: linear-gradient(135deg, #e3f2fd 0%, #ffffff 100%);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Group block (parentheses)
|
|
79
|
-
&--group {
|
|
80
|
-
border-color: $secondary-bg;
|
|
81
|
-
border-style: dashed;
|
|
82
|
-
background: linear-gradient(135deg, #f3f4f6 0%, #ffffff 100%);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Block content for conditions
|
|
87
|
-
&__block-content {
|
|
88
|
-
display: flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
gap: $spacing-sm;
|
|
91
|
-
flex-wrap: wrap;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Tree structure container
|
|
95
|
-
&__tree-structure {
|
|
96
|
-
position: relative;
|
|
97
|
-
padding-left: 3.2rem;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Tree branch (left or right operand)
|
|
101
|
-
&__tree-branch {
|
|
102
|
-
position: relative;
|
|
103
|
-
padding-left: 2.4rem;
|
|
104
|
-
|
|
105
|
-
// Vertical line connector
|
|
106
|
-
&::before {
|
|
107
|
-
content: '';
|
|
108
|
-
position: absolute;
|
|
109
|
-
left: 0;
|
|
110
|
-
top: 0;
|
|
111
|
-
bottom: 50%;
|
|
112
|
-
width: 3.2px;
|
|
113
|
-
background: #94a3b8;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Horizontal line connector
|
|
117
|
-
&::after {
|
|
118
|
-
content: '';
|
|
119
|
-
position: absolute;
|
|
120
|
-
left: 0;
|
|
121
|
-
top: 1.6rem;
|
|
122
|
-
width: 1.6rem;
|
|
123
|
-
height: 3.2px;
|
|
124
|
-
background: #94a3b8;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Left branch - extends vertical line down
|
|
128
|
-
&--left {
|
|
129
|
-
margin-bottom: 0.8rem;
|
|
130
|
-
|
|
131
|
-
&::before {
|
|
132
|
-
bottom: 0;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Right branch - no bottom extension
|
|
137
|
-
&--right {
|
|
138
|
-
margin-top: 0.8rem;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Operator node in tree
|
|
143
|
-
&__tree-operator {
|
|
144
|
-
position: relative;
|
|
145
|
-
padding-left: 2.4rem;
|
|
146
|
-
margin: 0.8rem 0;
|
|
147
|
-
|
|
148
|
-
// Vertical line through operator
|
|
149
|
-
&::before {
|
|
150
|
-
content: '';
|
|
151
|
-
position: absolute;
|
|
152
|
-
left: 0;
|
|
153
|
-
top: -0.8rem;
|
|
154
|
-
bottom: -0.8rem;
|
|
155
|
-
width: 3.2px;
|
|
156
|
-
background: #94a3b8;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Horizontal line to operator
|
|
160
|
-
&::after {
|
|
161
|
-
content: '';
|
|
162
|
-
position: absolute;
|
|
163
|
-
left: 0;
|
|
164
|
-
top: 50%;
|
|
165
|
-
transform: translateY(-50%);
|
|
166
|
-
width: 1.6rem;
|
|
167
|
-
height: 3.2px;
|
|
168
|
-
background: #94a3b8;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.pa-logic-tree__token--logical {
|
|
172
|
-
display: inline-block;
|
|
173
|
-
background: #fff3e0;
|
|
174
|
-
color: #e65100;
|
|
175
|
-
border: 3.2px solid #ff9800;
|
|
176
|
-
padding: 0.4rem 1.2rem;
|
|
177
|
-
border-radius: $border-radius;
|
|
178
|
-
font-weight: $font-weight-bold;
|
|
179
|
-
text-transform: uppercase;
|
|
180
|
-
letter-spacing: 0.05em;
|
|
181
|
-
box-shadow: 0 1.6px 4.8px rgba(0, 0, 0, 0.1);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Group label
|
|
186
|
-
&__group-label {
|
|
187
|
-
font-weight: $font-weight-medium;
|
|
188
|
-
font-size: $font-size-sm;
|
|
189
|
-
color: var(--pa-text-
|
|
190
|
-
margin-bottom: $spacing-sm;
|
|
191
|
-
padding-bottom: $spacing-sm;
|
|
192
|
-
border-bottom: 1.6px dashed $border-color;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// Group content (indented)
|
|
196
|
-
&__group-content {
|
|
197
|
-
padding-left: $spacing-md;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Token representation (colored badges)
|
|
201
|
-
&__token {
|
|
202
|
-
display: inline-block;
|
|
203
|
-
padding: 0.4rem 0.8rem;
|
|
204
|
-
border-radius: $border-radius-sm;
|
|
205
|
-
font-size: $font-size-xs;
|
|
206
|
-
font-weight: $font-weight-medium;
|
|
207
|
-
font-family: $font-stack-mono;
|
|
208
|
-
white-space: nowrap;
|
|
209
|
-
|
|
210
|
-
// Field token (blue)
|
|
211
|
-
&--field {
|
|
212
|
-
background: #e3f2fd;
|
|
213
|
-
color: #1565c0;
|
|
214
|
-
border: 1.6px solid #bbdefb;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Operator token (gray)
|
|
218
|
-
&--operator {
|
|
219
|
-
background: #f5f5f5;
|
|
220
|
-
color: #616161;
|
|
221
|
-
border: 1.6px solid #e0e0e0;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// Value token (green)
|
|
225
|
-
&--value {
|
|
226
|
-
background: #e8f5e9;
|
|
227
|
-
color: #2e7d32;
|
|
228
|
-
border: 1.6px solid #c8e6c9;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Logical token (orange/blue)
|
|
232
|
-
&--logical {
|
|
233
|
-
background: #fff3e0;
|
|
234
|
-
color: #e65100;
|
|
235
|
-
border: 1.6px solid #ffe0b2;
|
|
236
|
-
font-weight: $font-weight-bold;
|
|
237
|
-
text-transform: uppercase;
|
|
238
|
-
letter-spacing: 0.05em;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Paren token (purple)
|
|
242
|
-
&--paren {
|
|
243
|
-
background: #f3e5f5;
|
|
244
|
-
color: #7b1fa2;
|
|
245
|
-
border: 1.6px solid #e1bee7;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
// Animation for tree building
|
|
250
|
-
&--animated {
|
|
251
|
-
.pa-logic-tree__node {
|
|
252
|
-
animation: slideIn 0.48s $easing-smooth;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
.pa-logic-tree__block {
|
|
256
|
-
animation: fadeIn 0.64s $easing-smooth;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// Animations
|
|
262
|
-
@keyframes slideIn {
|
|
263
|
-
from {
|
|
264
|
-
opacity: 0;
|
|
265
|
-
transform: translateX(-16px);
|
|
266
|
-
}
|
|
267
|
-
to {
|
|
268
|
-
opacity: 1;
|
|
269
|
-
transform: translateX(0);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
@keyframes fadeIn {
|
|
274
|
-
from {
|
|
275
|
-
opacity: 0;
|
|
276
|
-
}
|
|
277
|
-
to {
|
|
278
|
-
opacity: 1;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Logic Tree Renderer - Scratch-style visual query representation
|
|
3
|
+
* Renders nested blocks showing logical flow and precedence
|
|
4
|
+
*/
|
|
5
|
+
@use '../variables' as *;
|
|
6
|
+
|
|
7
|
+
.pa-logic-tree {
|
|
8
|
+
padding: $spacing-base;
|
|
9
|
+
background: #f9fafb;
|
|
10
|
+
border-radius: $border-radius;
|
|
11
|
+
min-height: 6.4rem;
|
|
12
|
+
font-family: $body-font-family;
|
|
13
|
+
|
|
14
|
+
// Empty state
|
|
15
|
+
&__empty {
|
|
16
|
+
text-align: center;
|
|
17
|
+
color: var(--pa-text-color-2);
|
|
18
|
+
padding: $spacing-xl;
|
|
19
|
+
font-style: italic;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Empty branch (incomplete query)
|
|
23
|
+
&__empty-branch {
|
|
24
|
+
color: var(--pa-text-color-2);
|
|
25
|
+
font-style: italic;
|
|
26
|
+
padding: $spacing-sm $spacing-md;
|
|
27
|
+
background: #f9fafb;
|
|
28
|
+
border: 1.6px dashed #d1d5db;
|
|
29
|
+
border-radius: $border-radius-sm;
|
|
30
|
+
text-align: center;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Node wrapper
|
|
34
|
+
&__node {
|
|
35
|
+
margin-bottom: $spacing-sm;
|
|
36
|
+
|
|
37
|
+
&:last-child {
|
|
38
|
+
margin-bottom: 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Block (condition, logical, group)
|
|
43
|
+
&__block {
|
|
44
|
+
background: #fff;
|
|
45
|
+
border: 3.2px solid var(--pa-border-color);
|
|
46
|
+
border-radius: $border-radius;
|
|
47
|
+
padding: $spacing-sm;
|
|
48
|
+
position: relative;
|
|
49
|
+
transition: box-shadow 0.32s $easing-smooth;
|
|
50
|
+
|
|
51
|
+
&:hover {
|
|
52
|
+
box-shadow: $shadow-sm;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Condition block (field operator value)
|
|
56
|
+
&--condition {
|
|
57
|
+
background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
|
|
58
|
+
border-color: var(--pa-main-bg);
|
|
59
|
+
border-left-width: 6.4px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Logical operator blocks
|
|
63
|
+
&--logical {
|
|
64
|
+
padding: $spacing-md;
|
|
65
|
+
background: #fff;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&--and {
|
|
69
|
+
border-color: $warning-bg;
|
|
70
|
+
background: linear-gradient(135deg, #fff8e1 0%, #ffffff 100%);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&--or {
|
|
74
|
+
border-color: $info-bg;
|
|
75
|
+
background: linear-gradient(135deg, #e3f2fd 0%, #ffffff 100%);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Group block (parentheses)
|
|
79
|
+
&--group {
|
|
80
|
+
border-color: $secondary-bg;
|
|
81
|
+
border-style: dashed;
|
|
82
|
+
background: linear-gradient(135deg, #f3f4f6 0%, #ffffff 100%);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Block content for conditions
|
|
87
|
+
&__block-content {
|
|
88
|
+
display: flex;
|
|
89
|
+
align-items: center;
|
|
90
|
+
gap: $spacing-sm;
|
|
91
|
+
flex-wrap: wrap;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Tree structure container
|
|
95
|
+
&__tree-structure {
|
|
96
|
+
position: relative;
|
|
97
|
+
padding-left: 3.2rem;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Tree branch (left or right operand)
|
|
101
|
+
&__tree-branch {
|
|
102
|
+
position: relative;
|
|
103
|
+
padding-left: 2.4rem;
|
|
104
|
+
|
|
105
|
+
// Vertical line connector
|
|
106
|
+
&::before {
|
|
107
|
+
content: '';
|
|
108
|
+
position: absolute;
|
|
109
|
+
left: 0;
|
|
110
|
+
top: 0;
|
|
111
|
+
bottom: 50%;
|
|
112
|
+
width: 3.2px;
|
|
113
|
+
background: #94a3b8;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Horizontal line connector
|
|
117
|
+
&::after {
|
|
118
|
+
content: '';
|
|
119
|
+
position: absolute;
|
|
120
|
+
left: 0;
|
|
121
|
+
top: 1.6rem;
|
|
122
|
+
width: 1.6rem;
|
|
123
|
+
height: 3.2px;
|
|
124
|
+
background: #94a3b8;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Left branch - extends vertical line down
|
|
128
|
+
&--left {
|
|
129
|
+
margin-bottom: 0.8rem;
|
|
130
|
+
|
|
131
|
+
&::before {
|
|
132
|
+
bottom: 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Right branch - no bottom extension
|
|
137
|
+
&--right {
|
|
138
|
+
margin-top: 0.8rem;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Operator node in tree
|
|
143
|
+
&__tree-operator {
|
|
144
|
+
position: relative;
|
|
145
|
+
padding-left: 2.4rem;
|
|
146
|
+
margin: 0.8rem 0;
|
|
147
|
+
|
|
148
|
+
// Vertical line through operator
|
|
149
|
+
&::before {
|
|
150
|
+
content: '';
|
|
151
|
+
position: absolute;
|
|
152
|
+
left: 0;
|
|
153
|
+
top: -0.8rem;
|
|
154
|
+
bottom: -0.8rem;
|
|
155
|
+
width: 3.2px;
|
|
156
|
+
background: #94a3b8;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Horizontal line to operator
|
|
160
|
+
&::after {
|
|
161
|
+
content: '';
|
|
162
|
+
position: absolute;
|
|
163
|
+
left: 0;
|
|
164
|
+
top: 50%;
|
|
165
|
+
transform: translateY(-50%);
|
|
166
|
+
width: 1.6rem;
|
|
167
|
+
height: 3.2px;
|
|
168
|
+
background: #94a3b8;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.pa-logic-tree__token--logical {
|
|
172
|
+
display: inline-block;
|
|
173
|
+
background: #fff3e0;
|
|
174
|
+
color: #e65100;
|
|
175
|
+
border: 3.2px solid #ff9800;
|
|
176
|
+
padding: 0.4rem 1.2rem;
|
|
177
|
+
border-radius: $border-radius;
|
|
178
|
+
font-weight: $font-weight-bold;
|
|
179
|
+
text-transform: uppercase;
|
|
180
|
+
letter-spacing: 0.05em;
|
|
181
|
+
box-shadow: 0 1.6px 4.8px rgba(0, 0, 0, 0.1);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Group label
|
|
186
|
+
&__group-label {
|
|
187
|
+
font-weight: $font-weight-medium;
|
|
188
|
+
font-size: $font-size-sm;
|
|
189
|
+
color: var(--pa-text-color-2);
|
|
190
|
+
margin-bottom: $spacing-sm;
|
|
191
|
+
padding-bottom: $spacing-sm;
|
|
192
|
+
border-bottom: 1.6px dashed $border-color;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Group content (indented)
|
|
196
|
+
&__group-content {
|
|
197
|
+
padding-left: $spacing-md;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Token representation (colored badges)
|
|
201
|
+
&__token {
|
|
202
|
+
display: inline-block;
|
|
203
|
+
padding: 0.4rem 0.8rem;
|
|
204
|
+
border-radius: $border-radius-sm;
|
|
205
|
+
font-size: $font-size-xs;
|
|
206
|
+
font-weight: $font-weight-medium;
|
|
207
|
+
font-family: $font-stack-mono;
|
|
208
|
+
white-space: nowrap;
|
|
209
|
+
|
|
210
|
+
// Field token (blue)
|
|
211
|
+
&--field {
|
|
212
|
+
background: #e3f2fd;
|
|
213
|
+
color: #1565c0;
|
|
214
|
+
border: 1.6px solid #bbdefb;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Operator token (gray)
|
|
218
|
+
&--operator {
|
|
219
|
+
background: #f5f5f5;
|
|
220
|
+
color: #616161;
|
|
221
|
+
border: 1.6px solid #e0e0e0;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Value token (green)
|
|
225
|
+
&--value {
|
|
226
|
+
background: #e8f5e9;
|
|
227
|
+
color: #2e7d32;
|
|
228
|
+
border: 1.6px solid #c8e6c9;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Logical token (orange/blue)
|
|
232
|
+
&--logical {
|
|
233
|
+
background: #fff3e0;
|
|
234
|
+
color: #e65100;
|
|
235
|
+
border: 1.6px solid #ffe0b2;
|
|
236
|
+
font-weight: $font-weight-bold;
|
|
237
|
+
text-transform: uppercase;
|
|
238
|
+
letter-spacing: 0.05em;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Paren token (purple)
|
|
242
|
+
&--paren {
|
|
243
|
+
background: #f3e5f5;
|
|
244
|
+
color: #7b1fa2;
|
|
245
|
+
border: 1.6px solid #e1bee7;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Animation for tree building
|
|
250
|
+
&--animated {
|
|
251
|
+
.pa-logic-tree__node {
|
|
252
|
+
animation: slideIn 0.48s $easing-smooth;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.pa-logic-tree__block {
|
|
256
|
+
animation: fadeIn 0.64s $easing-smooth;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Animations
|
|
262
|
+
@keyframes slideIn {
|
|
263
|
+
from {
|
|
264
|
+
opacity: 0;
|
|
265
|
+
transform: translateX(-16px);
|
|
266
|
+
}
|
|
267
|
+
to {
|
|
268
|
+
opacity: 1;
|
|
269
|
+
transform: translateX(0);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
@keyframes fadeIn {
|
|
274
|
+
from {
|
|
275
|
+
opacity: 0;
|
|
276
|
+
}
|
|
277
|
+
to {
|
|
278
|
+
opacity: 1;
|
|
279
|
+
}
|
|
280
|
+
}
|