@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,57 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './../../../core/tokens/token-utils';
4
+ @use './m3-drawer';
5
+
6
+ @mixin base($theme) {
7
+ $tokens: map.get(m3-drawer.get-tokens($theme), base);
8
+
9
+ @include token-utils.values($tokens);
10
+ }
11
+
12
+ @mixin color($theme) {
13
+ $tokens: map.get(m3-drawer.get-tokens($theme), color);
14
+
15
+ @include token-utils.values($tokens);
16
+ }
17
+
18
+ @mixin typography($theme) {
19
+ $tokens: map.get(m3-drawer.get-tokens($theme), typography);
20
+
21
+ @include token-utils.values($tokens);
22
+ }
23
+
24
+ @mixin density($theme) {
25
+ $tokens: map.get(m3-drawer.get-tokens($theme), density);
26
+
27
+ @include token-utils.values($tokens);
28
+ }
29
+
30
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
31
+ @function _define-overrides() {
32
+ @return ((namespace: drawer, tokens: token-utils.get-overrides(m3-drawer.get-tokens(), drawer)));
33
+ }
34
+
35
+ @mixin overrides($tokens: ()) {
36
+ @include token-utils.batch-create-token-values($tokens, _define-overrides()...);
37
+ }
38
+
39
+ @mixin theme($theme, $color-variant: null) {
40
+ @if mat.get-theme-version($theme) == 1 {
41
+ @include base($theme);
42
+ @include color($theme);
43
+ @include density($theme);
44
+ @include typography($theme);
45
+ } @else {
46
+ @include base($theme);
47
+ @if mat.theme-has($theme, color) {
48
+ @include color($theme);
49
+ }
50
+ @if mat.theme-has($theme, density) {
51
+ @include density($theme);
52
+ }
53
+ @if mat.theme-has($theme, typography) {
54
+ @include typography($theme);
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,23 @@
1
+ @use 'sass:map';
2
+ @use './../../../core/style/elevation';
3
+ @use './../../../core/tokens/m3-utils';
4
+ @use './../../../core/tokens/m3';
5
+
6
+ @function get-tokens($theme: m3.$sys-theme) {
7
+ $system: m3-utils.get-system($theme);
8
+
9
+ $tokens: (
10
+ base: (
11
+ drawer-container-shape: map.get($system, corner-large),
12
+ drawer-container-elevation-shadow: elevation.get-box-shadow(2),
13
+ ),
14
+ color: (
15
+ drawer-container-background-color: map.get($system, surface),
16
+ drawer-container-text-color: map.get($system, on-surface-variant),
17
+ ),
18
+ typography: (),
19
+ density: (),
20
+ );
21
+
22
+ @return $tokens;
23
+ }
@@ -0,0 +1,97 @@
1
+ /* stylelint-disable keyframes-name-pattern */
2
+ @use '@angular/cdk' as cdk;
3
+ @use '@angular/material' as mat;
4
+ @use './../../../core/tokens/token-utils';
5
+ @use './m3-drawer';
6
+
7
+ $fallbacks: m3-drawer.get-tokens();
8
+
9
+ @keyframes _acp-drawer-enter {
10
+ from {
11
+ box-shadow: none;
12
+ visibility: hidden;
13
+ }
14
+
15
+ to {
16
+ transform: none;
17
+ visibility: visible;
18
+ }
19
+ }
20
+
21
+ @keyframes _acp-drawer-exit {
22
+ from {
23
+ transform: none;
24
+ visibility: visible;
25
+ }
26
+
27
+ to {
28
+ box-shadow: none;
29
+ visibility: hidden;
30
+ }
31
+ }
32
+
33
+ .acp-drawer-container {
34
+ display: block;
35
+ width: 100%;
36
+ padding: 8px 16px;
37
+ overflow: auto;
38
+ outline: 0;
39
+ box-sizing: border-box;
40
+
41
+ // We don't use this, but it's useful for consumers to position
42
+ // elements (e.g. close buttons) inside the bottom sheet.
43
+ position: relative;
44
+ background-color: token-utils.slot(drawer-container-background-color, $fallbacks);
45
+ color: token-utils.slot(drawer-container-text-color, $fallbacks);
46
+ box-shadow: token-utils.slot(drawer-container-elevation-shadow, $fallbacks);
47
+
48
+ @include cdk.high-contrast(active, off) {
49
+ outline: 1px solid;
50
+ }
51
+ }
52
+
53
+ .acp-drawer-container-animations-enabled {
54
+ &.acp-drawer-container-enter {
55
+ animation: _acp-drawer-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards;
56
+ }
57
+
58
+ &.acp-drawer-container-exit {
59
+ animation: _acp-drawer-exit 400ms cubic-bezier(0.25, 0.8, 0.25, 1) backwards;
60
+ }
61
+
62
+ &.acp-drawer-right {
63
+ transform: translateX(100%);
64
+ }
65
+
66
+ &.acp-drawer-left {
67
+ transform: translateX(-100%);
68
+ }
69
+
70
+ &.acp-drawer-bottom {
71
+ transform: translateY(100%);
72
+ }
73
+
74
+ &.acp-drawer-top {
75
+ transform: translateY(-100%);
76
+ }
77
+ }
78
+
79
+ .acp-drawer-right {
80
+ border-top-left-radius: token-utils.slot(drawer-container-shape, $fallbacks);
81
+ border-bottom-left-radius: token-utils.slot(drawer-container-shape, $fallbacks);
82
+ }
83
+
84
+ .acp-drawer-left {
85
+ border-top-right-radius: token-utils.slot(drawer-container-shape, $fallbacks);
86
+ border-bottom-right-radius: token-utils.slot(drawer-container-shape, $fallbacks);
87
+ }
88
+
89
+ .acp-drawer-bottom {
90
+ border-top-left-radius: token-utils.slot(drawer-container-shape, $fallbacks);
91
+ border-top-right-radius: token-utils.slot(drawer-container-shape, $fallbacks);
92
+ }
93
+
94
+ .acp-drawer-top {
95
+ border-bottom-left-radius: token-utils.slot(drawer-container-shape, $fallbacks);
96
+ border-bottom-right-radius: token-utils.slot(drawer-container-shape, $fallbacks);
97
+ }
@@ -0,0 +1,53 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './../../../core/tokens/token-utils';
4
+ @use './m3-grid';
5
+
6
+ @mixin base($theme) {
7
+ $tokens: map.get(m3-grid.get-tokens($theme), base);
8
+ @include token-utils.values($tokens);
9
+ }
10
+
11
+ @mixin color($theme) {
12
+ $tokens: map.get(m3-grid.get-tokens($theme), color);
13
+ @include token-utils.values($tokens);
14
+ }
15
+
16
+ @mixin typography($theme) {
17
+ $tokens: map.get(m3-grid.get-tokens($theme), typography);
18
+ @include token-utils.values($tokens);
19
+ }
20
+
21
+ @mixin density($theme) {
22
+ $tokens: map.get(m3-grid.get-tokens($theme), density);
23
+ @include token-utils.values($tokens);
24
+ }
25
+
26
+ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction.
27
+ @function _define-overrides() {
28
+ @return ((namespace: grid, tokens: token-utils.get-overrides(m3-grid.get-tokens(), grid)));
29
+ }
30
+
31
+ @mixin overrides($tokens: ()) {
32
+ @include token-utils.batch-create-token-values($tokens, _define-overrides());
33
+ }
34
+
35
+ @mixin theme($theme, $color-variant: null) {
36
+ @if mat.get-theme-version($theme) == 1 {
37
+ @include base($theme);
38
+ @include color($theme);
39
+ @include density($theme);
40
+ @include typography($theme);
41
+ } @else {
42
+ @include base($theme);
43
+ @if mat.theme-has($theme, color) {
44
+ @include color($theme);
45
+ }
46
+ @if mat.theme-has($theme, density) {
47
+ @include density($theme);
48
+ }
49
+ @if mat.theme-has($theme, typography) {
50
+ @include typography($theme);
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,34 @@
1
+ @use 'sass:map';
2
+ @use './../../../core/tokens/m3-utils';
3
+ @use './../../../core/tokens/m3';
4
+
5
+ @function get-tokens($theme: m3.$sys-theme) {
6
+ $system: m3-utils.get-system($theme);
7
+
8
+ $tokens: (
9
+ base: (
10
+ grid-container-shape: map.get($system, corner-medium),
11
+ grid-table-cell-min-width: 80px,
12
+ ),
13
+ color: (
14
+ grid-outline-color: map.get($system, outline-variant),
15
+ grid-column-menu-text-color: map.get($system, on-surface-variant),
16
+ grid-column-menu-divider-color: map.get($system, outline-variant),
17
+ grid-table-footer-background-color: map.get($system, surface-container),
18
+ grid-table-row-striped-background-color: map.get($system, surface-container),
19
+ grid-table-row-hover-background-color: map.get($system, secondary-container),
20
+ grid-table-row-selected-background-color: map.get($system, secondary-container),
21
+ grid-table-row-selected-hover-background-color: map.get($system, primary-container),
22
+ grid-table-cell-selected-outline-color: map.get($system, primary),
23
+ grid-resizable-handle-active-background-color: map.get($system, primary),
24
+ grid-resizable-handle-hover-background-color: map.get($system, primary),
25
+ grid-resizable-handle-disabled-background-color: map.get($system, outline-variant),
26
+ ),
27
+ typography: (),
28
+ density: (
29
+ grid-row-expand-button-size: 40px,
30
+ ),
31
+ );
32
+
33
+ @return $tokens;
34
+ }
@@ -0,0 +1,38 @@
1
+ // .acp-grid-img {
2
+ // display: inline-block;
3
+ // width: 32px;
4
+ // border-radius: 4px;
5
+ // vertical-align: middle;
6
+ // }
7
+
8
+ .acp-placeholder-box {
9
+ width: 50px;
10
+ height: 50px;
11
+ background: #f0f0f0;
12
+ border: 2px dashed #c2c2c2;
13
+ border-radius: 50%;
14
+
15
+ /* Centrado perfecto */
16
+ display: flex;
17
+ flex-direction: column;
18
+ justify-content: center;
19
+ align-items: center;
20
+
21
+ color: #6b7280; /* gris elegante */
22
+ font-size: 0.85rem;
23
+ gap: 8px;
24
+ }
25
+
26
+ .acp-placeholder-icon {
27
+ width: 32px;
28
+ height: 32px;
29
+ color: #3b82f6; /* azul bonito */
30
+ }
31
+
32
+ .acp-placeholder-image {
33
+ width: 50px;
34
+ height: 50px;
35
+ object-fit: cover;
36
+ border-radius: 50%;
37
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
38
+ }
@@ -0,0 +1,117 @@
1
+ @use '@angular/material' as mat;
2
+ @use './../../../../core/tokens/token-utils';
3
+ @use './../m3-grid';
4
+
5
+ $fallbacks: m3-grid.get-tokens();
6
+
7
+ .acp-grid-column-menu,
8
+ .acp-grid-column-pin-list {
9
+ color: token-utils.slot(grid-column-menu-text-color, $fallbacks);
10
+ }
11
+
12
+ .acp-grid-column-menu {
13
+ .mat-mdc-menu-content {
14
+ padding: 0;
15
+ }
16
+ }
17
+
18
+ .acp-grid-column-menu-body {
19
+ max-height: 65vh;
20
+ padding: 8px 16px;
21
+ overflow: auto;
22
+ }
23
+
24
+ .acp-grid-column-menu-header,
25
+ .acp-grid-column-menu-footer {
26
+ position: sticky;
27
+ z-index: 1;
28
+ padding: 8px 16px;
29
+ }
30
+
31
+ .acp-grid-column-menu-header {
32
+ top: 0;
33
+ border-bottom: 1px solid token-utils.slot(grid-column-menu-divider-color, $fallbacks);
34
+ }
35
+
36
+ .acp-grid-column-menu-footer {
37
+ bottom: 0;
38
+ border-top: 1px solid token-utils.slot(grid-column-menu-divider-color, $fallbacks);
39
+ }
40
+
41
+ .acp-grid-column-menu-list {
42
+ display: block;
43
+ max-width: 100%;
44
+
45
+ &.cdk-drop-list-dragging {
46
+ .acp-grid-column-menu-item:not(.cdk-drag-placeholder) {
47
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
48
+ }
49
+ }
50
+ }
51
+
52
+ .acp-grid-column-menu-item {
53
+ display: flex;
54
+ flex-direction: row;
55
+ align-items: center;
56
+
57
+ &.cdk-drag-disabled {
58
+ .cdk-drag-handle {
59
+ opacity: 0.35;
60
+ cursor: no-drop;
61
+ }
62
+ }
63
+
64
+ .cdk-drag-handle {
65
+ cursor: move;
66
+ }
67
+
68
+ &.cdk-drag-preview {
69
+ border-radius: 4px;
70
+ box-shadow: 0 0 0 1px token-utils.slot(grid-outline-color, $fallbacks);
71
+ }
72
+
73
+ &.cdk-drag-placeholder {
74
+ opacity: 0;
75
+ }
76
+
77
+ &.cdk-drag-animating {
78
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
79
+ }
80
+ }
81
+
82
+ .acp-grid-column-pin-button.mat-mdc-icon-button {
83
+ .mat-mdc-button-touch-target {
84
+ width: 100%;
85
+ height: 100%;
86
+ }
87
+ }
88
+
89
+ .acp-grid-column-pin-option.mat-menu-item {
90
+ display: flex;
91
+ align-items: center;
92
+ height: 32px;
93
+ }
94
+
95
+ .acp-grid-column-pin-option-placeholder {
96
+ display: inline-block;
97
+ width: 20px;
98
+ height: 20px;
99
+ line-height: 20px;
100
+ vertical-align: middle;
101
+ }
102
+
103
+ .acp-grid-column-pin-option-text {
104
+ padding: 0 8px;
105
+ vertical-align: middle;
106
+ }
107
+
108
+ .acp-grid-column-drag-handle-icon:hover {
109
+ cursor: move;
110
+ }
111
+
112
+ .acp-grid-column-menu-item-label.mat-mdc-checkbox {
113
+ .mat-mdc-checkbox-touch-target {
114
+ width: 100%;
115
+ height: 100%;
116
+ }
117
+ }
@@ -0,0 +1,126 @@
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './../../../../core/tokens/token-utils';
4
+ @use './../m3-grid';
5
+
6
+ $fallbacks: m3-grid.get-tokens();
7
+
8
+ // Required for resizing to work properly.
9
+ .mat-column-resize-table.cdk-column-resize-with-resized-column {
10
+ table-layout: fixed;
11
+ }
12
+
13
+ .mat-column-resize-flex {
14
+ .mat-mdc-header-cell,
15
+ .mat-mdc-cell {
16
+ box-sizing: border-box;
17
+ min-width: 32px;
18
+ }
19
+ }
20
+
21
+ .mat-mdc-header-cell {
22
+ position: relative;
23
+ }
24
+
25
+ .mat-resizable {
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ .mat-mdc-header-cell:not(.mat-resizable)::after,
30
+ .mat-resizable-handle {
31
+ position: absolute;
32
+ bottom: 0;
33
+ top: 0;
34
+ right: 0;
35
+ width: 1px;
36
+ background: transparent;
37
+ transition: background mat.$private-swift-ease-in-duration
38
+ mat.$private-swift-ease-in-timing-function;
39
+ }
40
+
41
+ .mat-mdc-header-cell:not(.mat-resizable)::after {
42
+ content: '';
43
+ }
44
+
45
+ [dir='rtl'] {
46
+ .mat-mdc-header-cell:not(.mat-resizable)::after,
47
+ .mat-resizable-handle {
48
+ left: 0;
49
+ right: auto;
50
+ }
51
+
52
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active {
53
+ .mat-header-cell,
54
+ .mat-mdc-header-cell {
55
+ border-left: none;
56
+ }
57
+ }
58
+ }
59
+
60
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active {
61
+ .mat-mdc-header-cell {
62
+ border-right: none;
63
+ }
64
+
65
+ .mat-mdc-header-cell:not(.mat-resizable)::after {
66
+ background-color: token-utils.slot(grid-resizable-handle-disabled-background-color, $fallbacks);
67
+ }
68
+
69
+ .mat-resizable-handle {
70
+ background-color: token-utils.slot(grid-resizable-handle-hover-background-color, $fallbacks);
71
+ }
72
+ }
73
+
74
+ .mat-resizable.cdk-resizable-overlay-thumb-active > .mat-resizable-handle {
75
+ opacity: 0;
76
+ transition: none;
77
+ }
78
+
79
+ .mat-resizable-handle:focus,
80
+ .mat-mdc-header-row.cdk-column-resize-hover-or-active .mat-resizable-handle:focus {
81
+ outline: none;
82
+ background-color: token-utils.slot(grid-resizable-handle-active-background-color, $fallbacks);
83
+ }
84
+
85
+ .mat-column-resize-overlay-thumb {
86
+ background: transparent;
87
+ cursor: col-resize;
88
+ width: 100%;
89
+ height: 100%;
90
+ transition: background mat.$private-swift-ease-in-duration
91
+ mat.$private-swift-ease-in-timing-function;
92
+
93
+ @include mat.private-user-select(none);
94
+
95
+ &:active {
96
+ will-change: transform;
97
+
98
+ $bg-color: token-utils.slot(grid-resizable-handle-active-background-color, $fallbacks);
99
+
100
+ background: linear-gradient(
101
+ 90deg,
102
+ transparent,
103
+ transparent 7px,
104
+ $bg-color 7px,
105
+ $bg-color 9px,
106
+ transparent 9px,
107
+ transparent
108
+ );
109
+
110
+ .mat-column-resize-overlay-thumb-top {
111
+ background: linear-gradient(
112
+ 90deg,
113
+ transparent,
114
+ transparent 4px,
115
+ $bg-color 4px,
116
+ $bg-color 12px,
117
+ transparent 12px,
118
+ transparent
119
+ );
120
+ }
121
+ }
122
+ }
123
+
124
+ .mat-column-resize-overlay-thumb-top {
125
+ width: 100%;
126
+ }