@acontplus/ng-components 1.0.7 → 1.0.8

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/index.d.ts CHANGED
@@ -553,8 +553,6 @@ declare class SpinnerComponent {
553
553
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "acp-spinner", never, {}, {}, never, never, true, never>;
554
554
  }
555
555
 
556
- type SnackbarType = 'success' | 'warning' | 'info' | 'error';
557
-
558
556
  interface TabulatorColumn {
559
557
  title: string;
560
558
  field: string;
@@ -990,4 +988,4 @@ declare class StatusDisplayPipe implements PipeTransform {
990
988
  }
991
989
 
992
990
  export { AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG, AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG, AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG, AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG, ActiveRequestsTracker, AdvancedDialogService, AutocompleteWrapperService, ColumnDefinition, CustomTabulatorComponent, DYNAMIC_INPUT, DialogWrapperComponent, FieldDefinition, GetTotalPipe, IconUserComponent, MatDynamicCardComponent, MatDynamicTableComponent, MatInputChipComponent, MatThemeButtonComponent, OverlayService, Pagination, ReusableAutocompleteComponent, SpinnerComponent, StatusDisplayPipe, SvgIconComponent, TableCellIndex, ThemeService, ThemeToggleComponent, ToUpperCaseDirective, createAutocompleteWrapperConfig, spinnerInterceptor, withoutSpinner };
993
- export type { AutocompleteWrapperActions, AutocompleteWrapperConfig, AutocompleteWrapperEventHandler, AutocompleteWrapperEvents, AutocompleteWrapperFilters, AutocompleteWrapperItem, AutocompleteWrapperItemProperty, AutocompleteWrapperPaginationInfo, AutocompleteWrapperSearchField, AutocompleteWrapperSearchFunction, AutocompleteWrapperSearchMode, AutocompleteWrapperSearchResult, AutocompleteWrapperState, AutocompleteWrapperStockOption, ButtonType, ButtonVariant, ColumnType, ControlType, DateRangeConfig, DialogSize, DialogWrapperConfig, FieldType, MatCustomDialogConfig, MaterialButtonStyle, OptionSearchConfig, ReusableAutocompleteWrapperComponent, SnackbarType, TableContext, TableRow, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };
991
+ export type { AutocompleteWrapperActions, AutocompleteWrapperConfig, AutocompleteWrapperEventHandler, AutocompleteWrapperEvents, AutocompleteWrapperFilters, AutocompleteWrapperItem, AutocompleteWrapperItemProperty, AutocompleteWrapperPaginationInfo, AutocompleteWrapperSearchField, AutocompleteWrapperSearchFunction, AutocompleteWrapperSearchMode, AutocompleteWrapperSearchResult, AutocompleteWrapperState, AutocompleteWrapperStockOption, ButtonType, ButtonVariant, ColumnType, ControlType, DateRangeConfig, DialogSize, DialogWrapperConfig, FieldType, MatCustomDialogConfig, MaterialButtonStyle, OptionSearchConfig, ReusableAutocompleteWrapperComponent, TableContext, TableRow, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@acontplus/ng-components",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Angular Material UI component library with dynamic tables, theming support, dialog wrappers, and comprehensive styling utilities",
5
+ "dependencies": {
6
+ "tabulator-tables": "^6.3.1",
7
+ "tslib": "^2.3.0"
8
+ },
5
9
  "peerDependencies": {
6
- "@acontplus/ng-core": "^1.0.6",
7
10
  "@angular/cdk": "^20.2.4",
8
11
  "@angular/common": "^20.3.1",
9
12
  "@angular/core": "^20.3.1",
10
- "@angular/material": "^20.2.4",
11
- "tabulator-tables": "^6.3.1"
13
+ "@angular/material": "^20.2.4"
12
14
  },
13
- "sideEffects": false,
15
+ "sideEffects": true,
14
16
  "main": "fesm2022/acontplus-ng-components.mjs",
15
17
  "module": "fesm2022/acontplus-ng-components.mjs",
16
18
  "typings": "index.d.ts",
@@ -18,7 +20,8 @@
18
20
  "index.d.ts",
19
21
  "*.d.ts",
20
22
  "**/*.d.ts",
21
- "fesm2022/**/*"
23
+ "fesm2022/**/*",
24
+ "src/**/*"
22
25
  ],
23
26
  "engines": {
24
27
  "node": ">=18.0.0"
@@ -79,8 +82,5 @@
79
82
  "types": "./index.d.ts",
80
83
  "default": "./fesm2022/acontplus-ng-components.mjs"
81
84
  }
82
- },
83
- "dependencies": {
84
- "tslib": "^2.3.0"
85
85
  }
