@madgex/design-system 1.45.0 → 1.46.1

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 (90) hide show
  1. package/coverage/cobertura-coverage.xml +133 -143
  2. package/coverage/components/accordion/accordion.js.html +1 -1
  3. package/coverage/components/accordion/index.html +1 -1
  4. package/coverage/components/inputs/combobox/vue-components/Combobox.vue.html +3 -18
  5. package/coverage/components/inputs/combobox/vue-components/index.html +1 -1
  6. package/coverage/components/inputs/multi-select/vue-components/MultiSelect.vue.html +4 -40
  7. package/coverage/components/inputs/multi-select/vue-components/MultiSelectCheckbox.vue.html +1 -1
  8. package/coverage/components/inputs/multi-select/vue-components/MultiSelectCheckboxGroup.vue.html +1 -1
  9. package/coverage/components/inputs/multi-select/vue-components/index.html +1 -1
  10. package/coverage/components/modal/index.html +1 -1
  11. package/coverage/components/modal/modal.js.html +1 -1
  12. package/coverage/components/notification/index.html +1 -1
  13. package/coverage/components/notification/notification.js.html +1 -1
  14. package/coverage/components/popover/index.html +1 -1
  15. package/coverage/components/popover/popover.js.html +1 -1
  16. package/coverage/components/switch-state/index.html +1 -1
  17. package/coverage/components/switch-state/switch-state.js.html +1 -1
  18. package/coverage/components/tabs/index.html +1 -1
  19. package/coverage/components/tabs/tabs.js.html +1 -1
  20. package/coverage/index.html +13 -13
  21. package/coverage/js/common.js.html +1 -1
  22. package/coverage/js/fractal-scripts/combobox.js.html +7 -10
  23. package/coverage/js/fractal-scripts/index.html +9 -9
  24. package/coverage/js/fractal-scripts/multiselect.js.html +13 -73
  25. package/coverage/js/fractal-scripts/notification.js.html +1 -1
  26. package/coverage/js/fractal-scripts/switch-state.js.html +1 -1
  27. package/coverage/js/index-fractal.js.html +1 -1
  28. package/coverage/js/index-polyfills.js.html +1 -1
  29. package/coverage/js/index-vue.js.html +7 -10
  30. package/coverage/js/index.html +7 -7
  31. package/coverage/js/index.js.html +1 -1
  32. package/coverage/js/polyfills/closest.js.html +1 -1
  33. package/coverage/js/polyfills/index.html +1 -1
  34. package/coverage/js/polyfills/remove.js.html +1 -1
  35. package/coverage/tokens/_config.js.html +1 -1
  36. package/coverage/tokens/index.html +1 -1
  37. package/dist/_tokens/css/_tokens.css +1 -1
  38. package/dist/_tokens/js/_tokens-module.js +1 -1
  39. package/dist/_tokens/scss/_tokens.scss +1 -1
  40. package/dist/assets/icons.json +1 -1
  41. package/dist/css/index.css +1 -1
  42. package/dist/js/index.js +6 -6
  43. package/gulpfile.js +1 -1
  44. package/package.json +1 -1
  45. package/src/components/button/button.scss +0 -8
  46. package/src/components/inputs/_form-elements.scss +129 -0
  47. package/src/components/inputs/_label/_macro.njk +3 -0
  48. package/src/components/inputs/_label/_template.njk +37 -0
  49. package/src/components/inputs/_message/_macro.njk +3 -0
  50. package/src/components/inputs/_message/_template.njk +24 -0
  51. package/src/components/inputs/checkbox/README.md +4 -0
  52. package/src/components/inputs/checkbox/_template.njk +37 -19
  53. package/src/components/inputs/checkbox/checkbox.config.js +2 -3
  54. package/src/components/inputs/checkbox/checkbox.njk +10 -8
  55. package/src/components/inputs/combobox/README.md +5 -1
  56. package/src/components/inputs/combobox/_template.njk +37 -18
  57. package/src/components/inputs/combobox/combobox.scss +3 -31
  58. package/src/components/inputs/combobox/vue-components/Combobox.vue +1 -6
  59. package/src/components/inputs/combobox/vue-components/ComboboxInput.vue +2 -2
  60. package/src/components/inputs/input/_template.njk +16 -49
  61. package/src/components/inputs/input/input.njk +18 -16
  62. package/src/components/inputs/multi-select/README.md +4 -0
  63. package/src/components/inputs/multi-select/_template.njk +24 -12
  64. package/src/components/inputs/multi-select/multi-select.config.js +28 -0
  65. package/src/components/inputs/multi-select/multi-select.njk +10 -6
  66. package/src/components/inputs/multi-select/multi-select.scss +12 -28
  67. package/src/components/inputs/multi-select/vue-components/MultiSelect.vue +2 -14
  68. package/src/components/inputs/radio/README.md +4 -0
  69. package/src/components/inputs/radio/_template.njk +36 -18
  70. package/src/components/inputs/radio/radio.config.js +7 -28
  71. package/src/components/inputs/radio/radio.njk +10 -8
  72. package/src/components/pagination/pagination.scss +10 -6
  73. package/src/components/pagination-numbers/README.md +1 -1
  74. package/src/components/pagination-numbers/_pagination-numbers-number-macro.njk +2 -2
  75. package/src/components/pagination-numbers/_template.njk +23 -12
  76. package/src/js/fractal-scripts/combobox.js +2 -3
  77. package/src/js/fractal-scripts/multiselect.js +7 -27
  78. package/src/js/index-vue.js +1 -2
  79. package/src/layout/containers/04-highlighted-containers.njk +3 -0
  80. package/src/layout/containers/highlighted-containers.config.json +3 -0
  81. package/src/layout/forms/README.md +1 -0
  82. package/src/layout/forms/forms.config.js +74 -0
  83. package/src/layout/forms/forms.njk +80 -0
  84. package/src/scss/components/__index.scss +2 -4
  85. package/src/scss/core/_containers.scss +5 -0
  86. package/src/scss/helpers/__index.scss +1 -1
  87. package/src/scss/import.scss +1 -1
  88. package/src/components/inputs/checkbox/checkbox.scss +0 -69
  89. package/src/components/inputs/input/input.scss +0 -89
  90. package/src/components/inputs/radio/radio.scss +0 -53
