sdga-ui 1.0.11 → 1.0.13

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.
@@ -0,0 +1,245 @@
1
+ // Bootstrap Progress Indicator Component
2
+ .progress-indicator {
3
+ position: relative;
4
+
5
+ .step {
6
+ flex: 1;
7
+ text-align: start;
8
+ position: relative;
9
+
10
+ // Default line style (color and z-index)
11
+ // Content and position are handled by layout classes (.horizontal/.vertical)
12
+ &::after {
13
+ background-color: $gray-300;
14
+ z-index: 1;
15
+ }
16
+
17
+ &.hover {
18
+ cursor: pointer; // Make entire step clickable/hoverable
19
+
20
+ &.completed:hover {
21
+ .step-circle {
22
+ background-color: $primary-700;
23
+ border-color: $primary-700;
24
+ color: white;
25
+ }
26
+
27
+ &::after {
28
+ background-color: $primary-700;
29
+ }
30
+
31
+ }
32
+
33
+ &.upcoming:hover {
34
+ .step-circle {
35
+ border-color: $gray-400;
36
+ color: $gray-400;
37
+ }
38
+
39
+ &::after {
40
+ background-color: $gray-400;
41
+ }
42
+ }
43
+ }
44
+
45
+ outline: none; // Remove default browser outline
46
+
47
+ // Base Circle Styles
48
+ .step-circle {
49
+ width: 2.25rem;
50
+ height: 2.25rem;
51
+ border-radius: 50%;
52
+ border: 2px solid $gray-300;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ background-color: $white;
57
+ color: $gray-300;
58
+ font-weight: $font-weight-semibold;
59
+ position: relative;
60
+ z-index: 2;
61
+ transition: all 0.3s ease;
62
+ }
63
+
64
+ .step-content {
65
+ transition: all 0.2s ease;
66
+ display: inline-block; // Allow border to hug content
67
+ border: 2px solid transparent; // Reserve space for border to avoid jump
68
+ padding-block: 4px 8px;
69
+ padding-inline-end: 4px;
70
+ border-radius: $radius-sm;
71
+ }
72
+
73
+ // State: Upcoming
74
+ &.upcoming {
75
+ .step-circle {
76
+ border-color: $gray-300;
77
+ background-color: $white;
78
+ color: $gray-300;
79
+ }
80
+
81
+ .step-title {
82
+ color: $gray-300;
83
+ }
84
+
85
+ .step-description {
86
+ color: $gray-500;
87
+ }
88
+ }
89
+
90
+ // State: Active
91
+ &.active {
92
+ .step-circle {
93
+ border-color: $primary;
94
+ background-color: $white;
95
+ color: $primary;
96
+ }
97
+
98
+ .step-title {
99
+ color: $primary;
100
+ font-weight: $font-weight-bold;
101
+ }
102
+
103
+ .step-description {
104
+ color: $gray-700;
105
+ }
106
+ }
107
+
108
+ // State: Completed
109
+ &.completed {
110
+ .step-circle {
111
+ background-color: $primary;
112
+ border-color: $primary;
113
+ color: $white;
114
+ }
115
+
116
+ .step-title {
117
+ color: $primary;
118
+ font-weight: $font-weight-semibold;
119
+ }
120
+
121
+ .step-description {
122
+ color: $gray-300;
123
+ }
124
+
125
+ &::after {
126
+ background-color: $primary;
127
+ }
128
+ }
129
+
130
+ // Focus States - Placed last to override other states
131
+ &:focus-visible,
132
+ &.focused,
133
+ &:focus {
134
+ outline: none !important;
135
+
136
+ .step-circle {
137
+ // Create a ring effect: white gap then dark ring
138
+ // This overrides any state-specific shadows due to cascade order
139
+ box-shadow: 0 0 0 2px $white, 0 0 0 5px $dark;
140
+ }
141
+
142
+ .step-content {
143
+ border: 2px solid $dark;
144
+ background-color: rgba($white, 0.5);
145
+ }
146
+ }
147
+ }
148
+
149
+ // // Pulse animation for active state
150
+ // @keyframes pulse {
151
+ // 0% {
152
+ // box-shadow: 0 0 0 0 rgba($primary, 0.4);
153
+ // }
154
+ // 70% {
155
+ // box-shadow: 0 0 0 8px rgba($primary, 0);
156
+ // }
157
+ // 100% {
158
+ // box-shadow: 0 0 0 0 rgba($primary, 0);
159
+ // }
160
+ // }
161
+
162
+ // Horizontal layout (default)
163
+ &.horizontal {
164
+ .progress-steps {
165
+ display: flex;
166
+ flex-direction: row;
167
+ align-items: start;
168
+ flex-wrap: wrap;
169
+ }
170
+
171
+ .step {
172
+ display: flex;
173
+ flex-direction: column;
174
+ align-items: start;
175
+ text-align: start;
176
+ position: relative;
177
+ flex: 1;
178
+ max-width: 12.5rem;
179
+ max-height: 12.5rem;
180
+ }
181
+
182
+ .step-circle {
183
+ margin: 0 0 .75rem 0;
184
+ }
185
+
186
+
187
+ .step:not(:last-child)::after {
188
+ content: '';
189
+ position: absolute;
190
+ top: 1.125rem;
191
+ inset-inline-start: 2.25rem;
192
+ inset-inline-end: 0;
193
+ height: .125rem;
194
+ // background-color: $gray-300; // Moved to base .step::after
195
+ // z-index: 1; // Moved to base .step::after
196
+ }
197
+ }
198
+
199
+ // Vertical layout
200
+ &.vertical {
201
+ .progress-steps {
202
+ display: flex;
203
+ flex-direction: column;
204
+ max-width: 18.75rem;
205
+ }
206
+
207
+ .step {
208
+ display: flex;
209
+ align-items: flex-start;
210
+ position: relative;
211
+ padding: 0 0 1.25rem 0;
212
+ }
213
+
214
+ .step-circle {
215
+ margin: 0 1rem 0 0;
216
+ flex-shrink: 0;
217
+ }
218
+
219
+ .step-content {
220
+ flex: 1;
221
+ }
222
+
223
+ .step:not(:last-child)::after {
224
+ content: '';
225
+ position: absolute;
226
+ top: 1.125rem;
227
+ left: calc(1.125rem - 1px);
228
+ bottom: 0px;
229
+ width: .125rem;
230
+ // background-color: $gray-300; // Moved to base .step::after
231
+ z-index: 0; // Vertical needs different z-index? No, usually fine, but verify.
232
+ // Vertical line z-index was 0 in original code
233
+ z-index: 0 !important; // Force 0 if needed or just set 0 here to override base 1
234
+ }
235
+
236
+ .step:last-child {
237
+ padding-bottom: 0;
238
+ }
239
+ }
240
+ }
241
+
242
+ // Legacy class support
243
+ .progress-steps {
244
+ position: relative;
245
+ }
package/theme/dga-ui.scss CHANGED
@@ -28,3 +28,4 @@
28
28
  @import './customizations/tables';
