@enigmatry/entry-components 1.15.1-preview.15 → 1.15.1-preview.17

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enigmatry/entry-components",
3
- "version": "1.15.1-preview.15",
3
+ "version": "1.15.1-preview.17",
4
4
  "author": "Enigmatry",
5
5
  "description": "Enigmatry entry angular material components",
6
6
  "homepage": "https://github.com/enigmatry/entry-angular-building-blocks/tree/master/libs/entry-components#readme",
@@ -1,16 +1,14 @@
1
1
  @use 'modules/components/dialogs/generator' as dialog;
2
2
  @use 'modules/components/headers/generator' as header;
3
3
  @use 'modules/components/tables/generator' as table;
4
- @use 'modules/elements/generator' as elements;
5
4
  @use 'modules/default-theme' as default;
6
- @use 'modules/angular-material-generator' as material-theme;
5
+ @use 'modules/vendors/angular-material/generator' as material-theme;
7
6
  @use 'sass:map';
8
7
 
9
8
  @mixin generate-from($custom-theme: ()) {
10
9
  $merged-theme: map.deep-merge(default.$theme, $custom-theme);
11
10
 
12
11
  @include material-theme.generate-from($merged-theme);
13
- @include elements.generate-from($merged-theme);
14
12
  @include table.generate-from($merged-theme);
15
13
  @include dialog.generate-from($merged-theme);
16
14
  @include header.generate-from($merged-theme);
@@ -1,4 +1,3 @@
1
- /* stylelint-disable number-max-precision */
2
1
  $theme: (
3
2
  general: (
4
3
  colors: (
@@ -7,36 +6,40 @@ $theme: (
7
6
  primary: #2581C4,
8
7
  accent: #EA518D,
9
8
  dark: #323232,
10
- disabled: #D9D9D9,
11
9
  disabled-light: #F5F5F5
12
10
  ),
13
- font: (
14
- family: '',
15
- size: 14px
16
- ),
17
- buttons: (
18
- color: #FFF
19
- ),
20
- inputs: (
21
- background-color: #FFF
11
+ typography: null,
12
+ fonts: (
13
+ hero-titles: (
14
+ family: '',
15
+ size: 0
16
+ ),
17
+ titles: (
18
+ family: '',
19
+ size: 0
20
+ ),
21
+ body: (
22
+ family: '',
23
+ size: 0
24
+ ),
25
+ buttons: (
26
+ family: '',
27
+ size: 0
28
+ )
22
29
  )
23
30
  ),
24
31
  tables: (
25
32
  cells: (
26
- first-cell-padding-left: 4px,
27
- last-cell-padding-right: 4px,
28
- min-width: unset
33
+ edge-gap: 4px
29
34
  ),
30
35
  rows: (
31
- selected-background-color: #06C,
32
36
  selected-color: #FFF,
33
37
  odd-even-row: odd,
34
38
  odd-even-background: #F0F0F0
35
39
  ),
36
40
  columns: (
37
41
  sorted: (
38
- font-weight: 700,
39
- content-align: left
42
+ font-weight: 700
40
43
  )
41
44
  ),
42
45
  contents: (
@@ -10,14 +10,10 @@
10
10
  }
11
11
 
12
12
  .mat-mdc-header-cell:first-of-type, .mat-mdc-cell:first-of-type, .mat-mdc-footer-cell:first-of-type {
13
- padding-left: map.get($theme, 'tables', 'cells', 'first-cell-padding-left');
13
+ padding-left: map.get($theme, 'tables', 'cells', 'edge-gap');
14
14
  }
15
15
 
16
16
  .mat-mdc-header-cell:last-of-type, .mat-mdc-cell:last-of-type, .mat-mdc-footer-cell:last-of-type {
17
- padding-right: map.get($theme, 'tables', 'cells', 'last-cell-padding-right');
18
- }
19
-
20
- .entry-table-checkbox-cell, .entry-table-context-menu-cell {
21
- min-width: map.get($theme, 'tables', 'cells', 'min-width');
17
+ padding-right: map.get($theme, 'tables', 'cells', 'edge-gap');
22
18
  }
23
19
  }
@@ -3,19 +3,16 @@
3
3
 
4
4
  @mixin generate-from($theme) {
5
5
  .mat-mdc-row {
6
- @include list.row-coloring(map.get($theme, 'tables', 'rows', 'odd-even-background'),
7
- map.get($theme, 'tables', 'rows', 'odd-even-row'));
6
+ &.mdc-data-table__row {
7
+ @include list.row-coloring(map.get($theme, 'tables', 'rows', 'odd-even-background'),
8
+ map.get($theme, 'tables', 'rows', 'odd-even-row'));
8
9
 
9
- &.selected {
10
- background-color: map.get($theme, 'tables', 'rows', 'selected-background-color');
10
+ &.selected {
11
+ background-color: map.get($theme, 'general', 'colors', 'primary');
11
12
 
12
- &:hover {
13
- background-color: map.get($theme, 'tables', 'rows', 'selected-background-color');
14
- color: map.get($theme, 'tables', 'rows', 'selected-color');
15
- }
16
-
17
- .mat-mdc-cell {
18
- color: map.get($theme, 'tables', 'rows', 'selected-color');
13
+ .mat-mdc-cell {
14
+ color: map.get($theme, 'tables', 'rows', 'selected-color');
15
+ }
19
16
  }
20
17
  }
21
18
  }
@@ -11,8 +11,4 @@
11
11
  .mat-sort-header-sorted, .mat-sort-header-arrow {
12
12
  color: map.get($theme, 'general', 'colors', 'dark');
13
13
  }
14
-
15
- .mat-sort-header-content {
16
- text-align: map.get($theme, 'tables', 'columns', 'sorted', 'content-align');
17
- }
18
14
  }
@@ -1,6 +1,6 @@
1
1
  @use 'sass:map';
2
2
 
3
- $font-path: '../../../../assets/fonts/';
3
+ $font-path: 'assets/fonts/';
4
4
  $font-sources: (
5
5
  (
6
6
  name: 'OpenSans',
@@ -38,34 +38,3 @@ $font-sources: (
38
38
  }
39
39
  }
40
40
  }
41
-
42
- @mixin font($family: 'OpenSans-normal', $size: 14px) {
43
- font: {
44
- family: $family;
45
- size: $size;
46
- };
47
- }
48
-
49
- @mixin main-font($size: 14px) {
50
- @include font('OpenSans-normal', $size);
51
- }
52
-
53
- @mixin main-bolded-font($size: 14px) {
54
- @include font('OpenSans-Bold', $size);
55
- }
56
-
57
- @mixin title-font($size: 20px) {
58
- @include font('Montserrat-bold', $size);
59
- }
60
-
61
- @mixin font-family-from($theme) {
62
- $font-family: map.get($theme, 'general', 'font', 'family');
63
-
64
- @if $font-family == '' {
65
- @content;
66
- }
67
- @else {
68
- $font-size: map.get($theme, 'general', 'font', 'size');
69
- @include font($font-family, $font-size);
70
- }
71
- }
@@ -1,22 +1,32 @@
1
1
  @use '@angular/material' as theming;
2
2
  @use 'palette-generator';
3
+ @use 'typography-generator';
3
4
  @use 'sass:map';
5
+ @use '../../typography/fonts';
4
6
 
5
7
  /* stylelint-disable scss/function-no-unknown */
6
8
  @mixin generate-from($theme) {
7
9
  @include theming.core();
10
+ $body-font: map.get($theme, 'general', 'fonts', 'body', 'family');
11
+
12
+ @if $body-font == '' {
13
+ @include fonts.generate-default-font();
14
+ }
8
15
 
9
16
  $primary-palette: theming.define-palette(-get-material-palette-for('primary', $theme));
10
17
  $accent-palette: theming.define-palette(-get-material-palette-for('accent', $theme));
11
18
  $warn-palette: theming.define-palette(theming.$red-palette);
12
19
 
20
+ $typography: typography-generator.generate-from($theme);
21
+ @include theming.typography-hierarchy($typography);
22
+
13
23
  $default-theme: theming.define-light-theme((
14
24
  color: (
15
25
  primary: $primary-palette,
16
26
  accent: $accent-palette,
17
27
  warn: $warn-palette
18
28
  ),
19
- typography: theming.define-typography-config()
29
+ typography: $typography
20
30
  ));
21
31
 
22
32
  @include theming.all-component-themes($default-theme);
@@ -0,0 +1,98 @@
1
+ /* stylelint-disable scss/no-duplicate-dollar-variables, scss/function-no-unknown */
2
+ @use '@angular/material' as theming;
3
+ @use 'sass:map';
4
+
5
+ @function generate-from($theme) {
6
+ $theme-typography: map.get($theme, 'general', 'typography');
7
+
8
+ @if $theme-typography {
9
+ @return $theme-typography;
10
+ }
11
+
12
+ @return -generate-typography-from($theme);
13
+ }
14
+
15
+ @function -generate-typography-from($theme) {
16
+ $fonts: map.get($theme, 'general', 'fonts');
17
+ $typography: theming.define-typography-config();
18
+
19
+ $typography: -set-font-size-for('body', $typography, $fonts, ('body-1', 'body-2'));
20
+ $typography: -set-font-size-for('buttons', $typography, $fonts, ('buttons'));
21
+ $typography: -set-font-size-for('hero-titles', $typography, $fonts, ('headline-1', 'headline-2', 'headline-3', 'headline-4'));
22
+ $typography: -set-font-size-for('titles', $typography, $fonts, ('headline-5', 'headline-6', 'subtitle-1', 'subtitle-2'));
23
+ $typography: -set-font-family($typography, $fonts);
24
+
25
+ @return $typography;
26
+ }
27
+
28
+ @function -set-font-size-for($selector, $typography, $fonts, $desired-size-settings) {
29
+ $desired-size: map.get($fonts, $selector, 'size');
30
+
31
+ @if $desired-size != 0 {
32
+ @each $setting in $desired-size-settings {
33
+ $typography: map.set($typography, $setting, 'font-size', $desired-size);
34
+ }
35
+ }
36
+
37
+ @return $typography;
38
+ }
39
+
40
+ @function -set-font-family($typography, $fonts) {
41
+ $body-font: map.get($fonts, 'body', 'family');
42
+
43
+ @if $body-font == '' {
44
+ @return -generate-defaults-from($typography);
45
+ }
46
+
47
+ $typography: -set-typography-group($typography, ('body-1', 'body-2', 'caption'), $body-font);
48
+
49
+ $titles-font: map.get($fonts, 'titles', 'family');
50
+ $hero-titles-font: map.get($fonts, 'hero-titles', 'family');
51
+ $buttons-font: map.get($fonts, 'buttons', 'family');
52
+
53
+ // We fallback to body font if buttons font isn't provided.
54
+ @if $buttons-font == '' {
55
+ $buttons-font: $body-font;
56
+ }
57
+
58
+ // Both titles font fallback to body font unless main one's being set.
59
+ @if $hero-titles-font == '' and $titles-font == '' {
60
+ $hero-titles-font: $body-font;
61
+ $titles-font: $body-font;
62
+ }
63
+ @else if $hero-titles-font == '' and $titles-font != '' {
64
+ $hero-titles-font: $titles-font;
65
+ }
66
+
67
+ $typography: -set-text-groups-for($typography, $body-font, $buttons-font);
68
+ $typography: -set-typography-group($typography, ('headline-1', 'headline-2', 'headline-3', 'headline-4'), $hero-titles-font);
69
+ $typography: -set-typography-group($typography, ('headline-5', 'headline-6', 'subtitle-1', 'subtitle-2'), $titles-font);
70
+
71
+ @return $typography;
72
+ }
73
+
74
+ @function -set-text-groups-for($typography, $body-font, $buttons-font) {
75
+ $typography: -set-typography-group($typography, ('body-1', 'body-2', 'caption'), $body-font);
76
+ $typography: -set-typography-group($typography, ('button'), $buttons-font);
77
+ @return $typography;
78
+ }
79
+
80
+ @function -generate-defaults-from($typography) {
81
+ $typography: -set-text-groups-for($typography, 'OpenSans-normal', 'OpenSans-bold');
82
+ $typography: -set-typography-group($typography,('headline-1', 'headline-2', 'headline-3',
83
+ 'headline-4', 'headline-5', 'headline-6', 'subtitle-1', 'subtitle-2'),'Montserrat-bold');
84
+ @return $typography;
85
+ }
86
+
87
+ @function -set-typography-group($typography, $desired-typography-group, $font) {
88
+ @each $setting in $desired-typography-group {
89
+ $typography: -set-typography-font($typography, $setting, $font);
90
+ }
91
+
92
+ @return $typography;
93
+ }
94
+
95
+ @function -set-typography-font($typography, $section, $font) {
96
+ $typography: map.set($typography, $section, 'font-family', $font);
97
+ @return $typography;
98
+ }
@@ -8,6 +8,10 @@
8
8
  margin-left: 10px;
9
9
  }
10
10
  }
11
+
12
+ .entry-checkbox {
13
+ display: block;
14
+ }
11
15
  }
12
16
 
13
17
  .mat-mdc-form-field {
@@ -1,16 +1,3 @@
1
- .entry-table .mat-icon-button {
2
- padding-top: 8px;
3
- border: none;
4
- background-color: transparent;
5
- cursor: pointer;
6
- }
7
-
8
- .entry-table-checkbox-cell {
9
- flex: none;
10
- width: 56px;
11
- max-width: 40px;
12
-
13
- .mat-mdc-checkbox {
14
- display: flex;
15
- }
1
+ .entry-table-checkbox-cell, .entry-table-context-menu-cell {
2
+ width: 48px;
16
3
  }
@@ -1,5 +1,2 @@
1
1
  @use 'action-cells';
2
- @use 'cells';
3
- @use 'layout';
4
- @use 'rows';
5
- @use 'sorting';
2
+ @use 'layout';
@@ -1,23 +1,11 @@
1
1
  @use '@enigmatry/scss-foundation/src/modules/display/items';
2
2
 
3
3
  .entry-table {
4
- display: flex;
5
- position: relative;
6
- flex-direction: column;
7
- width: 100%;
8
-
9
- .mat-mdc-table-container {
10
- overflow: auto;
11
-
12
- &.mat-mdc-table-with-data {
4
+ .mat-table-container {
5
+ &.mat-table-with-data {
13
6
  flex: 1;
14
7
  }
15
8
  }
16
-
17
- .mat-mdc-table {
18
- min-width: 100%;
19
- border-collapse: separate;
20
- }
21
9
  }
22
10
 
23
11
  .entry-table-layout {
@@ -26,11 +14,6 @@
26
14
  overflow: auto;
27
15
  }
28
16
 
29
- .entry-table-content {
30
- flex-direction: column;
31
- width: 0;
32
- }
33
-
34
17
  .entry-table-footer {
35
18
  position: relative;
36
19
  z-index: 1;
@@ -5,11 +5,11 @@ $custom-theme: (
5
5
  colors: (
6
6
  primary: #FAE3C1
7
7
  ),
8
- font: (
9
- size: 13px
10
- ),
11
- buttons: (
12
- color: #AAA
8
+ fonts: (
9
+ body: (
10
+ family: 'My-Font',
11
+ size: 41px
12
+ )
13
13
  )
14
14
  ),
15
15
  tables: (
@@ -1,20 +0,0 @@
1
- @use 'sass:map';
2
- @use '../default-theme' as default;
3
- @use '../typography/fonts';
4
- @use 'anchors/generator' as anchors;
5
- @use 'buttons/generator' as buttons;
6
-
7
- $default-theme: default.$theme;
8
-
9
- @mixin generate-from($custom-theme: ()) {
10
- $merged-theme: map.deep-merge($default-theme, $custom-theme);
11
-
12
- $font-family: map.get($merged-theme, 'general', 'font', 'family');
13
-
14
- @if $font-family == '' {
15
- // @include fonts.generate-default-font();
16
- }
17
-
18
- @include anchors.generate-from($merged-theme);
19
- @include buttons.generate-from($merged-theme);
20
- }
@@ -1,16 +0,0 @@
1
- @use 'sass:map';
2
-
3
- @mixin generate-from($theme) {
4
- $colors: map.get($theme, 'general', 'colors');
5
- $primary-color: map.get($colors, 'primary');
6
- $accent-color: map.get($colors, 'accent');
7
-
8
- .entry-link {
9
- color: $primary-color;
10
- text-decoration: none;
11
-
12
- &:hover {
13
- color: $accent-color;
14
- }
15
- }
16
- }
@@ -1,12 +0,0 @@
1
- %entry-button {
2
- display: inline-block;
3
- padding: 10px 20px;
4
- transition: .4s;
5
- border: 0;
6
- line-height: 1.25;
7
- cursor: pointer;
8
- text: {
9
- align: center;
10
- decoration: none;
11
- }
12
- }
@@ -1,45 +0,0 @@
1
- @use 'default';
2
- @use 'sass:map';
3
- @use '../../typography/fonts';
4
- @use '../../states/hover';
5
-
6
- @mixin generate-from($theme) {
7
- $button-color: map.get($theme, 'general', 'buttons', 'color');
8
- $colors: map.get($theme, 'general', 'colors');
9
- $primary-color: map.get($colors, 'primary');
10
- $accent-color: map.get($colors, 'accent');
11
- $disabled-color: map.get($colors, 'disabled');
12
-
13
- .entry-button-accent, .entry-button-primary, .entry-button-dark {
14
- @extend %entry-button;
15
- @include fonts.font-family-from($theme) {
16
- @include fonts.main-bolded-font();
17
- }
18
- color: $button-color;
19
- }
20
-
21
- .entry-button-primary {
22
- @include hover.default($primary-color, $accent-color, $button-color, $disabled-color);
23
- }
24
-
25
- .entry-button-accent {
26
- @include hover.default($accent-color, $primary-color, $button-color, $disabled-color);
27
- }
28
-
29
- .entry-button-dark {
30
- @include hover.default(map.get($colors, 'dark'), $primary-color, $button-color, $disabled-color);
31
- }
32
-
33
- .entry-button-blank {
34
- @include fonts.font-family-from($theme) {
35
- @include fonts.main-font();
36
- }
37
-
38
- @include hover.default(transparent, transparent, $accent-color, transparent);
39
- color: $primary-color;
40
-
41
- &:disabled {
42
- color: $primary-color;
43
- }
44
- }
45
- }
@@ -1,18 +0,0 @@
1
- @mixin default($background, $hover-background, $color, $disabled-background) {
2
- background-color: $background;
3
-
4
- &:hover, &:active {
5
- background-color: $hover-background;
6
- color: $color;
7
- }
8
-
9
- &:disabled, &.disabled {
10
- background-color: $disabled-background;
11
- cursor: not-allowed;
12
-
13
- /* stylelint-disable-next-line selector-max-pseudo-class */
14
- &:hover {
15
- background-color: $disabled-background;
16
- }
17
- }
18
- }
@@ -1,47 +0,0 @@
1
- @use '@enigmatry/scss-foundation/src/modules/display/items';
2
-
3
- .entry-table {
4
- .mat-mdc-cell, .mat-mdc-header-cell {
5
- padding: 0 10px;
6
- border-bottom: none;
7
- }
8
-
9
- .mat-mdc-header-cell, .mat-mdc-footer-cell, .mat-mdc-cell {
10
- box-sizing: border-box;
11
- padding: 4px 10px;
12
-
13
- &.entry-table-checkbox-cell {
14
- padding: {
15
- right: 10px;
16
- left: 10px;
17
- }
18
- }
19
-
20
- &.entry-table-context-menu-cell {
21
- @include items.fully-align(center, flex-end);
22
- /* stylelint-disable-next-line declaration-no-important */
23
- min-width: unset !important;
24
- }
25
- }
26
-
27
- .mat-mdc-table {
28
- .mat-mdc-header-cell, .mat-mdc-footer-cell, .mat-mdc-cell {
29
- &:not(.entry-table-checkbox-cell) {
30
- min-width: 80px;
31
- }
32
- }
33
- }
34
-
35
- .mat-header-cell-inner {
36
- display: flex;
37
- align-items: center;
38
- }
39
-
40
- .currency {
41
- text-align: right;
42
-
43
- .mat-header-cell-inner {
44
- justify-content: right;
45
- }
46
- }
47
- }
@@ -1,15 +0,0 @@
1
- .entry-table {
2
- .mat-mdc-table {
3
- .mdc-data-table__header-row, .mdc-data-table__row {
4
- height: 36px;
5
- }
6
- }
7
- }
8
-
9
- .entry-table-menu {
10
- min-height: 40px;
11
-
12
- .mat-mdc-menu-content:not(:empty) {
13
- padding: 0;
14
- }
15
- }
@@ -1,8 +0,0 @@
1
- .entry-table {
2
- .mat-sort-header-icon {
3
- width: 18px;
4
- height: 18px;
5
- margin: 0 4px;
6
- font-size: 18px;
7
- }
8
- }