@@ -0,0 +1,74 @@
1
+ module.exports = {
2
+ title: 'Forms',
3
+ status: 'wip',
4
+ context: {
5
+ input: {
6
+ labelText: 'Email address',
7
+ id: 'email',
8
+ type: 'email',
9
+ },
10
+ multiselect: {
11
+ labelText: 'Role',
12
+ name: 'Role',
13
+ terms: [
14
+ { id: 7, label: 'Academic Pharmacist', terms: [] },
15
+ { id: 1, label: 'Community Pharmacist', terms: [] },
16
+ { id: 10, label: 'Dispensing Assistant', terms: [] },
17
+ { id: 4, label: 'Hospital Pharmacist', selected: true, terms: [] },
18
+ { id: 6, label: 'Industrial Pharmacist', terms: [] },
19
+ { id: 3, label: 'Locum Pharmacist', terms: [] },
20
+ { id: 11, label: 'Medicines Counter Assistant', terms: [] },
21
+ { id: 2, label: 'Pharmacy Manager', terms: [] },
22
+ { id: 12, label: 'Pharmacy Student', terms: [] },
23
+ { id: 9, label: 'Pharmacy Technician', terms: [] },
24
+ { id: 8, label: 'Pre-reg Pharmacist', selected: true, terms: [] },
25
+ { id: 513016, label: 'Primary Care Pharmacist', terms: [] },
26
+ { id: 513015, label: 'Region/Area Manager', terms: [] },
27
+ { id: 5, label: 'Senior Management', terms: [] },
28
+ { id: 513014, label: 'Superintendent Pharmacist', terms: [] },
29
+ { id: 13, label: 'Other Pharmacy roles', terms: [] },
30
+ ],
31
+ },
32
+ combobox: {
33
+ id: 'distance-selection',
34
+ labelText: 'How far are you willing to travel?',
35
+ options: { 5: 'Within 5 miles', 10: 'Within 10 miles', 15: 'Within 15 miles', 20: 'Within 20 miles' },
36
+ fallbackTo: 'select',
37
+ optional: true,
38
+ },
39
+ checkbox: {
40
+ id: 'checkbox-input',
41
+ labelText: 'Hours',
42
+ optional: true,
43
+ options: [
44
+ {
45
+ labelText: 'Full time',
46
+ value: '1-1',
47
+ id: 'checkbox-1-1',
48
+ },
49
+ {
50
+ labelText: 'Part time',
51
+ value: '1-2',
52
+ id: 'checkbox-1-2',
53
+ },
54
+ ],
55
+ },
56
+ radio: {
57
+ id: 'radio-input',
58
+ labelText: 'Frequency',
59
+ tooltipMessage: 'This is a tool tip message to help describe a bit better what you should do with this field.',
60
+ options: [
61
+ {
62
+ labelText: 'Daily',
63
+ value: '1-1',
64
+ id: 'radio-1-1',
65
+ },
66
+ {
67
+ labelText: 'Weekly',
68
+ value: '1-2',
69
+ id: 'radio-1-2',
70
+ },
71
+ ],
72
+ },
73
+ },
74
+ };
@@ -0,0 +1,80 @@
1
+ {% from "../components/inputs/checkbox/_macro.njk" import MdsCheckbox %}
2
+ {% from "../components/inputs/combobox/_macro.njk" import MdsCombobox %}
3
+ {% from "../components/inputs/input/_macro.njk" import MdsInput %}
4
+ {% from "../components/inputs/multi-select/_macro.njk" import MdsMultiSelect %}
5
+ {% from "../components/inputs/radio/_macro.njk" import MdsRadio %}
6
+ {% from "../components/button/_macro.njk" import MdsButton %}
7
+
8
+ <form class="mds-form mds-margin-bottom-b7">
9
+ <div class="mds-form-field">
10
+ {{ MdsInput({
11
+ labelText: input.labelText,
12
+ id: input.id,
13
+ type: input.type,
14
+ optional: input.optional,
15
+ tooltipMessage: input.tooltipMessage
16
+ }) }}
17
+ </div>
18
+ <div class="mds-form-field">
19
+ {{ MdsMultiSelect({
20
+ labelText: multiselect.labelText,
21
+ name: multiselect.name,
22
+ terms: multiselect.terms,
23
+ optional: multiselect.optional,
24
+ tooltipMessage: multiselect.tooltipMessage
25
+ }) }}
26
+ </div>
27
+ <div class="mds-form-field">
28
+ {{ MdsCombobox({
29
+ id: combobox.id,
30
+ labelText: combobox.labelText,
31
+ options: combobox.options,
32
+ fallbackTo: combobox.fallbackTo,
33
+ optional: combobox.optional,
34
+ tooltipMessage: combobox.tooltipMessage
35
+ }) }}
36
+ </div>
37
+ <div class="mds-form-field">
38
+ {{ MdsCheckbox({
39
+ labelText: checkbox.labelText,
40
+ id: checkbox.id,
41
+ options: checkbox.options,
42
+ optional: checkbox.optional,
43
+ tooltipMessage: checkbox.tooltipMessage
44
+ }) }}
45
+ </div>
46
+ <div class="mds-form-field">
47
+ {{ MdsRadio({
48
+ labelText: radio.labelText,
49
+ id: radio.id,
50
+ options: radio.options,
51
+ optional: radio.optional,
52
+ tooltipMessage: radio.tooltipMessage
53
+ }) }}
54
+ </div>
55
+ <div class="mds-clearfix">
56
+ {{ MdsButton({
57
+ text: 'Submit',
58
+ classes: 'mds-width-full mds-width-md-auto mds-float-md-right'
59
+ }) }}
60
+ </div>
61
+ </form>
62
+
63
+ <form class="mds-highlighted-container mds-padding-b4">
64
+ <div class="mds-grid-row mds-grid-bottom">
65
+ <div class="mds-grid-col-12 mds-grid-col-md-8 mds-grid-col-lg-10 mds-margin-bottom-b3 mds-margin-bottom-md-b0">
66
+ {{ MdsInput({
67
+ labelText: input.labelText,
68
+ id: input.id,
69
+ type: input.type,
70
+ optional: input.optional,
71
+ tooltipMessage: input.tooltipMessage
72
+ }) }}
73
+ </div>
74
+ <div class="mds-grid-col-12 mds-grid-col-md-4 mds-grid-col-lg-2">
75
+ {{ MdsButton({
76
+ text: 'Submit',
77
+ classes: 'mds-width-full mds-width-md-auto'
78
+ }) }}
79
+ </div>
80
+ </form>
@@ -3,15 +3,13 @@
3
3
  @import '../../components/card/card';