29
29
  @import './customizations/footer';
30
30
  @import './customizations/navbar';
31
+ @import './customizations/progress-indicator';
@@ -1,47 +0,0 @@
1
- // Bootstrap 5.3 - Form Select Variables
2
-
3
- // ============================================
4
- // FORM SELECT
5
- // ============================================
6
-
7
- $form-select-padding-y: $input-padding-y;
8
- $form-select-padding-x: $input-padding-x;
9
- $form-select-font-family: $input-font-family;
10
- $form-select-font-size: $input-font-size;
11
- $form-select-indicator-padding: 1rem;
12
- $form-select-font-weight: $input-font-weight;
13
- $form-select-line-height: $input-line-height;
14
- $form-select-color: $input-color;
15
- $form-select-bg: $input-bg;
16
- $form-select-disabled-color: null;
17
- $form-select-disabled-bg: $gray-200;
18
- $form-select-disabled-border-color: $input-disabled-border-color;
19
- $form-select-bg-position: right $form-select-padding-x center;
20
- $form-select-bg-size: 16px 12px;
21
- $form-select-indicator-color: $gray-800;
22
- $form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>");
23
-
24
- $form-select-feedback-icon-padding-end: calc((1em + #{$form-select-padding-x * 2}) * 3 / 4 + #{$form-select-indicator-padding});
25
- $form-select-feedback-icon-position: center right $form-select-indicator-padding;
26
- $form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half;
27
-
28
- $form-select-border-width: $input-border-width;
29
- $form-select-border-color: $input-border-color;
30
- $form-select-border-radius: $input-border-radius;
31
- $form-select-box-shadow: $input-box-shadow;
32
-
33
- $form-select-focus-border-color: $input-focus-border-color;
34
- $form-select-focus-width: $input-focus-width;
35
- $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width rgba($primary, 0.25);
36
-
37
- $form-select-padding-y-sm: $input-padding-y-sm;
38
- $form-select-padding-x-sm: $input-padding-x-sm;
39
- $form-select-font-size-sm: $input-font-size-sm;
40
- $form-select-border-radius-sm: $input-border-radius-sm;
41
-
42
- $form-select-padding-y-lg: $input-padding-y-lg;
43
- $form-select-padding-x-lg: $input-padding-x-lg;
44
- $form-select-font-size-lg: $input-font-size-lg;
45
- $form-select-border-radius-lg: $input-border-radius-lg;
46
-
47
- $form-select-transition: $input-transition;