@acontplus/ng-components 2.1.30 → 2.1.32

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/fesm2022/acontplus-ng-components.mjs +5957 -3544
  3. package/fesm2022/acontplus-ng-components.mjs.map +1 -1
  4. package/package.json +41 -16
  5. package/src/_index.scss +22 -0
  6. package/src/core/color/_all-color.scss +15 -0
  7. package/src/core/density/_all-density.scss +17 -0
  8. package/src/core/style/_elevation.scss +207 -0
  9. package/src/core/theming/_all-theme.scss +36 -0
  10. package/src/core/theming/_config-validation.scss +171 -0
  11. package/src/core/theming/_definition.scss +158 -0
  12. package/src/core/theming/_palettes.scss +1576 -0
  13. package/src/core/theming/prebuilt/aqua.scss +21 -0
  14. package/src/core/theming/prebuilt/blue.scss +21 -0
  15. package/src/core/theming/prebuilt/cyan.scss +21 -0
  16. package/src/core/theming/prebuilt/green.scss +21 -0
  17. package/src/core/theming/prebuilt/orange.scss +21 -0
  18. package/src/core/theming/prebuilt/pink.scss +21 -0
  19. package/src/core/theming/prebuilt/purple.scss +21 -0
  20. package/src/core/theming/prebuilt/rose.scss +21 -0
  21. package/src/core/tokens/_m3-tokens.scss +141 -0
  22. package/src/core/tokens/_m3-utils.scss +36 -0
  23. package/src/core/tokens/_system.scss +388 -0
  24. package/src/core/tokens/_token-utils.scss +117 -0
  25. package/src/core/tokens/m3/_index.scss +7 -0
  26. package/src/core/tokens/m3/_md-sys-color.scss +150 -0
  27. package/src/core/tokens/m3/_md-sys-elevation.scss +8 -0
  28. package/src/core/tokens/m3/_md-sys-motion.scss +35 -0
  29. package/src/core/tokens/m3/_md-sys-shape.scss +31 -0
  30. package/src/core/tokens/m3/_md-sys-state.scss +13 -0
  31. package/src/core/tokens/m3/_md-sys-typescale.scss +131 -0
  32. package/src/core/tokens/m3/_theme.scss +41 -0
  33. package/src/core/typography/_all-typography.scss +12 -0
  34. package/src/lib/components/alert/_alert-theme.scss +57 -0
  35. package/src/lib/components/alert/_m3-alert.scss +72 -0
  36. package/src/lib/components/alert/alert.scss +60 -0
  37. package/src/lib/components/autocomplete-wrapper/autocomplete-wrapper.scss +667 -0
  38. package/src/lib/components/button/button.scss +297 -0
  39. package/src/lib/components/cards/dynamic-card/dynamic-card.scss +131 -0
  40. package/src/lib/components/checkbox-group/checkbox-group.scss +14 -0
  41. package/src/lib/components/date-range-input/calendar/date-range-calendar.scss +29 -0
  42. package/src/lib/components/date-range-input/date-range-input.scss +194 -0
  43. package/src/lib/components/dialog-wrapper/dialog-wrapper.scss +36 -0
  44. package/src/lib/components/drawer/_drawer-theme.scss +57 -0
  45. package/src/lib/components/drawer/_m3-drawer.scss +23 -0
  46. package/src/lib/components/drawer/drawer-container.scss +97 -0
  47. package/src/lib/components/grid/_grid-theme.scss +53 -0
  48. package/src/lib/components/grid/_m3-grid.scss +34 -0
  49. package/src/lib/components/grid/cell/cell.scss +38 -0
  50. package/src/lib/components/grid/column-menu/column-menu.scss +117 -0
  51. package/src/lib/components/grid/column-resize/_column-resize.scss +126 -0
  52. package/src/lib/components/grid/grid.scss +245 -0
  53. package/src/lib/components/icons/svg-icon/svg-icon.scss +16 -0
  54. package/src/lib/components/icons/user-icon/user-icon.scss +0 -0
  55. package/src/lib/components/input-chip/input-chip.scss +0 -0
  56. package/src/lib/components/popover/_m3-popover.scss +24 -0
  57. package/src/lib/components/popover/_popover-theme.scss +57 -0
  58. package/src/lib/components/popover/popover.scss +239 -0
  59. package/src/lib/components/spinner/spinner.scss +6 -0
  60. package/src/lib/components/tables/tabulator-table/tabulator-table.scss +68 -0
  61. package/src/lib/components/theme-toggle/theme-toggle.scss +3 -0
  62. package/src/lib/styles/_elevation.scss +168 -0
  63. package/src/lib/styles/_token-utils.scss +115 -0
  64. package/types/acontplus-ng-components.d.ts +1017 -536