4
4
  @import '../../components/section-title/section-title';
5
5
  @import '../../components/tabs/tabs';
6
- @import '../../components/inputs/input/input';
7
6
  @import '../../components/textarea/textarea';
8
7
  @import '../../components/accordion/accordion';
9
8
  @import '../../components/pagination/pagination';
10
9
  @import '../../components/switch-state/switch-state';
11
10
  @import '../../components/popover/popover';
12
11
  @import '../../components/notification/notification';
12
+ @import '../../components/inputs/form-elements';
13
13
  @import '../../components/inputs/combobox/combobox';
14
- @import '../../components/inputs/radio/radio';
15
14
  @import '../../components/inputs/multi-select/multi-select';
16
- @import '../../components/modal/modal';
17
- @import '../../components/inputs/checkbox/checkbox';
15
+ @import '../../components/modal/modal';
@@ -94,3 +94,8 @@ $mds-half-gutter-width: $mds-size-gutter-width * 0.5;
94
94
  background: $mds-color-ad-container-leaderboard-background;
95
95
  }
96
96
  }
97
+
98
+ .mds-highlighted-container {
99
+ @extend .mds-border-radius;
100
+ background: $mds-color-neutral-lightest;
101
+ }
@@ -7,4 +7,4 @@
7
7
  @import 'edited-text';
