@configura/web-ui 1.3.0-alpha.5 → 1.3.0-alpha.7

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 (79) hide show
  1. package/.postcssrc.json +8 -8
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/components/CanvasWrapper.d.ts +9 -9
  5. package/dist/components/CanvasWrapper.js +8 -8
  6. package/dist/components/ConfigurationActionsButtonRow.d.ts +11 -11
  7. package/dist/components/ConfigurationActionsButtonRow.js +13 -13
  8. package/dist/components/Configurator.d.ts +12 -12
  9. package/dist/components/Configurator.js +15 -15
  10. package/dist/components/ConfiguratorWrapper.d.ts +8 -8
  11. package/dist/components/ConfiguratorWrapper.js +5 -5
  12. package/dist/components/CurrencyPrice.d.ts +9 -9
  13. package/dist/components/CurrencyPrice.js +7 -7
  14. package/dist/components/ExpandableHeadingRow.d.ts +15 -15
  15. package/dist/components/ExpandableHeadingRow.js +21 -21
  16. package/dist/components/Loading.d.ts +13 -13
  17. package/dist/components/Loading.js +20 -20
  18. package/dist/components/ProductInformation.d.ts +10 -10
  19. package/dist/components/ProductInformation.js +23 -23
  20. package/dist/components/icons/Checkmark.d.ts +5 -5
  21. package/dist/components/icons/Checkmark.js +12 -12
  22. package/dist/components/icons/Chevron.d.ts +6 -6
  23. package/dist/components/icons/Chevron.js +18 -18
  24. package/dist/components/productConfiguration/CfgAdditionalProductView.d.ts +3 -3
  25. package/dist/components/productConfiguration/CfgAdditionalProductView.js +28 -28
  26. package/dist/components/productConfiguration/CfgCheckboxView.d.ts +18 -18
  27. package/dist/components/productConfiguration/CfgCheckboxView.js +22 -22
  28. package/dist/components/productConfiguration/CfgCheckboxesView.d.ts +12 -12
  29. package/dist/components/productConfiguration/CfgCheckboxesView.js +18 -18
  30. package/dist/components/productConfiguration/CfgDropdownOptionView.d.ts +18 -18
  31. package/dist/components/productConfiguration/CfgDropdownOptionView.js +35 -35
  32. package/dist/components/productConfiguration/CfgDropdownView.d.ts +12 -12
  33. package/dist/components/productConfiguration/CfgDropdownView.js +20 -20
  34. package/dist/components/productConfiguration/CfgFeatureView.d.ts +27 -27
  35. package/dist/components/productConfiguration/CfgFeatureView.js +34 -34
  36. package/dist/components/productConfiguration/CfgGroupView.d.ts +4 -4
  37. package/dist/components/productConfiguration/CfgGroupView.js +13 -13
  38. package/dist/components/productConfiguration/CfgOptionFeaturesView.d.ts +6 -6
  39. package/dist/components/productConfiguration/CfgOptionFeaturesView.js +13 -13
  40. package/dist/components/productConfiguration/CfgOptionNumericView.d.ts +27 -27
  41. package/dist/components/productConfiguration/CfgOptionNumericView.js +117 -116
  42. package/dist/components/productConfiguration/CfgOptionPriceView.d.ts +9 -9
  43. package/dist/components/productConfiguration/CfgOptionPriceView.js +29 -29
  44. package/dist/components/productConfiguration/CfgProductConfigurationView.d.ts +18 -18
  45. package/dist/components/productConfiguration/CfgProductConfigurationView.js +45 -45
  46. package/dist/css/web-ui.css +1 -1
  47. package/dist/css/web-ui.css.map +1 -1
  48. package/dist/index.d.ts +20 -20
  49. package/dist/index.js +20 -20
  50. package/dist/scss/_button.scss +36 -36
  51. package/dist/scss/_configurator.scss +67 -67
  52. package/dist/scss/_expandable.scss +37 -37
  53. package/dist/scss/_feature-item.scss +124 -124
  54. package/dist/scss/_hr.scss +16 -16
  55. package/dist/scss/_loading.scss +98 -98
  56. package/dist/scss/_mixins.scss +56 -56
  57. package/dist/scss/_option-tree.scss +29 -29
  58. package/dist/scss/_product-information.scss +49 -49
  59. package/dist/scss/_range-view.scss +28 -20
  60. package/dist/scss/_slider.scss +70 -70
  61. package/dist/scss/_themed.scss +124 -124
  62. package/dist/scss/_utilities.scss +21 -21
  63. package/dist/scss/_variables.scss +6 -6
  64. package/dist/scss/icons/_checkmark.scss +46 -46
  65. package/dist/scss/icons/_chevron.scss +62 -62
  66. package/dist/scss/web-ui.scss +11 -11
  67. package/dist/useObservable.d.ts +4 -4
  68. package/dist/useObservable.js +18 -18
  69. package/dist/useRerender.d.ts +1 -1
  70. package/dist/useRerender.js +5 -5
  71. package/dist/useResize.d.ts +6 -6
  72. package/dist/useResize.js +47 -47
  73. package/dist/useSelected.d.ts +2 -2
  74. package/dist/useSelected.js +13 -13
  75. package/dist/useUniqueId.d.ts +1 -1
  76. package/dist/useUniqueId.js +7 -7
  77. package/dist/utilities.d.ts +5 -5
  78. package/dist/utilities.js +1 -1
  79. package/package.json +3 -3
