ngwr 0.1.3 → 0.2.0
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/LICENSE +3 -1
- package/README.md +35 -22
- package/_index.scss +27 -0
- package/button/{button.module.d.ts → button-module.d.ts} +4 -4
- package/button/button.d.ts +58 -0
- package/button/button.scss +160 -0
- package/button/index.d.ts +2 -2
- package/checkbox/{checkbox.module.d.ts → checkbox-module.d.ts} +2 -2
- package/checkbox/checkbox.d.ts +49 -0
- package/checkbox/checkbox.scss +103 -0
- package/checkbox/index.d.ts +2 -2
- package/core/abstract/base.d.ts +9 -0
- package/core/abstract/index.d.ts +1 -0
- package/core/color/color.d.ts +2 -0
- package/core/color/index.d.ts +2 -0
- package/core/color/is-theme-color.d.ts +2 -0
- package/core/decorators/index.d.ts +1 -0
- package/core/decorators/input-boolean.d.ts +1 -0
- package/core/types/index.d.ts +3 -0
- package/{_core → core}/types/on-change-type.d.ts +0 -0
- package/{_core → core}/types/on-touched-type.d.ts +0 -0
- package/{_core → core}/types/safe-any.d.ts +0 -0
- package/divider/{divider.module.d.ts → divider-module.d.ts} +2 -2
- package/divider/divider.d.ts +40 -0
- package/divider/divider.scss +34 -0
- package/divider/index.d.ts +2 -2
- package/esm2020/button/button-module.mjs +20 -0
- package/esm2020/button/button.mjs +187 -0
- package/esm2020/button/index.mjs +3 -3
- package/esm2020/button/ngwr-button.mjs +5 -0
- package/esm2020/checkbox/checkbox-module.mjs +20 -0
- package/esm2020/checkbox/checkbox.mjs +154 -0
- package/esm2020/checkbox/index.mjs +3 -3
- package/esm2020/checkbox/ngwr-checkbox.mjs +5 -0
- package/esm2020/core/abstract/base.mjs +18 -0
- package/esm2020/core/abstract/index.mjs +2 -0
- package/esm2020/core/abstract/ngwr-core-abstract.mjs +5 -0
- package/esm2020/core/color/color.mjs +11 -0
- package/esm2020/core/color/index.mjs +3 -0
- package/esm2020/core/color/is-theme-color.mjs +9 -0
- package/esm2020/core/color/ngwr-core-color.mjs +5 -0
- package/esm2020/core/decorators/index.mjs +2 -0
- package/esm2020/core/decorators/input-boolean.mjs +15 -0
- package/esm2020/core/decorators/ngwr-core-decorators.mjs +5 -0
- package/esm2020/core/types/index.mjs +4 -0
- package/esm2020/core/types/ngwr-core-types.mjs +5 -0
- package/esm2020/core/types/on-change-type.mjs +2 -0
- package/esm2020/core/types/on-touched-type.mjs +2 -0
- package/esm2020/core/types/safe-any.mjs +2 -0
- package/esm2020/divider/divider-module.mjs +16 -0
- package/esm2020/divider/divider.mjs +100 -0
- package/esm2020/divider/index.mjs +3 -3
- package/esm2020/divider/ngwr-divider.mjs +5 -0
- package/esm2020/form/form-error.mjs +23 -0
- package/esm2020/form/form-item.mjs +46 -0
- package/esm2020/form/form-module.mjs +19 -0
- package/esm2020/form/index.mjs +4 -4
- package/esm2020/form/ngwr-form.mjs +5 -0
- package/esm2020/icon/icon-module.mjs +21 -0
- package/esm2020/icon/icon-service.mjs +21 -0
- package/esm2020/icon/icon.mjs +60 -0
- package/esm2020/icon/icons.mjs +424 -0
- package/esm2020/icon/index.mjs +5 -5
- package/esm2020/icon/ngwr-icon.mjs +5 -0
- package/esm2020/index.mjs +3 -0
- package/esm2020/input/index.mjs +3 -3
- package/esm2020/input/input-module.mjs +20 -0
- package/esm2020/input/input-types.mjs +2 -0
- package/esm2020/input/input.mjs +240 -0
- package/esm2020/input/ngwr-input.mjs +5 -0
- package/esm2020/ngwr.mjs +2 -2
- package/esm2020/skeleton/index.mjs +3 -3
- package/esm2020/skeleton/ngwr-skeleton.mjs +5 -0
- package/esm2020/skeleton/skeleton-module.mjs +18 -0
- package/esm2020/skeleton/skeleton.mjs +44 -0
- package/esm2020/spinner/index.mjs +3 -3
- package/esm2020/spinner/ngwr-spinner.mjs +5 -0
- package/esm2020/spinner/spinner-module.mjs +16 -0
- package/esm2020/spinner/spinner.mjs +23 -0
- package/esm2020/tag/index.mjs +3 -3
- package/esm2020/tag/ngwr-tag.mjs +5 -0
- package/esm2020/tag/tag-module.mjs +20 -0
- package/esm2020/tag/tag.mjs +80 -0
- package/fesm2015/ngwr-button.mjs +211 -0
- package/fesm2015/ngwr-button.mjs.map +1 -0
- package/fesm2015/ngwr-checkbox.mjs +177 -0
- package/fesm2015/ngwr-checkbox.mjs.map +1 -0
- package/fesm2015/ngwr-core-abstract.mjs +25 -0
- package/fesm2015/ngwr-core-abstract.mjs.map +1 -0
- package/fesm2015/ngwr-core-color.mjs +25 -0
- package/fesm2015/ngwr-core-color.mjs.map +1 -0
- package/fesm2015/ngwr-core-decorators.mjs +22 -0
- package/fesm2015/ngwr-core-decorators.mjs.map +1 -0
- package/fesm2015/ngwr-core-types.mjs +4 -0
- package/fesm2015/ngwr-core-types.mjs.map +1 -0
- package/fesm2015/ngwr-divider.mjs +120 -0
- package/fesm2015/ngwr-divider.mjs.map +1 -0
- package/fesm2015/ngwr-form.mjs +89 -0
- package/fesm2015/ngwr-form.mjs.map +1 -0
- package/fesm2015/ngwr-icon.mjs +527 -0
- package/fesm2015/ngwr-icon.mjs.map +1 -0
- package/fesm2015/ngwr-input.mjs +262 -0
- package/fesm2015/ngwr-input.mjs.map +1 -0
- package/fesm2015/ngwr-skeleton.mjs +66 -0
- package/fesm2015/ngwr-skeleton.mjs.map +1 -0
- package/fesm2015/ngwr-spinner.mjs +43 -0
- package/fesm2015/ngwr-spinner.mjs.map +1 -0
- package/fesm2015/ngwr-tag.mjs +104 -0
- package/fesm2015/ngwr-tag.mjs.map +1 -0
- package/fesm2015/ngwr.mjs +2 -1404
- package/fesm2015/ngwr.mjs.map +1 -1
- package/fesm2020/ngwr-button.mjs +211 -0
- package/fesm2020/ngwr-button.mjs.map +1 -0
- package/fesm2020/ngwr-checkbox.mjs +177 -0
- package/fesm2020/ngwr-checkbox.mjs.map +1 -0
- package/fesm2020/ngwr-core-abstract.mjs +25 -0
- package/fesm2020/ngwr-core-abstract.mjs.map +1 -0
- package/fesm2020/ngwr-core-color.mjs +25 -0
- package/fesm2020/ngwr-core-color.mjs.map +1 -0
- package/fesm2020/ngwr-core-decorators.mjs +22 -0
- package/fesm2020/ngwr-core-decorators.mjs.map +1 -0
- package/fesm2020/ngwr-core-types.mjs +4 -0
- package/fesm2020/ngwr-core-types.mjs.map +1 -0
- package/fesm2020/ngwr-divider.mjs +120 -0
- package/fesm2020/ngwr-divider.mjs.map +1 -0
- package/fesm2020/ngwr-form.mjs +89 -0
- package/fesm2020/ngwr-form.mjs.map +1 -0
- package/fesm2020/ngwr-icon.mjs +525 -0
- package/fesm2020/ngwr-icon.mjs.map +1 -0
- package/fesm2020/ngwr-input.mjs +263 -0
- package/fesm2020/ngwr-input.mjs.map +1 -0
- package/fesm2020/ngwr-skeleton.mjs +66 -0
- package/fesm2020/ngwr-skeleton.mjs.map +1 -0
- package/fesm2020/ngwr-spinner.mjs +43 -0
- package/fesm2020/ngwr-spinner.mjs.map +1 -0
- package/fesm2020/ngwr-tag.mjs +104 -0
- package/fesm2020/ngwr-tag.mjs.map +1 -0
- package/fesm2020/ngwr.mjs +2 -1402
- package/fesm2020/ngwr.mjs.map +1 -1
- package/form/form-error.d.ts +6 -0
- package/form/form-item.d.ts +15 -0
- package/form/{form.module.d.ts → form-module.d.ts} +3 -3
- package/form/form.scss +52 -0
- package/form/index.d.ts +3 -3
- package/icon/{wr-icon.module.d.ts → icon-module.d.ts} +2 -2
- package/icon/{wr-icon.service.d.ts → icon-service.d.ts} +0 -9
- package/icon/icon.d.ts +20 -0
- package/icon/icon.scss +27 -0
- package/icon/{wr-icons.d.ts → icons.d.ts} +59 -3
- package/icon/index.d.ts +4 -4
- package/index.d.ts +2 -5
- package/input/index.d.ts +2 -2
- package/input/{input.module.d.ts → input-module.d.ts} +3 -3
- package/{_core/types/input-autocomplete-type.d.ts → input/input-types.d.ts} +2 -0
- package/input/{input.component.d.ts → input.d.ts} +7 -4
- package/input/input.scss +163 -0
- package/logo.svg +6 -1
- package/package.json +124 -19
- package/skeleton/index.d.ts +2 -2
- package/skeleton/{skeleton.module.d.ts → skeleton-module.d.ts} +2 -2
- package/skeleton/skeleton.d.ts +11 -0
- package/skeleton/skeleton.scss +54 -0
- package/spinner/index.d.ts +2 -2
- package/spinner/{spinner.module.d.ts → spinner-module.d.ts} +2 -2
- package/spinner/spinner.d.ts +6 -0
- package/spinner/spinner.scss +33 -0
- package/styles/animations.scss +14 -0
- package/styles/grid.scss +164 -0
- package/styles/reset.scss +106 -0
- package/styles/root.scss +152 -0
- package/styles/vars.scss +2 -0
- package/tag/index.d.ts +2 -2
- package/tag/{tag.module.d.ts → tag-module.d.ts} +4 -4
- package/tag/tag.d.ts +18 -0
- package/tag/tag.scss +106 -0
- package/_core/components/base.component.d.ts +0 -9
- package/_core/constants/style-prefix.d.ts +0 -1
- package/_core/index.d.ts +0 -4
- package/_core/types/boolean-input.d.ts +0 -1
- package/_core/types/color.d.ts +0 -1
- package/_core/types/index.d.ts +0 -8
- package/_core/types/input-mode-type.d.ts +0 -1
- package/_core/types/input-type.d.ts +0 -1
- package/_core/util/convert.d.ts +0 -19
- package/button/button.component.d.ts +0 -36
- package/checkbox/checkbox.component.d.ts +0 -32
- package/divider/divider.component.d.ts +0 -28
- package/esm2020/_core/components/base.component.mjs +0 -18
- package/esm2020/_core/constants/style-prefix.mjs +0 -2
- package/esm2020/_core/index.mjs +0 -9
- package/esm2020/_core/types/boolean-input.mjs +0 -2
- package/esm2020/_core/types/color.mjs +0 -2
- package/esm2020/_core/types/index.mjs +0 -2
- package/esm2020/_core/types/input-autocomplete-type.mjs +0 -2
- package/esm2020/_core/types/input-mode-type.mjs +0 -2
- package/esm2020/_core/types/input-type.mjs +0 -2
- package/esm2020/_core/types/on-change-type.mjs +0 -2
- package/esm2020/_core/types/on-touched-type.mjs +0 -2
- package/esm2020/_core/types/safe-any.mjs +0 -2
- package/esm2020/_core/util/convert.mjs +0 -51
- package/esm2020/button/button.component.mjs +0 -137
- package/esm2020/button/button.module.mjs +0 -20
- package/esm2020/checkbox/checkbox.component.mjs +0 -128
- package/esm2020/checkbox/checkbox.module.mjs +0 -20
- package/esm2020/divider/divider.component.mjs +0 -72
- package/esm2020/divider/divider.module.mjs +0 -16
- package/esm2020/form/form-error.component.mjs +0 -23
- package/esm2020/form/form-item.component.mjs +0 -35
- package/esm2020/form/form.module.mjs +0 -19
- package/esm2020/icon/wr-icon.component.mjs +0 -51
- package/esm2020/icon/wr-icon.module.mjs +0 -21
- package/esm2020/icon/wr-icon.service.mjs +0 -30
- package/esm2020/icon/wr-icons.mjs +0 -384
- package/esm2020/input/input.component.mjs +0 -239
- package/esm2020/input/input.module.mjs +0 -20
- package/esm2020/public-api.mjs +0 -11
- package/esm2020/skeleton/skeleton.component.mjs +0 -47
- package/esm2020/skeleton/skeleton.module.mjs +0 -18
- package/esm2020/spinner/spinner.component.mjs +0 -23
- package/esm2020/spinner/spinner.module.mjs +0 -16
- package/esm2020/tag/tag.component.mjs +0 -80
- package/esm2020/tag/tag.module.mjs +0 -20
- package/form/form-error.component.d.ts +0 -6
- package/form/form-item.component.d.ts +0 -8
- package/icon/wr-icon.component.d.ts +0 -17
- package/ngwr.min.css +0 -8
- package/public-api.d.ts +0 -10
- package/skeleton/skeleton.component.d.ts +0 -9
- package/spinner/spinner.component.d.ts +0 -6
- package/tag/tag.component.d.ts +0 -16
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
.wr-spin {
|
|
3
|
+
display: inline-block;
|
|
4
|
+
color: inherit;
|
|
5
|
+
font-style: normal;
|
|
6
|
+
line-height: 0;
|
|
7
|
+
text-align: center;
|
|
8
|
+
text-transform: none;
|
|
9
|
+
vertical-align: -0.1rem;
|
|
10
|
+
box-sizing: content-box !important;
|
|
11
|
+
|
|
12
|
+
contain: strict;
|
|
13
|
+
|
|
14
|
+
width: 1em;
|
|
15
|
+
height: 1em;
|
|
16
|
+
|
|
17
|
+
* {
|
|
18
|
+
line-height: 1;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
svg {
|
|
22
|
+
display: inline-block;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
|
|
26
|
+
animation: rotate 2s linear infinite;
|
|
27
|
+
|
|
28
|
+
.path {
|
|
29
|
+
stroke: currentColor;
|
|
30
|
+
animation: dash 1.5s ease-in-out infinite;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@keyframes shimmer {
|
|
2
|
+
100% { transform: translateX(100%); }
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
@keyframes rotate {
|
|
6
|
+
100% { transform: rotate(360deg); }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@keyframes dash {
|
|
10
|
+
0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
|
|
11
|
+
50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
|
|
12
|
+
100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
|
|
13
|
+
}
|
|
14
|
+
|
package/styles/grid.scss
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
$grid-columns: 12;
|
|
2
|
+
$grid-rows: 1;
|
|
3
|
+
|
|
4
|
+
$spacer: 1rem !default;
|
|
5
|
+
$gutters: (
|
|
6
|
+
0: 0,
|
|
7
|
+
1: $spacer * .25,
|
|
8
|
+
2: $spacer * .5,
|
|
9
|
+
3: $spacer,
|
|
10
|
+
4: $spacer * 1.5,
|
|
11
|
+
5: $spacer * 3,
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
$grid-breakpoints: (
|
|
15
|
+
'xs': 0,
|
|
16
|
+
'sm': 576px,
|
|
17
|
+
'md': 768px,
|
|
18
|
+
'lg': 992px,
|
|
19
|
+
'xl': 1200px,
|
|
20
|
+
'xxl': 1400px,
|
|
21
|
+
'xga': 1600px,
|
|
22
|
+
'fhd': 1920px,
|
|
23
|
+
'rt': 2560px
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
$grid-displays-widths: (
|
|
27
|
+
'sm': 540px,
|
|
28
|
+
'md': 720px,
|
|
29
|
+
'lg': 960px,
|
|
30
|
+
'xl': 1140px,
|
|
31
|
+
'xxl': 1320px,
|
|
32
|
+
'xga': 1530px,
|
|
33
|
+
'fhd': 1830px,
|
|
34
|
+
'rt': 2470px
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
@function breakpoint-min($name) {
|
|
38
|
+
$min: map-get($grid-breakpoints, $name);
|
|
39
|
+
@return if($min != 0, $min, null);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@function breakpoint-infix($name) {
|
|
43
|
+
@return if(breakpoint-min($name) == null, "", "-#{$name}");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@mixin media-breakpoint-up($name) {
|
|
47
|
+
$min: breakpoint-min($name);
|
|
48
|
+
@if $min {
|
|
49
|
+
@media (min-width: $min) {
|
|
50
|
+
@content;
|
|
51
|
+
}
|
|
52
|
+
} @else {
|
|
53
|
+
@content;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@function divide($dividend, $divisor, $precision: 10) {
|
|
58
|
+
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
|
59
|
+
$dividend: abs($dividend);
|
|
60
|
+
$divisor: abs($divisor);
|
|
61
|
+
@if $dividend == 0 {
|
|
62
|
+
@return 0;
|
|
63
|
+
}
|
|
64
|
+
@if $divisor == 0 {
|
|
65
|
+
@error 'Cannot divide by 0';
|
|
66
|
+
}
|
|
67
|
+
$remainder: $dividend;
|
|
68
|
+
$result: 0;
|
|
69
|
+
$factor: 10;
|
|
70
|
+
@while ($remainder > 0 and $precision >= 0) {
|
|
71
|
+
$quotient: 0;
|
|
72
|
+
@while ($remainder >= $divisor) {
|
|
73
|
+
$remainder: $remainder - $divisor;
|
|
74
|
+
$quotient: $quotient + 1;
|
|
75
|
+
}
|
|
76
|
+
$result: $result * 10 + $quotient;
|
|
77
|
+
$factor: $factor * .1;
|
|
78
|
+
$remainder: $remainder * 10;
|
|
79
|
+
$precision: $precision - 1;
|
|
80
|
+
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
|
81
|
+
$result: $result + 1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
$result: $result * $factor * $sign;
|
|
85
|
+
$dividend-unit: unit($dividend);
|
|
86
|
+
$divisor-unit: unit($divisor);
|
|
87
|
+
$unit-map: (
|
|
88
|
+
"px": 1px,
|
|
89
|
+
"rem": 1rem,
|
|
90
|
+
"em": 1em,
|
|
91
|
+
"%": 1%
|
|
92
|
+
);
|
|
93
|
+
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
|
|
94
|
+
$result: $result * map-get($unit-map, $dividend-unit);
|
|
95
|
+
}
|
|
96
|
+
@return $result;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.container {
|
|
100
|
+
position: relative;
|
|
101
|
+
margin: 0 auto;
|
|
102
|
+
flex-grow: 1;
|
|
103
|
+
width: 100%;
|
|
104
|
+
padding-right: var(--wr-grid-gutter);
|
|
105
|
+
padding-left: var(--wr-grid-gutter);
|
|
106
|
+
|
|
107
|
+
&-fluid {
|
|
108
|
+
max-width: none !important;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@each $breakpoint, $value in $grid-displays-widths {
|
|
113
|
+
@include media-breakpoint-up($breakpoint) {
|
|
114
|
+
%responsive-container-#{$breakpoint} {
|
|
115
|
+
max-width: $value;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
$extend-breakpoint: true;
|
|
119
|
+
|
|
120
|
+
@each $name, $width in $grid-breakpoints {
|
|
121
|
+
@if ($extend-breakpoint) {
|
|
122
|
+
.container#{breakpoint-infix($name)} {
|
|
123
|
+
@extend %responsive-container-#{$breakpoint};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Once the current breakpoint is reached, stop extending
|
|
127
|
+
@if ($breakpoint == $name) {
|
|
128
|
+
$extend-breakpoint: false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
.grid {
|
|
138
|
+
display: grid;
|
|
139
|
+
grid-template-rows: repeat($grid-rows, 1fr);
|
|
140
|
+
grid-template-columns: repeat($grid-columns, 1fr);
|
|
141
|
+
gap: var(--wr-grid-gutter, 1rem);
|
|
142
|
+
|
|
143
|
+
@each $breakpoint in map-keys($grid-breakpoints) {
|
|
144
|
+
$infix: breakpoint-infix($breakpoint);
|
|
145
|
+
|
|
146
|
+
@include media-breakpoint-up($breakpoint) {
|
|
147
|
+
@if $grid-columns > 0 {
|
|
148
|
+
@for $i from 1 through $grid-columns {
|
|
149
|
+
.col#{$infix}-#{$i} {
|
|
150
|
+
grid-column: auto / span $i;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Start with `1` because `0` is and invalid value.
|
|
155
|
+
// Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
|
|
156
|
+
@for $i from 1 through ($grid-columns - 1) {
|
|
157
|
+
.col-start#{$infix}-#{$i} {
|
|
158
|
+
grid-column-start: $i;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
font-size: var(--wr-font-size-base);
|
|
3
|
+
scroll-behavior: smooth;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
html,
|
|
7
|
+
body {
|
|
8
|
+
color: var(--wr-body-color);
|
|
9
|
+
background-color: var(--wr-body-bg);
|
|
10
|
+
|
|
11
|
+
font-size: var(--wr-font-size-base);
|
|
12
|
+
font-family: var(--wr-font-family-base);
|
|
13
|
+
font-weight: var(--wr-font-weight-base);
|
|
14
|
+
line-height: var(--wr-line-height-base);
|
|
15
|
+
letter-spacing: var(--wr-letter-spacing-base);
|
|
16
|
+
|
|
17
|
+
text-align: left;
|
|
18
|
+
direction: ltr;
|
|
19
|
+
|
|
20
|
+
margin: 0;
|
|
21
|
+
padding: 0;
|
|
22
|
+
|
|
23
|
+
-webkit-text-size-adjust: 100%;
|
|
24
|
+
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
|
25
|
+
-webkit-font-smoothing: antialiased;
|
|
26
|
+
-moz-osx-font-smoothing: grayscale;
|
|
27
|
+
-ms-text-size-adjust: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
*,
|
|
31
|
+
*::before,
|
|
32
|
+
*::after {
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
margin: 0;
|
|
35
|
+
padding: 0;
|
|
36
|
+
border: 0;
|
|
37
|
+
font-size: 100%;
|
|
38
|
+
vertical-align: baseline;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:focus {
|
|
42
|
+
outline: 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
article, aside, details, figcaption, figure,
|
|
46
|
+
footer, header, hgroup, menu, nav, section {
|
|
47
|
+
display: block;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
a {
|
|
51
|
+
text-decoration: none;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
ol, ul {
|
|
55
|
+
list-style: none;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
blockquote, q {
|
|
59
|
+
quotes: none;
|
|
60
|
+
|
|
61
|
+
&:before,
|
|
62
|
+
&:after {
|
|
63
|
+
content: '';
|
|
64
|
+
content: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
table {
|
|
69
|
+
border-collapse: collapse;
|
|
70
|
+
border-spacing: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
input[type=search]::-webkit-search-cancel-button,
|
|
74
|
+
input[type=search]::-webkit-search-decoration,
|
|
75
|
+
input[type=search]::-webkit-search-results-button,
|
|
76
|
+
input[type=search]::-webkit-search-results-decoration {
|
|
77
|
+
-webkit-appearance: none;
|
|
78
|
+
-moz-appearance: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
input[type=search] {
|
|
82
|
+
-webkit-appearance: none;
|
|
83
|
+
-moz-appearance: none;
|
|
84
|
+
-webkit-box-sizing: content-box;
|
|
85
|
+
-moz-box-sizing: content-box;
|
|
86
|
+
box-sizing: content-box;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
textarea {
|
|
90
|
+
overflow: auto;
|
|
91
|
+
vertical-align: top;
|
|
92
|
+
resize: vertical;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
audio:not([controls]) {
|
|
96
|
+
display: none;
|
|
97
|
+
height: 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[hidden] {
|
|
101
|
+
display: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
img {
|
|
105
|
+
border: none;
|
|
106
|
+
}
|
package/styles/root.scss
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
html {
|
|
2
|
+
color-scheme: light;
|
|
3
|
+
|
|
4
|
+
/* Fonts */
|
|
5
|
+
--wr-font-family-base: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
6
|
+
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
|
|
7
|
+
'Noto Color Emoji';
|
|
8
|
+
--wr-font-family-mono: SFMono-Regular, Consolas, 'Liberation Mono', Courier, Menlo, Monaco, monospace;
|
|
9
|
+
--wr-font-size-base: 1rem;
|
|
10
|
+
--wr-font-weight-base: 400;
|
|
11
|
+
--wr-line-height-base: 1.5;
|
|
12
|
+
--wr-letter-spacing-base: 0;
|
|
13
|
+
|
|
14
|
+
/* Transitions */
|
|
15
|
+
--wr-transition-base: all 0.15s linear;
|
|
16
|
+
--wr-transition-short: all 0.1s linear;
|
|
17
|
+
--wr-transition-long: all 0.2s linear;
|
|
18
|
+
|
|
19
|
+
/* Borders */
|
|
20
|
+
--wr-border-radius-base: 0.625rem;
|
|
21
|
+
--wr-border-color-base: var(--wr-color-light);
|
|
22
|
+
|
|
23
|
+
/* Colors */
|
|
24
|
+
--wr-color-white: #fff;
|
|
25
|
+
--wr-color-white-rgb: 255,255,255;
|
|
26
|
+
--wr-color-black: #000;
|
|
27
|
+
--wr-color-black-rgb: 0,0,0;
|
|
28
|
+
|
|
29
|
+
--wr-color-primary: #3969e2;
|
|
30
|
+
--wr-color-primary-rgb: 57,105,226;
|
|
31
|
+
--wr-color-primary-contrast: #fff;
|
|
32
|
+
--wr-color-primary-shade: #2e54b5;
|
|
33
|
+
|
|
34
|
+
--wr-color-secondary: #f51c6a;
|
|
35
|
+
--wr-color-secondary-rgb: 245,28,106;
|
|
36
|
+
--wr-color-secondary-contrast: #fff;
|
|
37
|
+
--wr-color-secondary-shade: #c41655;
|
|
38
|
+
|
|
39
|
+
--wr-color-success: #84cc16;
|
|
40
|
+
--wr-color-success-rgb: 132,204,22;
|
|
41
|
+
--wr-color-success-contrast: #000;
|
|
42
|
+
--wr-color-success-shade: #6aa312;
|
|
43
|
+
|
|
44
|
+
--wr-color-warning: #fbbf24;
|
|
45
|
+
--wr-color-warning-rgb: 251,191,36;
|
|
46
|
+
--wr-color-warning-contrast: #000;
|
|
47
|
+
--wr-color-warning-shade: #f59e0b;
|
|
48
|
+
|
|
49
|
+
--wr-color-danger: #dc2626;
|
|
50
|
+
--wr-color-danger-rgb: 220,38,38;
|
|
51
|
+
--wr-color-danger-contrast: #fff;
|
|
52
|
+
--wr-color-danger-shade: #b91c1c;
|
|
53
|
+
|
|
54
|
+
--wr-color-light: #e2e8f0;
|
|
55
|
+
--wr-color-light-rgb: 226,232,240;
|
|
56
|
+
--wr-color-light-contrast: #000;
|
|
57
|
+
--wr-color-light-shade: #b8c0d2;
|
|
58
|
+
|
|
59
|
+
--wr-color-medium: #8b93a2;
|
|
60
|
+
--wr-color-medium-rgb: 139,147,162;
|
|
61
|
+
--wr-color-medium-contrast: #fff;
|
|
62
|
+
--wr-color-medium-shade: #7a818f;
|
|
63
|
+
|
|
64
|
+
--wr-color-dark: #322e4f;
|
|
65
|
+
--wr-color-dark-rgb: 50,46,79;
|
|
66
|
+
--wr-color-dark-contrast: #fff;
|
|
67
|
+
--wr-color-dark-shade: #131123;
|
|
68
|
+
|
|
69
|
+
/* Body */
|
|
70
|
+
--wr-body-bg: #fff;
|
|
71
|
+
--wr-body-bg-rgb: 255,255,255;
|
|
72
|
+
--wr-body-color: var(--wr-color-dark);
|
|
73
|
+
|
|
74
|
+
/* Grid */
|
|
75
|
+
--wr-grid-gutter: 1.5rem;
|
|
76
|
+
|
|
77
|
+
/* Button */
|
|
78
|
+
--wr-btn-padding-y-base: 0.5rem;
|
|
79
|
+
--wr-btn-padding-x-base: 1rem;
|
|
80
|
+
--wr-btn-border-radius-base: 0.5rem;
|
|
81
|
+
--wr-btn-font-size-base: 1rem;
|
|
82
|
+
--wr-btn-line-height-base: 1.4;
|
|
83
|
+
--wr-btn-font-weight-base: 500;
|
|
84
|
+
// Small
|
|
85
|
+
--wr-btn-padding-y-small: 0.375rem;
|
|
86
|
+
--wr-btn-padding-x-small: 0.625rem;
|
|
87
|
+
--wr-btn-border-radius-small: 0.375rem;
|
|
88
|
+
--wr-btn-font-size-small: 0.825rem;
|
|
89
|
+
--wr-btn-line-height-small: 1;
|
|
90
|
+
// Rounded
|
|
91
|
+
--wr-btn-rounded-border-radius: 50rem;
|
|
92
|
+
--wr-btn-rounded-padding-y: 0.5rem;
|
|
93
|
+
--wr-btn-rounded-padding-x: 1rem;
|
|
94
|
+
|
|
95
|
+
/* Checkbox */
|
|
96
|
+
--wr-checkbox-color-base: var(--wr-color-dark);
|
|
97
|
+
--wr-checkbox-border-radius: 0.25rem;
|
|
98
|
+
--wr-checkbox-font-size: 0.9rem;
|
|
99
|
+
--wr-checkbox-line-height: 1.2;
|
|
100
|
+
--wr-checkbox-font-weight: 500;
|
|
101
|
+
--wr-checkbox-height: 1.25rem;
|
|
102
|
+
--wr-checkbox-width: var(--wr-checkbox-height);
|
|
103
|
+
|
|
104
|
+
/* Input */
|
|
105
|
+
--wr-input-padding-y-base: 0.5rem;
|
|
106
|
+
--wr-input-padding-x-base: 1rem;
|
|
107
|
+
--wr-input-border-radius-base: 0.5rem;
|
|
108
|
+
--wr-input-font-size-base: 1rem;
|
|
109
|
+
--wr-input-line-height-base: 1.4;
|
|
110
|
+
--wr-input-font-weight-base: 500;
|
|
111
|
+
|
|
112
|
+
--wr-input-bg: var(--wr-color-white);
|
|
113
|
+
--wr-input-border-color: var(--wr-border-color-base);
|
|
114
|
+
--wr-input-color: var(--wr-color-dark);
|
|
115
|
+
--wr-input-suffix-prefix-color: var(--wr-color-medium);
|
|
116
|
+
--wr-input-suffix-prefix-bg: rgba(var(--wr-color-light-rgb), 0.375);
|
|
117
|
+
|
|
118
|
+
--wr-input-disabled-color: rgba(var(--wr-color-medium-rgb), 0.5);
|
|
119
|
+
--wr-input-disabled-border-color: var(--wr-border-color-base);
|
|
120
|
+
--wr-input-disabled-bg: var(--wr-border-color-base);
|
|
121
|
+
|
|
122
|
+
/* Tag */
|
|
123
|
+
--wr-tag-padding-y: 0.25rem;
|
|
124
|
+
--wr-tag-padding-x: 0.5rem;
|
|
125
|
+
--wr-tag-border-radius-base: 0.25rem;
|
|
126
|
+
--wr-tag-font-size-base: 0.75rem;
|
|
127
|
+
--wr-tag-line-height-base: 1rem;
|
|
128
|
+
--wr-tag-font-weight-base: 600;
|
|
129
|
+
--wr-tag-rounded-padding-y: 0.25rem;
|
|
130
|
+
--wr-tag-rounded-padding-x: 0.75rem;
|
|
131
|
+
--wr-tag-rounded-border-radius: 50rem;
|
|
132
|
+
|
|
133
|
+
&.dark {
|
|
134
|
+
color-scheme: dark;
|
|
135
|
+
|
|
136
|
+
--wr-body-bg: #18152a;
|
|
137
|
+
--wr-body-bg-rgb: 24,21,42;
|
|
138
|
+
--wr-body-color: #fff;
|
|
139
|
+
|
|
140
|
+
--wr-border-color-base: #292349;
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
/* Checkbox */
|
|
144
|
+
--wr-checkbox-color-base: var(--wr-color-white);
|
|
145
|
+
|
|
146
|
+
--wr-input-bg: #18152a;
|
|
147
|
+
--wr-input-suffix-prefix-color: rgba(var(--wr-color-white-rgb), 0.5);
|
|
148
|
+
--wr-input-suffix-prefix-bg: rgba(var(--wr-color-primary-rgb), 0.125);
|
|
149
|
+
--wr-input-border-color: #493d7e;
|
|
150
|
+
--wr-input-color: #fff;
|
|
151
|
+
}
|
|
152
|
+
}
|
package/styles/vars.scss
ADDED
package/tag/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { WrTagModule } from './tag
|
|
1
|
+
export { WrTag } from './tag';
|
|
2
|
+
export { WrTagModule } from './tag-module';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./tag
|
|
2
|
+
import * as i1 from "./tag";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
4
|
+
import * as i3 from "ngwr/icon";
|
|
5
|
+
import * as i4 from "ngwr/spinner";
|
|
6
6
|
export declare class WrTagModule {
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrTagModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<WrTagModule, [typeof i1.
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WrTagModule, [typeof i1.WrTag], [typeof i2.CommonModule, typeof i3.WrIconModule, typeof i4.WrSpinnerModule], [typeof i1.WrTag]>;
|
|
9
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<WrTagModule>;
|
|
10
10
|
}
|
package/tag/tag.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import { WrThemeColor } from 'ngwr/core/color';
|
|
3
|
+
import { SafeAny } from 'ngwr/core/types';
|
|
4
|
+
import { wrIconName } from 'ngwr/icon';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class WrTag {
|
|
7
|
+
color: WrThemeColor | string;
|
|
8
|
+
icon: wrIconName | null;
|
|
9
|
+
iconPosition: 'start' | 'end';
|
|
10
|
+
outlined: BooleanInput;
|
|
11
|
+
rounded: BooleanInput;
|
|
12
|
+
transparent: BooleanInput;
|
|
13
|
+
hoverable: BooleanInput;
|
|
14
|
+
loading: BooleanInput;
|
|
15
|
+
get elClasses(): SafeAny;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WrTag, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WrTag, "wr-tag", ["wrTag"], { "color": "color"; "icon": "icon"; "iconPosition": "iconPosition"; "outlined": "outlined"; "rounded": "rounded"; "transparent": "transparent"; "hoverable": "hoverable"; "loading": "loading"; }, {}, never, ["*"], false>;
|
|
18
|
+
}
|
package/tag/tag.scss
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
@import '../styles/vars';
|
|
2
|
+
|
|
3
|
+
.wr-tag {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
|
|
6
|
+
padding: var(--wr-tag-padding-y) var(--wr-tag-padding-x);
|
|
7
|
+
|
|
8
|
+
font-family: var(--wr-tag-font-family-base);
|
|
9
|
+
font-size: var(--wr-tag-font-size-base);
|
|
10
|
+
font-weight: var(--wr-tag-font-weight-base);
|
|
11
|
+
line-height: var(--wr-tag-line-height-base);
|
|
12
|
+
|
|
13
|
+
text-align: center;
|
|
14
|
+
text-decoration: none;
|
|
15
|
+
vertical-align: middle;
|
|
16
|
+
|
|
17
|
+
user-select: none;
|
|
18
|
+
pointer-events: none;
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
|
|
21
|
+
border: none;
|
|
22
|
+
border-radius: var(--wr-tag-border-radius-base);
|
|
23
|
+
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
transition: var(--wr-transition-base);
|
|
26
|
+
position: relative;
|
|
27
|
+
|
|
28
|
+
&:hover {
|
|
29
|
+
text-decoration: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__icon,
|
|
33
|
+
&__spin {
|
|
34
|
+
width: 0.75rem !important;
|
|
35
|
+
height: 0.75rem !important;
|
|
36
|
+
min-width: 0.75rem !important;
|
|
37
|
+
min-height: 0.75rem !important;
|
|
38
|
+
transition: var(--wr-transition-base);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&--icon-start {
|
|
42
|
+
.wr-tag {
|
|
43
|
+
&__icon,
|
|
44
|
+
&__spin {
|
|
45
|
+
margin-right: 0.25rem;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&--icon-end {
|
|
51
|
+
.wr-tag {
|
|
52
|
+
&__icon,
|
|
53
|
+
&__spin {
|
|
54
|
+
margin-left: 0.25rem;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&--hoverable {
|
|
60
|
+
pointer-events: all;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&--rounded {
|
|
64
|
+
border-radius: var(--wr-tag-rounded-border-radius);
|
|
65
|
+
padding: var(--wr-tag-rounded-padding-y) var(--wr-tag-rounded-padding-x);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@each $color in $theme-colors {
|
|
70
|
+
.wr-tag--#{$color} {
|
|
71
|
+
color: var(--wr-color-#{$color}-contrast);
|
|
72
|
+
background-color: var(--wr-color-#{$color});
|
|
73
|
+
|
|
74
|
+
&:hover {
|
|
75
|
+
color: var(--wr-color-#{$color}-contrast);
|
|
76
|
+
background-color: var(--wr-color-#{$color}-shade);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.wr-tag--outlined {
|
|
80
|
+
color: var(--wr-color-#{$color});
|
|
81
|
+
background-color: transparent;
|
|
82
|
+
box-shadow: inset 0 0 0 1.25px rgba(var(--wr-color-#{$color}-rgb), 0.375);
|
|
83
|
+
|
|
84
|
+
&.wr-tag--transparent {
|
|
85
|
+
background-color: rgba(var(--wr-color-#{$color}-rgb), 0.125);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&:hover {
|
|
89
|
+
color: var(--wr-color-#{$color}-contrast);
|
|
90
|
+
background-color: var(--wr-color-#{$color});
|
|
91
|
+
box-shadow: none;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.wr-tag--transparent {
|
|
96
|
+
color: var(--wr-color-#{$color});
|
|
97
|
+
background-color: rgba(var(--wr-color-#{$color}-rgb), 0.125);
|
|
98
|
+
|
|
99
|
+
&:hover {
|
|
100
|
+
color: var(--wr-color-#{$color}-contrast);
|
|
101
|
+
background-color: var(--wr-color-#{$color});
|
|
102
|
+
box-shadow: none;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare abstract class BaseComponent implements OnDestroy {
|
|
5
|
-
protected readonly ngUnsubscribe: Subject<void>;
|
|
6
|
-
ngOnDestroy(): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseComponent, never, never, {}, {}, never, never, false>;
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const stylePrefix = "wr";
|
package/_core/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type BooleanInput = boolean | string | undefined | null;
|
package/_core/types/color.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type WrThemeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';
|
package/_core/types/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { BooleanInput } from './boolean-input';
|
|
2
|
-
export { WrThemeColor } from './color';
|
|
3
|
-
export { WrInputAutocomplete } from './input-autocomplete-type';
|
|
4
|
-
export { WrInputModeType } from './input-mode-type';
|
|
5
|
-
export { WrInputType } from './input-type';
|
|
6
|
-
export { OnChangeType } from './on-change-type';
|
|
7
|
-
export { OnTouchedType } from './on-touched-type';
|
|
8
|
-
export { SafeAny } from './safe-any';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type WrInputModeType = 'text' | 'numeric' | 'tel' | 'email' | 'url';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type WrInputType = 'text' | 'number' | 'password' | 'email';
|
package/_core/util/convert.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { SafeAny } from '../types/safe-any';
|
|
2
|
-
export declare function toBoolean(value: boolean | string): boolean;
|
|
3
|
-
/**
|
|
4
|
-
* Input decorator that handle a prop to do get/set automatically with toBoolean
|
|
5
|
-
*
|
|
6
|
-
* Why not using @InputBoolean alone without @Input? AOT needs @Input to be visible
|
|
7
|
-
*
|
|
8
|
-
* @howToUse
|
|
9
|
-
* ```
|
|
10
|
-
* @Input() @InputBoolean() visible: boolean = false;
|
|
11
|
-
*
|
|
12
|
-
* // Act as below:
|
|
13
|
-
* // @Input()
|
|
14
|
-
* // get visible() { return this.__visible; }
|
|
15
|
-
* // set visible(value) { this.__visible = value; }
|
|
16
|
-
* // __visible = false;
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export declare function InputBoolean(): SafeAny;
|