86
86
  }
@@ -0,0 +1,469 @@
1
+ // src/styles/_custom-buttons.scss
2
+
3
+ // This is the mixin that will generate all our button CSS.
4
+ // It accepts one argument: the application's theme object ($theme).
5
+ @mixin custom-button-theme($theme) {
6
+ // Bootstrap 5.3+ Color Palette (hardcoded)
7
+ $bootstrap-colors: (
8
+ primary: #0d6efd,
9
+ secondary: #6c757d,
10
+ success: #198754,
11
+ danger: #dc3545,
12
+ warning: #ffc107,
13
+ info: #0dcaf0,
14
+ light: #f8f9fa,
15
+ dark: #212529,
16
+ );
17
+
18
+ // Bootstrap contrast colors
19
+ $bootstrap-contrast: (
20
+ primary: #ffffff,
21
+ secondary: #ffffff,
22
+ success: #ffffff,
23
+ danger: #ffffff,
24
+ warning: #000000,
25
+ info: #000000,
26
+ light: #000000,
27
+ dark: #ffffff,
28
+ );
29
+
30
+ // Generate the global CSS variables (:root)
31
+ :root {
32
+ // Bootstrap colors
33
+ --primary-color: #{map-get($bootstrap-colors, primary)};
34
+ --on-primary-color: #{map-get($bootstrap-contrast, primary)};
35
+ --secondary-color: #{map-get($bootstrap-colors, secondary)};
36
+ --on-secondary-color: #{map-get($bootstrap-contrast, secondary)};
37
+ --success-color: #{map-get($bootstrap-colors, success)};
38
+ --on-success-color: #{map-get($bootstrap-contrast, success)};
39
+ --danger-color: #{map-get($bootstrap-colors, danger)};
40
+ --on-danger-color: #{map-get($bootstrap-contrast, danger)};
41
+ --warning-color: #{map-get($bootstrap-colors, warning)};
42
+ --on-warning-color: #{map-get($bootstrap-contrast, warning)};
43
+ --info-color: #{map-get($bootstrap-colors, info)};
44
+ --on-info-color: #{map-get($bootstrap-contrast, info)};
45
+ --light-color: #{map-get($bootstrap-colors, light)};
46
+ --on-light-color: #{map-get($bootstrap-contrast, light)};
47
+ --dark-color: #{map-get($bootstrap-colors, dark)};
48
+ --on-dark-color: #{map-get($bootstrap-contrast, dark)};
49
+
50
+ // Surface colors (from theme if available, fallback to defaults)
51
+ --surface-color: #ffffff;
52
+ --on-surface-color: #000000;
53
+
54
+ // Tertiary and error colors (Bootstrap-like alternatives)
55
+ --tertiary-color: #6f42c1; // Bootstrap purple
56
+ --on-tertiary-color: #ffffff;
57
+ --error-color: var(--danger-color);
58
+ --on-error-color: var(--on-danger-color);
59
+ }
60
+
61
+ // Button styles using Material Design tokens structure
62
+
63
+ /* Icon and text spacing */
64
+ .button-icon {
65
+ margin-inline-end: 8px;
66
+ }
67
+
68
+ /* Icon-only button needs no margin */
69
+ .mat-icon-button .button-icon,
70
+ .mat-fab .button-icon,
71
+ .mat-mini-fab .button-icon {
72
+ margin-inline-end: 0;
73
+ }
74
+
75
+ /* Custom border radius for buttons */
76
+ .mat-mdc-button,
77
+ .mat-mdc-icon-button,
78
+ .mat-mdc-unelevated-button,
79
+ .mat-mdc-outlined-button {
80
+ --mat-text-button-container-shape: 20px;
81
+ --mat-outlined-button-container-shape: 20px;
82
+ --mat-filled-button-container-shape: 20px;
83
+ --mat-protected-button-container-shape: 20px;
84
+ //margin: 0.25rem;
85
+ border-radius: 20px;
86
+
87
+ // Ensure consistent height
88
+ --mat-standard-button-container-height: 40px;
89
+ min-height: 40px;
90
+ }
91
+
92
+ /* Filled Button Variants using Bootstrap colors */
93
+ .btn-primary {
94
+ --mat-filled-button-container-color: var(--primary-color);
95
+ --mat-filled-button-label-text-color: var(--on-primary-color);
96
+ --mat-filled-button-hover-label-text-color: var(--on-primary-color);
97
+ --mat-filled-button-focus-label-text-color: var(--on-primary-color);
98
+ background-color: var(--primary-color) !important;
99
+ color: var(--on-primary-color) !important;
100
+
101
+ &:hover {
102
+ background-color: #0b5ed7 !important; // Bootstrap primary hover
103
+ }
104
+ }
105
+
106
+ .btn-secondary {
107
+ --mat-filled-button-container-color: var(--secondary-color);
108
+ --mat-filled-button-label-text-color: var(--on-secondary-color);
109
+ --mat-filled-button-hover-label-text-color: var(--on-secondary-color);
110
+ --mat-filled-button-focus-label-text-color: var(--on-secondary-color);
111
+ background-color: var(--secondary-color) !important;
112
+ color: var(--on-secondary-color) !important;
113
+
114
+ &:hover {
115
+ background-color: #5c636a !important; // Bootstrap secondary hover
116
+ }
117
+ }
118
+
119
+ .btn-success {
120
+ --mat-filled-button-container-color: var(--success-color);
121
+ --mat-filled-button-label-text-color: var(--on-success-color);
122
+ --mat-filled-button-hover-label-text-color: var(--on-success-color);
123
+ --mat-filled-button-focus-label-text-color: var(--on-success-color);
124
+ background-color: var(--success-color) !important;
125
+ color: var(--on-success-color) !important;
126
+
127
+ &:hover {
128
+ background-color: #157347 !important; // Bootstrap success hover
129
+ }
130
+ }
131
+
132
+ .btn-danger {
133
+ --mat-filled-button-container-color: var(--danger-color);
134
+ --mat-filled-button-label-text-color: var(--on-danger-color);
135
+ --mat-filled-button-hover-label-text-color: var(--on-danger-color);
136
+ --mat-filled-button-focus-label-text-color: var(--on-danger-color);
137
+ background-color: var(--danger-color) !important;
138
+ color: var(--on-danger-color) !important;
139
+
140
+ &:hover {
141
+ background-color: #bb2d3b !important; // Bootstrap danger hover
142
+ }
143
+ }
144
+
145
+ .btn-warning {
146
+ --mat-filled-button-container-color: var(--warning-color);
147
+ --mat-filled-button-label-text-color: var(--on-warning-color);
148
+ --mat-filled-button-hover-label-text-color: var(--on-warning-color);
149
+ --mat-filled-button-focus-label-text-color: var(--on-warning-color);
150
+ background-color: var(--warning-color) !important;
151
+ color: var(--on-warning-color) !important;
152
+
153
+ &:hover {
154
+ background-color: #ffca2c !important; // Bootstrap warning hover
155
+ }
156
+ }
157
+
158
+ .btn-info {
159
+ --mat-filled-button-container-color: var(--info-color);
160
+ --mat-filled-button-label-text-color: var(--on-info-color);
161
+ --mat-filled-button-hover-label-text-color: var(--on-info-color);
162
+ --mat-filled-button-focus-label-text-color: var(--on-info-color);
163
+ background-color: var(--info-color) !important;
164
+ color: var(--on-info-color) !important;
165
+
166
+ &:hover {
167
+ background-color: #31d2f2 !important; // Bootstrap info hover
168
+ }
169
+ }
170
+
171
+ .btn-light {
172
+ --mat-filled-button-container-color: var(--light-color);
173
+ --mat-filled-button-label-text-color: var(--on-light-color);
174
+ --mat-filled-button-hover-label-text-color: var(--on-light-color);
175
+ --mat-filled-button-focus-label-text-color: var(--on-light-color);
176
+ background-color: var(--light-color) !important;
177
+ color: var(--on-light-color) !important;
178
+ border: 1px solid #dee2e6 !important;
179
+
180
+ &:hover {
181
+ background-color: #e9ecef !important; // Bootstrap light hover
182
+ }
183
+ }
184
+
185
+ .btn-dark {
186
+ --mat-filled-button-container-color: var(--dark-color);
187
+ --mat-filled-button-label-text-color: var(--on-dark-color);
188
+ --mat-filled-button-hover-label-text-color: var(--on-dark-color);
189
+ --mat-filled-button-focus-label-text-color: var(--on-dark-color);
190
+ background-color: var(--dark-color) !important;
191
+ color: var(--on-dark-color) !important;
192
+
193
+ &:hover {
194
+ background-color: #1c1f23 !important; // Bootstrap dark hover
195
+ }
196
+ }
197
+
198
+ /* Outlined Button Variants using Bootstrap colors */
199
+ .btn-outlined {
200
+ --mat-outlined-button-outline-color: currentColor;
201
+ --mat-outlined-button-container-color: transparent;
202
+ background-color: transparent !important;
203
+ border: 1px solid currentColor !important;
204
+ }
205
+
206
+ .btn-primary.btn-outlined,
207
+ .mat-mdc-outlined-button.btn-primary {
208
+ --mat-outlined-button-label-text-color: var(--primary-color);
209
+ --mat-outlined-button-outline-color: var(--primary-color);
210
+ --mat-outlined-button-hover-label-text-color: var(--on-primary-color);
211
+ --mat-outlined-button-focus-label-text-color: var(--on-primary-color);
212
+ color: var(--primary-color) !important;
213
+ border-color: var(--primary-color) !important;
214
+
215
+ &:hover {
216
+ background-color: var(--primary-color) !important;
217
+ color: var(--on-primary-color) !important;
218
+ }
219
+ }
220
+
221
+ .btn-secondary.btn-outlined,
222
+ .mat-mdc-outlined-button.btn-secondary {
223
+ --mat-outlined-button-label-text-color: var(--secondary-color);
224
+ --mat-outlined-button-outline-color: var(--secondary-color);
225
+ --mat-outlined-button-hover-label-text-color: var(--on-secondary-color);
226
+ --mat-outlined-button-focus-label-text-color: var(--on-secondary-color);
227
+ color: var(--secondary-color) !important;
228
+ border-color: var(--secondary-color) !important;
229
+
230
+ &:hover {
231
+ background-color: var(--secondary-color) !important;
232
+ color: var(--on-secondary-color) !important;
233
+ }
234
+ }
235
+
236
+ .btn-success.btn-outlined,
237
+ .mat-mdc-outlined-button.btn-success {
238
+ --mat-outlined-button-label-text-color: var(--success-color);
239
+ --mat-outlined-button-outline-color: var(--success-color);
240
+ --mat-outlined-button-hover-label-text-color: var(--on-success-color);
241
+ --mat-outlined-button-focus-label-text-color: var(--on-success-color);
242
+ color: var(--success-color) !important;
243
+ border-color: var(--success-color) !important;
244
+
245
+ &:hover {
246
+ background-color: var(--success-color) !important;
247
+ color: var(--on-success-color) !important;
248
+ }
249
+ }
250
+
251
+ .btn-danger.btn-outlined,
252
+ .mat-mdc-outlined-button.btn-danger {
253
+ --mat-outlined-button-label-text-color: var(--danger-color);
254
+ --mat-outlined-button-outline-color: var(--danger-color);
255
+ --mat-outlined-button-hover-label-text-color: var(--on-danger-color);
256
+ --mat-outlined-button-focus-label-text-color: var(--on-danger-color);
257
+ color: var(--danger-color) !important;
258
+ border-color: var(--danger-color) !important;
259
+
260
+ &:hover {
261
+ background-color: var(--danger-color) !important;
262
+ color: var(--on-danger-color) !important;
263
+ }
264
+ }
265
+
266
+ .btn-warning.btn-outlined,
267
+ .mat-mdc-outlined-button.btn-warning {
268
+ --mat-outlined-button-label-text-color: var(--warning-color);
269
+ --mat-outlined-button-outline-color: var(--warning-color);
270
+ --mat-outlined-button-hover-label-text-color: var(--on-warning-color);
271
+ --mat-outlined-button-focus-label-text-color: var(--on-warning-color);
272
+ color: var(--warning-color) !important;
273
+ border-color: var(--warning-color) !important;
274
+
275
+ &:hover {
276
+ background-color: var(--warning-color) !important;
277
+ color: var(--on-warning-color) !important;
278
+ }
279
+ }
280
+
281
+ .btn-info.btn-outlined,
282
+ .mat-mdc-outlined-button.btn-info {
283
+ --mat-outlined-button-label-text-color: var(--info-color);
284
+ --mat-outlined-button-outline-color: var(--info-color);
285
+ --mat-outlined-button-hover-label-text-color: var(--on-info-color);
286
+ --mat-outlined-button-focus-label-text-color: var(--on-info-color);
287
+ color: var(--info-color) !important;
288
+ border-color: var(--info-color) !important;
289
+
290
+ &:hover {
291
+ background-color: var(--info-color) !important;
292
+ color: var(--on-info-color) !important;
293
+ }
294
+ }
295
+
296
+ .btn-light.btn-outlined,
297
+ .mat-mdc-outlined-button.btn-light {
298
+ --mat-outlined-button-label-text-color: var(--light-color);
299
+ --mat-outlined-button-outline-color: var(--light-color);
300
+ --mat-outlined-button-hover-label-text-color: var(--on-light-color);
301
+ --mat-outlined-button-focus-label-text-color: var(--on-light-color);
302
+ color: var(--light-color) !important;
303
+ border-color: var(--light-color) !important;
304
+
305
+ &:hover {
306
+ background-color: var(--light-color) !important;
307
+ color: var(--on-light-color) !important;
308
+ }
309
+ }
310
+
311
+ .btn-dark.btn-outlined,
312
+ .mat-mdc-outlined-button.btn-dark {
313
+ --mat-outlined-button-label-text-color: var(--dark-color);
314
+ --mat-outlined-button-outline-color: var(--dark-color);
315
+ --mat-outlined-button-hover-label-text-color: var(--on-dark-color);
316
+ --mat-outlined-button-focus-label-text-color: var(--on-dark-color);
317
+ color: var(--dark-color) !important;
318
+ border-color: var(--dark-color) !important;
319
+
320
+ &:hover {
321
+ background-color: var(--dark-color) !important;
322
+ color: var(--on-dark-color) !important;
323
+ }
324
+ }
325
+
326
+ /* Text Button Variants */
327
+ .mat-mdc-button {
328
+ --mat-text-button-container-color: transparent;
329
+
330
+ &.btn-primary {
331
+ --mat-text-button-label-text-color: var(--primary-color);
332
+ --mat-text-button-hover-label-text-color: var(--primary-color);
333
+ --mat-text-button-focus-label-text-color: var(--primary-color);
334
+ color: var(--primary-color) !important;
335
+
336
+ &:hover {
337
+ background-color: rgba(13, 110, 253, 0.1) !important;
338
+ }
339
+ }
340
+
341
+ &.btn-secondary {
342
+ --mat-text-button-label-text-color: var(--secondary-color);
343
+ --mat-text-button-hover-label-text-color: var(--secondary-color);
344
+ --mat-text-button-focus-label-text-color: var(--secondary-color);
345
+ color: var(--secondary-color) !important;
346
+
347
+ &:hover {
348
+ background-color: rgba(108, 117, 125, 0.1) !important;
349
+ }
350
+ }
351
+
352
+ &.btn-success {
353
+ --mat-text-button-label-text-color: var(--success-color);
354
+ --mat-text-button-hover-label-text-color: var(--success-color);
355
+ --mat-text-button-focus-label-text-color: var(--success-color);
356
+ color: var(--success-color) !important;
357
+
358
+ &:hover {
359
+ background-color: rgba(25, 135, 84, 0.1) !important;
360
+ }
361
+ }
362
+
363
+ &.btn-danger {
364
+ --mat-text-button-label-text-color: var(--danger-color);
365
+ --mat-text-button-hover-label-text-color: var(--danger-color);
366
+ --mat-text-button-focus-label-text-color: var(--danger-color);
367
+ color: var(--danger-color) !important;
368
+
369
+ &:hover {
370
+ background-color: rgba(220, 53, 69, 0.1) !important;
371
+ }
372
+ }
373
+
374
+ &.btn-warning {
375
+ --mat-text-button-label-text-color: var(--warning-color);
376
+ --mat-text-button-hover-label-text-color: var(--warning-color);
377
+ --mat-text-button-focus-label-text-color: var(--warning-color);
378
+ color: var(--warning-color) !important;
379
+
380
+ &:hover {
381
+ background-color: rgba(255, 193, 7, 0.1) !important;
382
+ }
383
+ }
384
+
385
+ &.btn-info {
386
+ --mat-text-button-label-text-color: var(--info-color);
387
+ --mat-text-button-hover-label-text-color: var(--info-color);
388
+ --mat-text-button-focus-label-text-color: var(--info-color);
389
+ color: var(--info-color) !important;
390
+
391
+ &:hover {
392
+ background-color: rgba(13, 202, 240, 0.1) !important;
393
+ }
394
+ }
395
+
396
+ &.btn-light {
397
+ --mat-text-button-label-text-color: var(--light-color);
398
+ --mat-text-button-hover-label-text-color: var(--light-color);
399
+ --mat-text-button-focus-label-text-color: var(--light-color);
400
+ color: var(--light-color) !important;
401
+
402
+ &:hover {
403
+ background-color: rgba(248, 249, 250, 0.1) !important;
404
+ }
405
+ }
406
+
407
+ &.btn-dark {
408
+ --mat-text-button-label-text-color: var(--dark-color);
409
+ --mat-text-button-hover-label-text-color: var(--dark-color);
410
+ --mat-text-button-focus-label-text-color: var(--dark-color);
411
+ color: var(--dark-color) !important;
412
+
413
+ &:hover {
414
+ background-color: rgba(33, 37, 41, 0.1) !important;
415
+ }
416
+ }
417
+ }
418
+
419
+ /* Hover and Focus Effects */
420
+ .mat-mdc-button:not([disabled]),
421
+ .mat-mdc-unelevated-button:not([disabled]),
422
+ .mat-mdc-outlined-button:not([disabled]) {
423
+ --mat-text-button-hover-state-layer-opacity: 0.08;
424
+ --mat-filled-button-hover-state-layer-opacity: 0.08;
425
+ --mat-outlined-button-hover-state-layer-opacity: 0.08;
426
+ --mat-text-button-focus-state-layer-opacity: 0.12;
427
+ --mat-filled-button-focus-state-layer-opacity: 0.12;
428
+ --mat-outlined-button-focus-state-layer-opacity: 0.12;
429
+
430
+ transition: all 0.2s ease-in-out;
431
+ }
432
+
433
+ /* Disabled state styling */
434
+ .mat-mdc-button:disabled,
435
+ .mat-mdc-unelevated-button:disabled,
436
+ .mat-mdc-outlined-button:disabled {
437
+ --mat-text-button-disabled-label-text-color: rgba(0, 0, 0, 0.38);
438
+ --mat-filled-button-disabled-container-color: rgba(0, 0, 0, 0.12);
439
+ --mat-filled-button-disabled-label-text-color: rgba(0, 0, 0, 0.38);
440
+ --mat-outlined-button-disabled-label-text-color: rgba(0, 0, 0, 0.38);
441
+ --mat-outlined-button-disabled-outline-color: rgba(0, 0, 0, 0.12);
442
+
443
+ opacity: 0.6;
444
+ cursor: not-allowed;
445
+ }
446
+
447
+ /* Ripple effect customization */
448
+ .mat-ripple-element {
449
+ background-color: rgba(255, 255, 255, 0.12);
450
+ }
451
+
452
+ /* High contrast mode support for accessibility */
453
+ @media (prefers-contrast: more) {
454
+ .mat-mdc-button,
455
+ .mat-mdc-unelevated-button,
456
+ .mat-mdc-outlined-button {
457
+ border: 2px solid currentColor;
458
+ }
459
+ }
460
+
461
+ /* Reduced motion support for accessibility */
462
+ @media (prefers-reduced-motion: reduce) {
463
+ .mat-mdc-button,
464
+ .mat-mdc-unelevated-button,
465
+ .mat-mdc-outlined-button {
466
+ transition: none;
467
+ }
468
+ }
469
+ }
@@ -0,0 +1,37 @@
1
+ .full-screen-dialog {
2
+ .mat-mdc-dialog-container {
3
+ padding: 0;
4
+ border-radius: 0;
5
+ }
6
+ }
7
+
8
+ .dialog-xs .mat-mdc-dialog-container {
9
+ max-width: 320px;
10
+ }
11
+
12
+ .dialog-sm .mat-mdc-dialog-container {
13
+ max-width: 440px;
14
+ }
15
+
16
+ .dialog-md .mat-mdc-dialog-container {
17
+ max-width: 640px;
18
+ }
19
+
20
+ .dialog-lg .mat-mdc-dialog-container {
21
+ max-width: 840px;
22
+ }
23
+
24
+ .dialog-xl .mat-mdc-dialog-container {
25
+ max-width: 1240px;
26
+ }
27
+
28
+ .dialog-xxl .mat-mdc-dialog-container {
29
+ max-width: 1440px;
30
+ }
31
+
32
+ @media (max-width: 768px) {
33
+ .mat-mdc-dialog-container {
34
+ max-width: 95vw !important;
35
+ max-height: 90vh !important;
36
+ }
37
+ }
@@ -0,0 +1,12 @@
1
+ // Common mixins used across components
2
+ @mixin responsive($breakpoint) {
3
+ @media (max-width: $breakpoint) {
4
+ @content;
5
+ }
6
+ }
7
+
8
+ @mixin reduced-motion {
9
+ @media (prefers-reduced-motion: reduce) {
10
+ @content;
11
+ }
12
+ }
@@ -0,0 +1,23 @@
1
+ // Bootstrap 5.3+ Color Palette
2
+ $bootstrap-colors: (
3
+ primary: #0d6efd,
4
+ secondary: #6c757d,
5
+ success: #198754,
6
+ danger: #dc3545,
7
+ warning: #ffc107,
8
+ info: #0dcaf0,
9
+ light: #f8f9fa,
10
+ dark: #212529,
11
+ );
12
+
13
+ // Contrast colors
14
+ $bootstrap-contrast: (
15
+ primary: #ffffff,
16
+ secondary: #ffffff,
17
+ success: #ffffff,
18
+ danger: #ffffff,
19
+ warning: #000000,
20
+ info: #000000,
21
+ light: #000000,
22
+ dark: #ffffff,
23
+ );
@@ -0,0 +1,15 @@
1
+ // Import Tabulator table styles
2
+ @import '~tabulator-tables/dist/css/tabulator.min.css';
3
+ @import '~tabulator-tables/dist/css/tabulator_modern.min.css';
4
+ @import '~tabulator-tables/dist/css/tabulator_midnight.min.css';
5
+ @import '~tabulator-tables/dist/css/tabulator_simple.min.css';
6
+ @import '~tabulator-tables/dist/css/tabulator_site.min.css';
7
+ @import '~tabulator-tables/dist/css/tabulator_site_dark.min.css';
8
+
9
+ // Import variables and mixins first
10
+ @forward 'variables';
11
+ @forward 'mixins';
12
+
13
+ // Then component styles
14
+ @forward 'custom-buttons';
15
+ @forward 'custom-dialog';