@@ -1,124 +1,124 @@
1
- /**
2
- * Web UI Feature item
3
- */
4
-
5
- @use "mixins";
6
-
7
- @mixin classes(
8
- $textColor,
9
- $grayTextColor,
10
- $checkButtonUncheckedColor,
11
- $checkButtonCheckedColor,
12
- $focusOutlineInnerColor,
13
- $focusOutlineOuterColor
14
- ) {
15
- .cfgThumbnailImage {
16
- border-radius: 0.7em;
17
- display: inline-block;
18
- height: 3em;
19
- width: 3em;
20
- }
21
-
22
- .cfgThumbnailPlaceholder {
23
- align-items: center;
24
- display: flex;
25
- flex: 0 0 4.2em;
26
- justify-content: flex-start;
27
- }
28
-
29
- .cfgFeatureItem {
30
- @include mixins.cfgRootStyles;
31
-
32
- color: $textColor;
33
-
34
- &__dropdown {
35
- @include mixins.noButtonLook;
36
- align-items: stretch;
37
- display: flex;
38
- height: 3.9em;
39
- outline: 0;
40
- position: relative;
41
- width: 100%;
42
- cursor: pointer;
43
- }
44
-
45
- &--optional {
46
- margin-top: 1em;
47
- }
48
-
49
- &__hiddenInput {
50
- left: -99999px;
51
- opacity: 0;
52
- position: absolute;
53
- z-index: -1;
54
- }
55
-
56
- &__radio {
57
- @include mixins.cfgRadio($checkButtonUncheckedColor);
58
- }
59
-
60
- &__checkbox {
61
- @include mixins.cfgCheckbox($checkButtonUncheckedColor);
62
- }
63
-
64
- /* The &-syntax brings in the entire path, so the second part of this rule must be explicit */
65
-
66
- &__hiddenInput:focus ~ .cfgFeatureItem__radio,
67
- &__hiddenInput:focus ~ .cfgFeatureItem__checkbox {
68
- @include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);
69
- }
70
-
71
- &__hiddenInput:checked ~ .cfgFeatureItem__radio {
72
- @include mixins.cfgRadio($checkButtonCheckedColor);
73
- }
74
- &__hiddenInput:checked ~ .cfgFeatureItem__checkbox {
75
- @include mixins.cfgCheckbox($checkButtonCheckedColor);
76
- }
77
- }
78
-
79
- .cfgFeatureItemOptional__titleWrapper,
80
- .cfgFeatureItemOption__titleWrapper {
81
- flex: 1 1 auto;
82
- margin-left: 1em;
83
- }
84
-
85
- .cfgFeatureItemOptional__title,
86
- .cfgFeatureItemOption__title {
87
- font-size: 1.5em;
88
- }
89
-
90
- .cfgFeatureItemOption__price {
91
- font-weight: 600;
92
- font-size: 0.75em;
93
- color: $grayTextColor;
94
- }
95
-
96
- .cfgOptionTree--subLevel .cfgFeatureItem__hr {
97
- display: none;
98
- }
99
-
100
- .cfgFeatureItemOption {
101
- align-items: center;
102
- display: flex;
103
- }
104
-
105
- .cfgFeatureItemOptional {
106
- align-items: center;
107
- display: flex;
108
- justify-content: center;
109
- margin-top: 0.5em;
110
-
111
- &__header {
112
- font-size: 1.2em;
113
- font-weight: 600;
114
- margin: 0 0 0.3em 0;
115
- padding: 0;
116
- text-transform: uppercase;
117
- }
118
- }
119
-
120
- /* The last themathic break (hr) we move under the next thematic break so it appears as one */
121
- .cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr {
122
- margin-bottom: -0.1em;
123
- }
124
- }
1
+ /**
2
+ * Web UI Feature item
3
+ */
4
+
5
+ @use "mixins";
6
+
7
+ @mixin classes(
8
+ $textColor,
9
+ $grayTextColor,
10
+ $checkButtonUncheckedColor,
11
+ $checkButtonCheckedColor,
12
+ $focusOutlineInnerColor,
13
+ $focusOutlineOuterColor
14
+ ) {
15
+ .cfgThumbnailImage {
16
+ border-radius: 0.7em;
17
+ display: inline-block;
18
+ height: 3em;
19
+ width: 3em;
20
+ }
21
+
22
+ .cfgThumbnailPlaceholder {
23
+ align-items: center;
24
+ display: flex;
25
+ flex: 0 0 4.2em;
26
+ justify-content: flex-start;
27
+ }
28
+
29
+ .cfgFeatureItem {
30
+ @include mixins.cfgRootStyles;
31
+
32
+ color: $textColor;
33
+
34
+ &__dropdown {
35
+ @include mixins.noButtonLook;
36
+ align-items: stretch;
37
+ display: flex;
38
+ height: 3.9em;
39
+ outline: 0;
40
+ position: relative;
41
+ width: 100%;
42
+ cursor: pointer;
43
+ }
44
+
45
+ &--optional {
46
+ margin-top: 1em;
47
+ }
48
+
49
+ &__hiddenInput {
50
+ left: -99999px;
51
+ opacity: 0;
52
+ position: absolute;
53
+ z-index: -1;
54
+ }
55
+
56
+ &__radio {
57
+ @include mixins.cfgRadio($checkButtonUncheckedColor);
58
+ }
59
+
60
+ &__checkbox {
61
+ @include mixins.cfgCheckbox($checkButtonUncheckedColor);
62
+ }
63
+
64
+ /* The &-syntax brings in the entire path, so the second part of this rule must be explicit */
65
+
66
+ &__hiddenInput:focus ~ .cfgFeatureItem__radio,
67
+ &__hiddenInput:focus ~ .cfgFeatureItem__checkbox {
68
+ @include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);
69
+ }
70
+
71
+ &__hiddenInput:checked ~ .cfgFeatureItem__radio {
72
+ @include mixins.cfgRadio($checkButtonCheckedColor);
73
+ }
74
+ &__hiddenInput:checked ~ .cfgFeatureItem__checkbox {
75
+ @include mixins.cfgCheckbox($checkButtonCheckedColor);
76
+ }
77
+ }
78
+
79
+ .cfgFeatureItemOptional__titleWrapper,
80
+ .cfgFeatureItemOption__titleWrapper {
81
+ flex: 1 1 auto;
82
+ margin-left: 1em;
83
+ }
84
+
85
+ .cfgFeatureItemOptional__title,
86
+ .cfgFeatureItemOption__title {
87
+ font-size: 1.5em;
88
+ }
89
+
90
+ .cfgFeatureItemOption__price {
91
+ font-weight: 600;
92
+ font-size: 0.75em;
93
+ color: $grayTextColor;
94
+ }
95
+
96
+ .cfgOptionTree--subLevel .cfgFeatureItem__hr {
97
+ display: none;
98
+ }
99
+
100
+ .cfgFeatureItemOption {
101
+ align-items: center;
102
+ display: flex;
103
+ }
104
+
105
+ .cfgFeatureItemOptional {
106
+ align-items: center;
107
+ display: flex;
108
+ justify-content: center;
109
+ margin-top: 0.5em;
110
+
111
+ &__header {
112
+ font-size: 1.2em;
113
+ font-weight: 600;
114
+ margin: 0 0 0.3em 0;
115
+ padding: 0;
116
+ text-transform: uppercase;
117
+ }
118
+ }
119
+
120
+ /* The last themathic break (hr) we move under the next thematic break so it appears as one */
121
+ .cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr {
122
+ margin-bottom: -0.1em;
123
+ }
124
+ }
@@ -1,16 +1,16 @@
1
- @use "mixins";
2
-
3
- @mixin styles($color) {
4
- @include mixins.cfgRootStyles;
5
- border: 0;
6
- border-bottom: 0.1em solid $color;
7
- padding: 0;
8
- margin: 0;
9
- }
10
-
11
- @mixin classes($color) {
12
- .cfgHr {
13
- @include styles($color);
14
- @content;
15
- }
16
- }
1
+ @use "mixins";
2
+
3
+ @mixin styles($color) {
4
+ @include mixins.cfgRootStyles;
5
+ border: 0;
6
+ border-bottom: 0.1em solid $color;
7
+ padding: 0;
8
+ margin: 0;
9
+ }
10
+
11
+ @mixin classes($color) {
12
+ .cfgHr {
13
+ @include styles($color);
14
+ @content;
15
+ }
16
+ }
@@ -1,98 +1,98 @@
1
- /**
2
- * Web UI Loading
3
- */
4
-
5
- @use "mixins";
6
-
7
- @mixin classes(
8
- $textColor,
9
- $spinnerColor1,
10
- $spinnerColor2,
11
- $overlayBackgroundColor,
12
- $overlayingZIndex
13
- ) {
14
- .cfgCenteredLoading {
15
- @include mixins.cfgRootStyles;
16
- align-items: center;
17
- display: flex;
18
- flex-direction: column;
19
- height: 100%;
20
- justify-content: center;
21
- width: 100%;
22
- }
23
-
24
- .cfgOverlayLoading {
25
- @include mixins.cfgRootStyles;
26
-
27
- align-items: center;
28
- background-color: $overlayBackgroundColor;
29
- bottom: 0;
30
- display: flex;
31
- flex-direction: column;
32
- justify-content: center;
33
- left: 0;
34
- position: absolute;
35
- right: 0;
36
- top: 0;
37
- z-index: $overlayingZIndex;
38
-
39
- &--clickThrough {
40
- background-color: transparent;
41
- pointer-events: none;
42
-
43
- .cfgLoadingWithText {
44
- padding: 2em 2em 1.8em;
45
- border-radius: 0.8em;
46
- background-color: $overlayBackgroundColor;
47
- opacity: 0.8;
48
- border: 0.1em solid $spinnerColor2;
49
- }
50
- }
51
-
52
- &--fullWindow {
53
- position: fixed;
54
- z-index: #{$overlayingZIndex + 1};
55
- }
56
- }
57
-
58
- .cfgLoadingWithText {
59
- @include mixins.cfgRootStyles;
60
- @include mixins.cfgDefaultFont;
61
-
62
- text-align: center;
63
-
64
- &__text {
65
- color: $textColor;
66
- font-weight: 600;
67
- margin-top: 0.5em;
68
- font-size: 1.6em;
69
- }
70
- }
71
-
72
- .cfgLoading {
73
- @include mixins.cfgRootStyles;
74
-
75
- animation: rotate 1.1s linear 0s infinite;
76
- border-radius: 100%;
77
- border: 0.5em solid $spinnerColor2;
78
- border-bottom-color: $spinnerColor1;
79
- display: inline-block;
80
- height: 3em;
81
- width: 3em;
82
-
83
- &--small {
84
- border-width: 0.4em;
85
- height: 2em;
86
- width: 2em;
87
- }
88
- }
89
-
90
- @keyframes rotate {
91
- from {
92
- transform: rotate(0deg);
93
- }
94
- to {
95
- transform: rotate(360deg);
96
- }
97
- }
98
- }
1
+ /**
2
+ * Web UI Loading
3
+ */
4
+
5
+ @use "mixins";
6
+
7
+ @mixin classes(
8
+ $textColor,
9
+ $spinnerColor1,
10
+ $spinnerColor2,
11
+ $overlayBackgroundColor,
12
+ $overlayingZIndex
13
+ ) {
14
+ .cfgCenteredLoading {
15
+ @include mixins.cfgRootStyles;
16
+ align-items: center;
17
+ display: flex;
18
+ flex-direction: column;
19
+ height: 100%;
20
+ justify-content: center;
21
+ width: 100%;
22
+ }
23
+
24
+ .cfgOverlayLoading {
25
+ @include mixins.cfgRootStyles;
26
+
27
+ align-items: center;
28
+ background-color: $overlayBackgroundColor;
29
+ bottom: 0;
30
+ display: flex;
31
+ flex-direction: column;
32
+ justify-content: center;
33
+ left: 0;
34
+ position: absolute;
35
+ right: 0;
36
+ top: 0;
37
+ z-index: $overlayingZIndex;
38
+
39
+ &--clickThrough {
40
+ background-color: transparent;
41
+ pointer-events: none;
42
+
43
+ .cfgLoadingWithText {
44
+ padding: 2em 2em 1.8em;
45
+ border-radius: 0.8em;
46
+ background-color: $overlayBackgroundColor;
47
+ opacity: 0.8;
48
+ border: 0.1em solid $spinnerColor2;
49
+ }
50
+ }
51
+
52
+ &--fullWindow {
53
+ position: fixed;
54
+ z-index: #{$overlayingZIndex + 1};
55
+ }
56
+ }
57
+
58
+ .cfgLoadingWithText {
59
+ @include mixins.cfgRootStyles;
60
+ @include mixins.cfgDefaultFont;
61
+
62
+ text-align: center;
63
+
64
+ &__text {
65
+ color: $textColor;
66
+ font-weight: 600;
67
+ margin-top: 0.5em;
68
+ font-size: 1.6em;
69
+ }
70
+ }
71
+
72
+ .cfgLoading {
73
+ @include mixins.cfgRootStyles;
74
+
75
+ animation: rotate 1.1s linear 0s infinite;
76
+ border-radius: 100%;
77
+ border: 0.5em solid $spinnerColor2;
78
+ border-bottom-color: $spinnerColor1;
79
+ display: inline-block;
80
+ height: 3em;
81
+ width: 3em;
82
+
83
+ &--small {
84
+ border-width: 0.4em;
85
+ height: 2em;
86
+ width: 2em;
87
+ }
88
+ }
89
+
90
+ @keyframes rotate {
91
+ from {
92
+ transform: rotate(0deg);
93
+ }
94
+ to {
95
+ transform: rotate(360deg);
96
+ }
97
+ }
98
+ }
@@ -1,56 +1,56 @@
1
- @mixin noButtonLook {
2
- appearance: none;
3
- font-family: inherit;
4
- font-size: inherit;
5
- color: inherit;
6
- background: none;
7
- border: none;
8
- padding: 0;
9
- }
10
-
11
- @mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {
12
- box-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;
13
- }
14
-
15
- @mixin borderBox {
16
- box-sizing: border-box;
17
- &:before,
18
- &:after {
19
- box-sizing: inherit;
20
- }
21
- }
22
-
23
- @mixin cfgRootStyles {
24
- @include borderBox;
25
-
26
- * {
27
- @include borderBox;
28
- }
29
- }
30
-
31
- @mixin cfgDefaultFont {
32
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif,
33
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
34
- }
35
-
36
- @mixin cfgCheckAndRadio($color) {
37
- align-items: center;
38
- border: 0.2em solid $color;
39
- display: flex;
40
- flex: 0 0 auto;
41
- height: 2.2em;
42
- justify-content: center;
43
- pointer-events: none;
44
- user-select: none;
45
- width: 2.2em;
46
- }
47
-
48
- @mixin cfgCheckbox($color) {
49
- @include cfgCheckAndRadio($color);
50
- border-radius: 0.3em;
51
- }
52
-
53
- @mixin cfgRadio($color) {
54
- @include cfgCheckAndRadio($color);
55
- border-radius: 50%;
56
- }
1
+ @mixin noButtonLook {
2
+ appearance: none;
3
+ font-family: inherit;
4
+ font-size: inherit;
5
+ color: inherit;
6
+ background: none;
7
+ border: none;
8
+ padding: 0;
9
+ }
10
+
11
+ @mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {
12
+ box-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;
13
+ }
14
+
15
+ @mixin borderBox {
16
+ box-sizing: border-box;
17
+ &:before,
18
+ &:after {
19
+ box-sizing: inherit;
20
+ }
21
+ }
22
+
23
+ @mixin cfgRootStyles {
24
+ @include borderBox;
25
+
26
+ * {
27
+ @include borderBox;
28
+ }
29
+ }
30
+
31
+ @mixin cfgDefaultFont {
32
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif,
33
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
34
+ }
35
+
36
+ @mixin cfgCheckAndRadio($color) {
37
+ align-items: center;
38
+ border: 0.2em solid $color;
39
+ display: flex;
40
+ flex: 0 0 auto;
41
+ height: 2.2em;
42
+ justify-content: center;
43
+ pointer-events: none;
44
+ user-select: none;
45
+ width: 2.2em;
46
+ }
47
+
48
+ @mixin cfgCheckbox($color) {
49
+ @include cfgCheckAndRadio($color);
50
+ border-radius: 0.3em;
51
+ }
52
+
53
+ @mixin cfgRadio($color) {
54
+ @include cfgCheckAndRadio($color);
55
+ border-radius: 50%;
56
+ }
@@ -1,29 +1,29 @@
1
- /**
2
- * Web UI Option tree
3
- */
4
-
5
- @use "mixins";
6
-
7
- @mixin classes {
8
- .cfgOptionTree {
9
- @include mixins.cfgRootStyles;
10
-
11
- list-style: none;
12
- margin: 0;
13
- padding: 0;
14
-
15
- &--topLevel {
16
- padding-left: 1.7em;
17
- }
18
-
19
- &--indent {
20
- margin-left: 3.2em;
21
- }
22
-
23
- &--compThumb {
24
- margin-left: 4.2em;
25
- }
26
-
27
- @content;
28
- }
29
- }
1
+ /**
2
+ * Web UI Option tree
3
+ */
4
+
5
+ @use "mixins";
6
+
7
+ @mixin classes {
8
+ .cfgOptionTree {
9
+ @include mixins.cfgRootStyles;
10
+
11
+ list-style: none;
12
+ margin: 0;
13
+ padding: 0;
14
+
15
+ &--topLevel {
16
+ padding-left: 1.7em;
17
+ }
18
+
19
+ &--indent {
20
+ margin-left: 3.2em;
21
+ }
22
+
23
+ &--compThumb {
24
+ margin-left: 4.2em;
25
+ }
26
+
27
+ @content;
28
+ }
29
+ }