@@ -0,0 +1,297 @@
1
+ :root {
2
+ --acp-secondary: #e0e0e0;
3
+ --acp-secondary-on: #000000;
4
+ --acp-success: #4caf50;
5
+ --acp-success-on: #ffffff;
6
+ --acp-danger: #ba1a1a;
7
+ --acp-danger-on: #ffffff;
8
+ --acp-warning: #ff9800;
9
+ --acp-warning-on: #000000;
10
+ --acp-info: #2196f3;
11
+ --acp-info-on: #ffffff;
12
+ --acp-dark: #212121;
13
+ --acp-dark-on: #ffffff;
14
+ }
15
+
16
+ .dark-theme {
17
+ --acp-secondary: #424242;
18
+ --acp-secondary-on: #ffffff;
19
+ --acp-success: #81c784;
20
+ --acp-success-on: #1b5e20;
21
+ --acp-danger: #ef5350;
22
+ --acp-danger-on: #b71c1c;
23
+ --acp-warning: #ffb74d;
24
+ --acp-warning-on: #e65100;
25
+ --acp-info: #64b5f6;
26
+ --acp-info-on: #0d47a1;
27
+ --acp-dark: #616161;
28
+ --acp-dark-on: #ffffff;
29
+ }
30
+
31
+ acp-button {
32
+ display: inline-block;
33
+ // margin: 4px;
34
+ }
35
+
36
+ // Button content alignment - center icon and text vertically
37
+ .mat-mdc-button,
38
+ .mat-mdc-unelevated-button,
39
+ .mat-mdc-raised-button,
40
+ .mat-mdc-outlined-button,
41
+ button[matbutton='tonal'],
42
+ .mat-mdc-fab.mdc-fab--extended {
43
+ .mdc-button__label {
44
+ display: flex;
45
+ align-items: center;
46
+ gap: 8px;
47
+ }
48
+ }
49
+
50
+ // Filled buttons - target Material's generated classes
51
+ .mat-mdc-button.mat-btn-secondary,
52
+ .mat-mdc-unelevated-button.mat-btn-secondary {
53
+ background-color: var(--acp-secondary) !important;
54
+ color: var(--acp-secondary-on) !important;
55
+ }
56
+
57
+ .mat-mdc-button.mat-btn-secondary:hover,
58
+ .mat-mdc-unelevated-button.mat-btn-secondary:hover {
59
+ background-color: color-mix(in srgb, var(--acp-secondary) 80%, black) !important;
60
+ }
61
+
62
+ .mat-mdc-button.mat-btn-success,
63
+ .mat-mdc-unelevated-button.mat-btn-success {
64
+ background-color: var(--acp-success) !important;
65
+ color: var(--acp-success-on) !important;
66
+ }
67
+
68
+ .mat-mdc-button.mat-btn-danger,
69
+ .mat-mdc-unelevated-button.mat-btn-danger {
70
+ background-color: var(--acp-danger) !important;
71
+ color: var(--acp-danger-on) !important;
72
+ }
73
+
74
+ .mat-mdc-button.mat-btn-warning,
75
+ .mat-mdc-unelevated-button.mat-btn-warning {
76
+ background-color: var(--acp-warning) !important;
77
+ color: var(--acp-warning-on) !important;
78
+ }
79
+
80
+ .mat-mdc-button.mat-btn-info,
81
+ .mat-mdc-unelevated-button.mat-btn-info {
82
+ background-color: var(--acp-info) !important;
83
+ color: var(--acp-info-on) !important;
84
+ }
85
+
86
+ .mat-mdc-button.mat-btn-dark,
87
+ .mat-mdc-unelevated-button.mat-btn-dark {
88
+ background-color: var(--acp-dark) !important;
89
+ color: var(--acp-dark-on) !important;
90
+ }
91
+
92
+ // Tonal buttons - lighter background
93
+ button[matbutton='tonal'].mat-btn-success {
94
+ background-color: color-mix(in srgb, var(--acp-success) 12%, transparent) !important;
95
+ color: var(--acp-success) !important;
96
+ }
97
+
98
+ button[matbutton='tonal'].mat-btn-danger {
99
+ background-color: color-mix(in srgb, var(--acp-danger) 12%, transparent) !important;
100
+ color: var(--acp-danger) !important;
101
+ }
102
+
103
+ button[matbutton='tonal'].mat-btn-warning {
104
+ background-color: color-mix(in srgb, var(--acp-warning) 12%, transparent) !important;
105
+ color: var(--acp-warning) !important;
106
+ }
107
+
108
+ button[matbutton='tonal'].mat-btn-info {
109
+ background-color: color-mix(in srgb, var(--acp-info) 12%, transparent) !important;
110
+ color: var(--acp-info) !important;
111
+ }
112
+
113
+ button[matbutton='tonal'].mat-btn-dark {
114
+ background-color: color-mix(in srgb, var(--acp-dark) 12%, transparent) !important;
115
+ color: var(--acp-dark) !important;
116
+ }
117
+
118
+ // Text buttons - only text color
119
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
120
+ .mat-mdc-outlined-button
121
+ ).mat-btn-secondary {
122
+ color: var(--mat-sys-on-surface) !important;
123
+ }
124
+
125
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
126
+ .mat-mdc-outlined-button
127
+ ).mat-btn-success {
128
+ color: var(--acp-success) !important;
129
+ }
130
+
131
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
132
+ .mat-mdc-outlined-button
133
+ ).mat-btn-danger {
134
+ color: var(--acp-danger) !important;
135
+ }
136
+
137
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
138
+ .mat-mdc-outlined-button
139
+ ).mat-btn-warning {
140
+ color: var(--acp-warning) !important;
141
+ }
142
+
143
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
144
+ .mat-mdc-outlined-button
145
+ ).mat-btn-info {
146
+ color: var(--acp-info) !important;
147
+ }
148
+
149
+ .mat-mdc-button:not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):not(
150
+ .mat-mdc-outlined-button
151
+ ).mat-btn-dark {
152
+ color: var(--acp-dark) !important;
153
+ }
154
+
155
+ // Elevated buttons - surface background with colored text, container background on hover
156
+ .mat-mdc-raised-button.mat-btn-secondary {
157
+ background-color: var(--mat-sys-surface-container-low) !important;
158
+ color: var(--mat-sys-on-surface) !important;
159
+ }
160
+
161
+ .mat-mdc-raised-button.mat-btn-success {
162
+ background-color: var(--mat-sys-surface-container-low) !important;
163
+ color: var(--acp-success) !important;
164
+ }
165
+
166
+ .mat-mdc-raised-button.mat-btn-success:hover {
167
+ background-color: color-mix(in srgb, var(--acp-success) 12%, transparent) !important;
168
+ }
169
+
170
+ .mat-mdc-raised-button.mat-btn-danger {
171
+ background-color: var(--mat-sys-surface-container-low) !important;
172
+ color: var(--acp-danger) !important;
173
+ }
174
+
175
+ .mat-mdc-raised-button.mat-btn-danger:hover {
176
+ background-color: color-mix(in srgb, var(--acp-danger) 12%, transparent) !important;
177
+ }
178
+
179
+ .mat-mdc-raised-button.mat-btn-warning {
180
+ background-color: var(--mat-sys-surface-container-low) !important;
181
+ color: var(--acp-warning) !important;
182
+ }
183
+
184
+ .mat-mdc-raised-button.mat-btn-warning:hover {
185
+ background-color: color-mix(in srgb, var(--acp-warning) 12%, transparent) !important;
186
+ }
187
+
188
+ .mat-mdc-raised-button.mat-btn-info {
189
+ background-color: var(--mat-sys-surface-container-low) !important;
190
+ color: var(--acp-info) !important;
191
+ }
192
+
193
+ .mat-mdc-raised-button.mat-btn-info:hover {
194
+ background-color: color-mix(in srgb, var(--acp-info) 12%, transparent) !important;
195
+ }
196
+
197
+ .mat-mdc-raised-button.mat-btn-dark {
198
+ background-color: var(--mat-sys-surface-container-low) !important;
199
+ color: var(--acp-dark) !important;
200
+ }
201
+
202
+ .mat-mdc-raised-button.mat-btn-dark:hover {
203
+ background-color: color-mix(in srgb, var(--acp-dark) 12%, transparent) !important;
204
+ }
205
+
206
+ // Outlined buttons
207
+ .mat-mdc-outlined-button.mat-btn-secondary {
208
+ border-color: var(--mat-sys-outline) !important;
209
+ color: var(--mat-sys-on-surface) !important;
210
+ }
211
+
212
+ .mat-mdc-outlined-button.mat-btn-success {
213
+ border-color: var(--acp-success) !important;
214
+ color: var(--acp-success) !important;
215
+ }
216
+
217
+ .mat-mdc-outlined-button.mat-btn-danger {
218
+ border-color: var(--acp-danger) !important;
219
+ color: var(--acp-danger) !important;
220
+ }
221
+
222
+ .mat-mdc-outlined-button.mat-btn-warning {
223
+ border-color: var(--acp-warning) !important;
224
+ color: var(--acp-warning) !important;
225
+ }
226
+
227
+ .mat-mdc-outlined-button.mat-btn-info {
228
+ border-color: var(--acp-info) !important;
229
+ color: var(--acp-info) !important;
230
+ }
231
+
232
+ .mat-mdc-outlined-button.mat-btn-dark {
233
+ border-color: var(--acp-dark) !important;
234
+ color: var(--acp-dark) !important;
235
+ }
236
+
237
+ // FAB buttons (regular, mini, and extended)
238
+ .mat-mdc-fab.mat-btn-secondary,
239
+ .mat-mdc-mini-fab.mat-btn-secondary {
240
+ background-color: var(--acp-secondary) !important;
241
+ color: var(--acp-secondary-on) !important;
242
+ }
243
+
244
+ .mat-mdc-fab.mat-btn-success,
245
+ .mat-mdc-mini-fab.mat-btn-success {
246
+ background-color: var(--acp-success) !important;
247
+ color: var(--acp-success-on) !important;
248
+ }
249
+
250
+ .mat-mdc-fab.mat-btn-danger,
251
+ .mat-mdc-mini-fab.mat-btn-danger {
252
+ background-color: var(--acp-danger) !important;
253
+ color: var(--acp-danger-on) !important;
254
+ }
255
+
256
+ .mat-mdc-fab.mat-btn-warning,
257
+ .mat-mdc-mini-fab.mat-btn-warning {
258
+ background-color: var(--acp-warning) !important;
259
+ color: var(--acp-warning-on) !important;
260
+ }
261
+
262
+ .mat-mdc-fab.mat-btn-info,
263
+ .mat-mdc-mini-fab.mat-btn-info {
264
+ background-color: var(--acp-info) !important;
265
+ color: var(--acp-info-on) !important;
266
+ }
267
+
268
+ .mat-mdc-fab.mat-btn-dark,
269
+ .mat-mdc-mini-fab.mat-btn-dark {
270
+ background-color: var(--acp-dark) !important;
271
+ color: var(--acp-dark-on) !important;
272
+ }
273
+
274
+ // Icon buttons
275
+ .mat-mdc-icon-button.mat-btn-secondary {
276
+ color: var(--mat-sys-on-surface) !important;
277
+ }
278
+
279
+ .mat-mdc-icon-button.mat-btn-success {
280
+ color: var(--acp-success) !important;
281
+ }
282
+
283
+ .mat-mdc-icon-button.mat-btn-danger {
284
+ color: var(--acp-danger) !important;
285
+ }
286
+
287
+ .mat-mdc-icon-button.mat-btn-warning {
288
+ color: var(--acp-warning) !important;
289
+ }
290
+
291
+ .mat-mdc-icon-button.mat-btn-info {
292
+ color: var(--acp-info) !important;
293
+ }
294
+
295
+ .mat-mdc-icon-button.mat-btn-dark {
296
+ color: var(--acp-dark) !important;
297
+ }
@@ -0,0 +1,131 @@
1
+ //@use "@angular/material" as mat;
2
+ //
3
+ //:host {
4
+ // display: block;
5
+ // box-sizing: border-box;
6
+ //
7
+ // mat-card {
8
+ // height: 100%;
9
+ // display: flex;
10
+ // flex-direction: column;
11
+ // transition:
12
+ // box-shadow 200ms ease,
13
+ // transform 200ms ease;
14
+ // overflow: hidden;
15
+ //
16
+ // &:hover {
17
+ // // mat.elevation is already theme-aware.
18
+ // @include mat.elevation(4);
19
+ // transform: translateY(-2px);
20
+ // }
21
+ //
22
+ // &-header {
23
+ // padding: 1rem 1rem 0.5rem;
24
+ //
25
+ // mat-card-title {
26
+ // font-weight: 500;
27
+ // line-height: 1.2;
28
+ // margin-bottom: 0.25rem;
29
+ // }
30
+ //
31
+ // mat-card-subtitle {
32
+ // // Use a theme color for subtitles, e.g., text-secondary.
33
+ // // The `mat.get-theme-color` function allows you to get specific colors from your theme.
34
+ // // Here, 'text' refers to the text palette and 'secondary' is a shade within it.
35
+ // // You might need to adjust 'secondary' based on your specific theme definition
36
+ // // or use `mat.get-color-from-palette($theme-palette, $color-shade)`.
37
+ // color: mat.get-theme-color(text, secondary);
38
+ // line-height: 1.3;
39
+ // }
40
+ //
41
+ // [mat-card-avatar] {
42
+ // width: 40px;
43
+ // height: 40px;
44
+ // border-radius: 50%;
45
+ // margin-right: 1rem;
46
+ // // Use a theme color for the border, e.g., divider or text-disabled.
47
+ // border: 2px solid mat.get-theme-color(divider);
48
+ // }
49
+ // }
50
+ //
51
+ // &-content {
52
+ // flex: 1;
53
+ // padding: 1rem;
54
+ // overflow: auto;
55
+ //
56
+ // &:not(:first-child) {
57
+ // padding-top: 0;
58
+ // }
59
+ // }
60
+ //
61
+ // &.mat-card-divider {
62
+ // // Use a theme color for the divider.
63
+ // border-top: 1px solid mat.get-theme-color(divider);
64
+ // padding-top: 0.5rem;
65
+ // }
66
+ //
67
+ // &-actions {
68
+ // padding: 0.5rem 1rem 1rem;
69
+ // margin: 0;
70
+ // min-height: 52px;
71
+ // box-sizing: border-box;
72
+ // display: flex;
73
+ // flex-wrap: wrap;
74
+ // gap: 0.5rem;
75
+ //
76
+ // &[align="end"] {
77
+ // justify-content: flex-end;
78
+ // }
79
+ //
80
+ // &[align="center"] {
81
+ // justify: center;
82
+ // }
83
+ //
84
+ // &[align="start"] {
85
+ // justify-content: flex-start;
86
+ // }
87
+ //
88
+ // button {
89
+ // margin: 0 0.25rem;
90
+ // min-width: 88px; // Material spec minimum button width
91
+ //
92
+ // mat-icon {
93
+ // margin-right: 0.5rem;
94
+ // font-size: 18px;
95
+ // height: 18px;
96
+ // width: 18px;
97
+ // }
98
+ // }
99
+ // }
100
+ // }
101
+ //
102
+ // // Responsive adjustments
103
+ // @media (max-width: 600px) {
104
+ // mat-card {
105
+ // &-header {
106
+ // padding: 0.75rem 0.75rem 0.25rem;
107
+ //
108
+ // [mat-card-avatar] {
109
+ // width: 36px;
110
+ // height: 36px;
111
+ // margin-right: 0.75rem;
112
+ // }
113
+ // }
114
+ //
115
+ // &-content {
116
+ // padding: 0.75rem;
117
+ // }
118
+ //
119
+ // &-actions {
120
+ // padding: 0.5rem;
121
+ // flex-direction: column;
122
+ // gap: 0.5rem;
123
+ //
124
+ // button {
125
+ // width: 100%;
126
+ // margin: 0.25rem 0;
127
+ // }
128
+ // }
129
+ // }
130
+ // }
131
+ //}
@@ -0,0 +1,14 @@
1
+ .acp-checkbox-group {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+
6
+ .acp-checkbox-master {
7
+ margin-bottom: 0.5rem;
8
+ font-weight: 500;
9
+ }
10
+
11
+ .acp-checkbox-normal {
12
+ margin-left: 1rem;
13
+ }
14
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * AcpDateRangeCalendar Component Styles
3
+ *
4
+ * Styling for the dual-calendar view with responsive layout.
5
+ * @author AcontPlus S.A.S
6
+ * @version 2.0.0
7
+ */
8
+ .mat-calendar {
9
+ min-width: 250px;
10
+ }
11
+
12
+ .calendar-container {
13
+ width: 100%;
14
+ display: flex;
15
+ }
16
+
17
+ .first-view,
18
+ .second-view {
19
+ flex: 1 1 50%;
20
+ min-width: 0; /* allow each calendar to shrink within its half */
21
+ margin-top: 0.5rem;
22
+ }
23
+
24
+ @media (max-width: 490px) {
25
+ /* Stack the two calendar views; align-items: stretch makes each full width. */
26
+ .calendar-container {
27
+ flex-direction: column;
28
+ }
29
+ }
@@ -0,0 +1,194 @@
1
+ /**
2
+ * AcpDateRangeInput Component Styles
3
+ * @author AcontPlus S.A.S
4
+ * @version 1.0.0
5
+ *
6
+ * Styling for the comprehensive date range picker component.
7
+ * Uses Material Design 3 theming system with CSS custom properties.
8
+ */
9
+
10
+ @use '@angular/material' as mat;
11
+
12
+ // Disable Backdrop css
13
+ ::ng-deep.cdk-overlay-dark-backdrop {
14
+ background: none;
15
+ }
16
+
17
+ mat-list-item.mat-mdc-list-item {
18
+ height: 40px;
19
+ }
20
+
21
+ // Make the selected (activated) option clearly visible - the M3 theme leaves
22
+ // the activated state of an action-list item unstyled. Consumers can override
23
+ // via the --ndp-selected-option-bg custom property.
24
+ mat-list-item.mdc-list-item--activated {
25
+ background-color: var(
26
+ --ndp-selected-option-bg,
27
+ var(--mat-sys-secondary-container, rgba(0, 0, 0, 0.08))
28
+ );
29
+ }
30
+
31
+ ::ng-deep.cdk-overlay-pane:has(.custom-ckd-container),
32
+ ::ng-deep.cdk-overlay-pane:has(.ndp-cdk-container) {
33
+ width: 100%;
34
+ background-color: var(--mat-sys-surface-container);
35
+ max-height: 100vh;
36
+ overflow-y: auto;
37
+ overflow-x: hidden;
38
+ max-width: 700px;
39
+ margin-top: -22px;
40
+ border: 1px solid var(--mat-sys-surface-container);
41
+ }
42
+
43
+ ::ng-deep.cdk-overlay-pane:has(.range-input) {
44
+ max-width: 250px;
45
+ }
46
+
47
+ .br-top {
48
+ border-top: 1px solid var(--mat-sys-surface-container);
49
+ }
50
+
51
+ .br-right {
52
+ border-right: 1px solid var(--mat-sys-surface-container);
53
+ }
54
+
55
+ .disabled {
56
+ pointer-events: none;
57
+ opacity: 0.5;
58
+ }
59
+
60
+ .mat-button,
61
+ .mdc-button {
62
+ font-family: var(--mat-list-list-item-label-text-font);
63
+ line-height: var(--mat-list-list-item-label-text-line-height);
64
+ font-size: var(--mat-list-list-item-label-text-size);
65
+ font-weight: var(--mat-list-list-item-label-text-weight);
66
+ letter-spacing: var(--mat-list-list-item-label-text-tracking);
67
+ }
68
+
69
+ .w-full {
70
+ width: 100%;
71
+ }
72
+
73
+ .display-hidden {
74
+ display: none;
75
+ }
76
+
77
+ .custom-calendar-container,
78
+ .ndp-calendar-container {
79
+ width: 100%;
80
+ }
81
+
82
+ .row-1,
83
+ .row-2 {
84
+ width: 100%;
85
+ box-sizing: border-box;
86
+ }
87
+
88
+ // Flex layout lets the divider between the columns stretch to the row's
89
+ // full height automatically (align-items: stretch), so differing column
90
+ // heights never leave a gap.
91
+ .row-1 {
92
+ display: flex;
93
+ align-items: stretch;
94
+ }
95
+
96
+ .row-2 {
97
+ padding: 16px;
98
+ }
99
+
100
+ // Full-height divider between the options column and the calendar.
101
+ // As a flex child it stretches to the row height with no positioning hacks.
102
+ .ndp-column-separator {
103
+ flex: 0 0 1px;
104
+ background-color: var(--mat-sys-surface-container);
105
+ }
106
+
107
+ .footer-content,
108
+ .ndp-footer-content {
109
+ align-items: center;
110
+ display: flex;
111
+ text-align: right;
112
+ justify-content: end;
113
+ gap: 16px; // Gap between label and buttons
114
+ text-overflow: ellipsis;
115
+
116
+ .buttons {
117
+ display: flex;
118
+ gap: 8px; // Gap between buttons
119
+ }
120
+ }
121
+
122
+ // Editable start/end inputs shown in the footer when enableEditableDates is on.
123
+ .ndp-date-inputs {
124
+ display: flex;
125
+ gap: 8px;
126
+ margin-right: auto; // keep the inputs left, push the buttons to the right
127
+ align-items: flex-start; // don't stretch one field to match the other's error height
128
+ }
129
+
130
+ .ndp-date-field {
131
+ width: 150px;
132
+ }
133
+
134
+ .column-1 {
135
+ flex: 0 0 25%;
136
+ overflow: auto;
137
+ }
138
+
139
+ .column-2 {
140
+ flex: 1 1 auto;
141
+ min-width: 0; // allow the calendar column to shrink below its content size
142
+ }
143
+
144
+ // When default options are hidden, column-1 and the separator aren't
145
+ // rendered, so column-2's `flex: 1 1 auto` fills the row on its own.
146
+ .without-default-opt {
147
+ .column-1 {
148
+ display: none;
149
+ }
150
+ }
151
+
152
+ @media (max-width: 400px) {
153
+ .footer-content,
154
+ .ndp-footer-content {
155
+ display: block;
156
+
157
+ .buttons {
158
+ justify-content: flex-end;
159
+ margin-top: 20px;
160
+ }
161
+ }
162
+
163
+ #range-label-text {
164
+ margin-right: 1.5rem;
165
+ }
166
+ }
167
+
168
+ @media (max-width: 650px) {
169
+ // Stack the columns; align-items: stretch then makes each full width.
170
+ .row-1 {
171
+ flex-direction: column;
172
+ }
173
+
174
+ .column-1 {
175
+ flex-basis: auto;
176
+ }
177
+
178
+ .column-separator {
179
+ display: none;
180
+ }
181
+ }
182
+
183
+ .pe-0 {
184
+ padding-right: 0;
185
+ }
186
+
187
+ .ps-0 {
188
+ padding-left: 0;
189
+ }
190
+
191
+ button.checked {
192
+ color: var(--mat-sys-primary);
193
+ border-radius: 4px;
194
+ }
@@ -0,0 +1,36 @@
1
+ .acp-dialog-header {
2
+ cursor: move;
3
+ //padding: 12px 24px;
4
+ border-bottom: 1px solid var(--mat-sys-outline-variant, #dee2e6);
5
+ color: var(--mat-sys-on-surface, #212529);
6
+ position: relative;
7
+ }
8
+
9
+ h6[mat-dialog-title].acp-dialog-title {
10
+ display: flex;
11
+ align-items: center;
12
+ font-size: 1.2rem;
13
+ font-weight: 500;
14
+ margin: 0;
15
+ width: 100%;
16
+ padding-right: 48px;
17
+ }
18
+
19
+ .acp-dialog-title-icon {
20
+ margin-right: 12px;
21
+ vertical-align: middle;
22
+ }
23
+
24
+ h6[mat-dialog-title].acp-dialog-title span {
25
+ flex-grow: 1;
26
+ }
27
+
28
+ mat-dialog-content {
29
+ padding: 24px;
30
+ }
31
+
32
+ .acp-dialog-close-btn {
33
+ position: absolute;
34
+ top: 8px;
35
+ right: 16px;
36
+ }