8
8
  @import 'width';
9
9
  @import 'fluid-video';
10
- @import 'animation';
10
+ @import 'animation';
@@ -1,5 +1,5 @@
1
- @import 'resets/_index';
2
1
  @import 'vendor/normalize';
2
+ @import 'resets/_index';
3
3
  @import 'functions/_index';
4
4
  @import 'utilities/_index';
5
5
  @import 'core/_index';
@@ -1,69 +0,0 @@
1
- .mds-checkbox__group legend {
2
- margin-bottom: $mds-size-baseline * 2;
3
- font-weight: bold;
4
- }
5
-
6
- .mds-checkbox {
7
- display: block;
8
- margin-right: 0;
9
- margin-bottom: $mds-size-baseline * 2;
10
- }
11
-
12
- .mds-checkbox__group .mds-checkbox__input {
13
- opacity: 0;
14
- margin-top: $mds-size-baseline * 2;
15
- }
16
-
17
- .mds-checkbox__input {
18
- position: absolute;
19
- opacity: 0;
20
-
21
- & + .mds-checkbox__label {
22
- position: relative;
23
- cursor: pointer;
24
- margin-right: $mds-size-baseline * 4;
25
- }
26
-
27
- // Box.
28
- & + .mds-checkbox__label:before {
29
- content: '';
30
- margin-right: $mds-size-baseline * 2;
31
- display: inline-block;
32
- vertical-align: middle;
33
- width: $mds-size-baseline * 6;
34
- height: $mds-size-baseline * 6;
35
- background: white;
36
- border: $mds-color-input-border;
37
- border-radius: $mds-size-border-radius;
38
- position: relative;
39
- }
40
-
41
- // Box hover
42
- &:hover + .mds-checkbox__label:before, &:focus + .mds-checkbox__label:before {
43
- box-shadow: $mds-color-input-shadow-focus;
44
- }
45
-
46
- // Disabled state label.
47
- &:disabled + .mds-checkbox__label {
48
- color: $mds-color-input-disabled-label;
49
- cursor: auto;
50
- }
51
-
52
- // Disabled box
53
- &:disabled + .mds-checkbox__label:before {
54
- box-shadow: none;
55
- background: $mds-color-input-disabled-field;
56
- }
57
-
58
- // Checkmark
59
- &:checked + .mds-checkbox__label:after {
60
- content: '\2713';
61
- position: absolute;
62
- left: $mds-size-baseline * 1.5;
63
- top: 0;
64
- height: $mds-size-baseline;
65
- width: $mds-size-baseline;
66
- color: $mds-color-input-checked;
67
- }
68
-
69
- }
@@ -1,89 +0,0 @@
1
- .mds-input {
2
- margin-bottom: $mds-size-baseline * 4
3
- }
4
-
5
- .mds-input__wrapper {
6
- width: 100%;
7
- margin-bottom: $mds-size-baseline * 9;
8
- }
9
-
10
- .mds-input__wrapper-label {
11
- display: flex;
12
- & .mds-input__tooltip {
13
- right: 0;
14
- position: relative;
15
- }
16
- }
17
-
18
-
19
- .mds-input__label {
20
- flex: 1;
21
- font-weight: bold;
22
- margin-bottom: $mds-size-baseline * 4;
23
- display: block;
24
-
25
- &-optional {
26
- font-weight: normal;
27
- }
28
- }
29
-
30
- .mds-input__wrapper-input {
31
- display: flex;
32
- align-items: center;
33
- & .mds-input__input {
34
- width: 100%;
35
- padding: $mds-size-baseline * 3;
36
- border-radius: $mds-size-border-radius;
37
- border: $mds-size-border-width solid $mds-color-border;
38
- display: inline-block;
39
- &:focus {
40
- border: 1px solid $mds-color-input-focus;
41
- outline-color: $mds-color-input-focus;
42
- box-shadow: 0 0 4px 2px $mds-color-input-focus;
43
- }
44
- }
45
-
46
- & .mds-icon-container--circle {
47
- display: none;
48
- }
49
- }
50
-
51
- .mds-input__msg {
52
- padding-bottom: $mds-size-baseline * 4;
53
- @extend .mds-font-brevier;
54
- }
55
-
56
- .mds-input--has-msg {
57
- & .mds-input__label {
58
- margin-bottom: $mds-size-baseline * 2;
59
- }
60
- }
61
-
62
- .mds-input--error {
63
- & .mds-input__input {
64
- border-color: $mds-color-status-error-dark;
65
- background-color: $mds-color-status-error-lightest;
66
- border-left-width: $mds-size-baseline;
67
- padding-left: $mds-size-baseline * 2;
68
- &:focus {
69
- outline-color: $mds-color-status-error-dark;
70
- box-shadow: 0 0 4px 2px $mds-color-status-error-dark;
71
- border-color: $mds-color-status-error-dark;
72
- border-left-width: $mds-size-baseline;
73
- }
74
- }
75
-
76
- & .mds-input__label {
77
- margin-bottom: $mds-size-baseline * 2;
78
- }
79
-
80
- & .mds-icon--error {
81
- margin-right: $mds-size-baseline;
82
- }
83
-
84
- & .mds-input__msg--error {
85
- display: flex;
86
- align-items: center;
87
- color: $mds-color-status-error-dark;
88
- }
89
- }
@@ -1,53 +0,0 @@
1
- .mds-radio__group {
2
- padding: 0;
3
- margin-bottom: $mds-size-baseline * 4
4
- }
5
-
6
- .mds-radio__group legend {
7
- font-weight: bold;
8
- margin-bottom: $mds-size-baseline * 4;
9
- }
10
-
11
- .mds-radio {
12
- display: block;
13
- margin-right: $mds-size-baseline * 7;
14
- margin-bottom: $mds-size-baseline * 2;
15
- }
16
-
17
- .mds-radio__group .mds-radio__input {
18
- height: calc(#{$mds-size-baseline}*6 - #{$mds-size-baseline});
19
- width: calc(#{$mds-size-baseline}*6 - #{$mds-size-baseline});
20
- appearance: none;
21
- display: inline-block;
22
- padding: $mds-size-baseline;
23
- background-clip: content-box;
24
- border: $mds-color-input-border;
25
- background-color: transparent;
26
- border-radius: 50%;
27
- outline: 0;
28
- margin-right: $mds-size-baseline * 2;
29
- cursor: pointer;
30
-
31
- &:checked {
32
- background-color: $mds-color-input-checked;
33
- }
34
- &:focus, &:hover {
35
- box-shadow: $mds-color-input-shadow-focus;
36
- }
37
- &[disabled="disabled"] {
38
- cursor: default;
39
- border-color: $mds-color-input-disabled-field;
40
- box-shadow: none;
41
- &:checked {
42
- background-color: $mds-color-input-disabled-field;
43
- }
44
- }
45
- }
46
-
47
- .mds-radio__input:disabled + .mds-radio__label {
48
- color: $mds-color-input-disabled-label;
49
- }
50
-
51
- .mds-radio__label {
52
- vertical-align: super;
53
- }