@openkit-labs/ngx-kit-ui 0.0.40 → 0.0.41
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.
|
@@ -1989,6 +1989,394 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1989
1989
|
}]
|
|
1990
1990
|
}] });
|
|
1991
1991
|
|
|
1992
|
+
class KitTextHeadingComponent {
|
|
1993
|
+
color = '';
|
|
1994
|
+
align;
|
|
1995
|
+
weight;
|
|
1996
|
+
decoration;
|
|
1997
|
+
margin;
|
|
1998
|
+
wrap = true;
|
|
1999
|
+
ellipses = false;
|
|
2000
|
+
lines = 0;
|
|
2001
|
+
italic = false;
|
|
2002
|
+
get colorClass() {
|
|
2003
|
+
return this.color ? `kit-text-${this.color}` : '';
|
|
2004
|
+
}
|
|
2005
|
+
get textStyles() {
|
|
2006
|
+
const baseStyles = {
|
|
2007
|
+
'margin': this.margin,
|
|
2008
|
+
'text-align': this.align,
|
|
2009
|
+
'font-weight': this.weight,
|
|
2010
|
+
'text-decoration': this.decoration,
|
|
2011
|
+
'font-style': this.italic ? 'italic' : 'normal'
|
|
2012
|
+
};
|
|
2013
|
+
if (this.ellipses) {
|
|
2014
|
+
if (this.wrap && this.lines > 0) {
|
|
2015
|
+
// Multi-line ellipsis
|
|
2016
|
+
baseStyles['display'] = '-webkit-box';
|
|
2017
|
+
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
2018
|
+
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
2019
|
+
baseStyles['overflow'] = 'hidden';
|
|
2020
|
+
}
|
|
2021
|
+
else {
|
|
2022
|
+
// Single-line ellipsis
|
|
2023
|
+
baseStyles['white-space'] = 'nowrap';
|
|
2024
|
+
baseStyles['overflow'] = 'hidden';
|
|
2025
|
+
baseStyles['text-overflow'] = 'ellipsis';
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
else {
|
|
2029
|
+
// Wrapping control
|
|
2030
|
+
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
2031
|
+
}
|
|
2032
|
+
return baseStyles;
|
|
2033
|
+
}
|
|
2034
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextHeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2035
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextHeadingComponent, isStandalone: true, selector: "kit-text-heading", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<h1 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h1>", styles: ["h1{font-size:var(--kit-font-size-heading, 2rem);font-weight:var(--kit-font-weight-heading, 700);line-height:var(--kit-line-height-heading, 1.2);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2036
|
+
}
|
|
2037
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextHeadingComponent, decorators: [{
|
|
2038
|
+
type: Component,
|
|
2039
|
+
args: [{ selector: 'kit-text-heading', standalone: true, imports: [NgClass, NgStyle], template: "<h1 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h1>", styles: ["h1{font-size:var(--kit-font-size-heading, 2rem);font-weight:var(--kit-font-weight-heading, 700);line-height:var(--kit-line-height-heading, 1.2);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
2040
|
+
}], propDecorators: { color: [{
|
|
2041
|
+
type: Input
|
|
2042
|
+
}], align: [{
|
|
2043
|
+
type: Input
|
|
2044
|
+
}], weight: [{
|
|
2045
|
+
type: Input
|
|
2046
|
+
}], decoration: [{
|
|
2047
|
+
type: Input
|
|
2048
|
+
}], margin: [{
|
|
2049
|
+
type: Input
|
|
2050
|
+
}], wrap: [{
|
|
2051
|
+
type: Input
|
|
2052
|
+
}], ellipses: [{
|
|
2053
|
+
type: Input
|
|
2054
|
+
}], lines: [{
|
|
2055
|
+
type: Input
|
|
2056
|
+
}], italic: [{
|
|
2057
|
+
type: Input
|
|
2058
|
+
}] } });
|
|
2059
|
+
|
|
2060
|
+
class KitTextSubheadingComponent {
|
|
2061
|
+
color = '';
|
|
2062
|
+
align;
|
|
2063
|
+
weight;
|
|
2064
|
+
decoration;
|
|
2065
|
+
margin;
|
|
2066
|
+
wrap = true;
|
|
2067
|
+
ellipses = false;
|
|
2068
|
+
lines = 0;
|
|
2069
|
+
italic = false;
|
|
2070
|
+
get colorClass() {
|
|
2071
|
+
return this.color ? `kit-text-${this.color}` : '';
|
|
2072
|
+
}
|
|
2073
|
+
get textStyles() {
|
|
2074
|
+
const baseStyles = {
|
|
2075
|
+
'margin': this.margin,
|
|
2076
|
+
'text-align': this.align,
|
|
2077
|
+
'font-weight': this.weight,
|
|
2078
|
+
'text-decoration': this.decoration,
|
|
2079
|
+
'font-style': this.italic ? 'italic' : 'normal'
|
|
2080
|
+
};
|
|
2081
|
+
if (this.ellipses) {
|
|
2082
|
+
if (this.wrap && this.lines > 0) {
|
|
2083
|
+
// Multi-line ellipsis
|
|
2084
|
+
baseStyles['display'] = '-webkit-box';
|
|
2085
|
+
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
2086
|
+
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
2087
|
+
baseStyles['overflow'] = 'hidden';
|
|
2088
|
+
}
|
|
2089
|
+
else {
|
|
2090
|
+
// Single-line ellipsis
|
|
2091
|
+
baseStyles['white-space'] = 'nowrap';
|
|
2092
|
+
baseStyles['overflow'] = 'hidden';
|
|
2093
|
+
baseStyles['text-overflow'] = 'ellipsis';
|
|
2094
|
+
}
|
|
2095
|
+
}
|
|
2096
|
+
else {
|
|
2097
|
+
// Wrapping control
|
|
2098
|
+
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
2099
|
+
}
|
|
2100
|
+
return baseStyles;
|
|
2101
|
+
}
|
|
2102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextSubheadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextSubheadingComponent, isStandalone: true, selector: "kit-text-subheading", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<h2 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h2>", styles: ["h2{font-size:var(--kit-font-size-subheading, 1.5rem);font-weight:var(--kit-font-weight-subheading, 500);line-height:var(--kit-line-height-subheading, 1.2);margin-bottom:.75rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2104
|
+
}
|
|
2105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextSubheadingComponent, decorators: [{
|
|
2106
|
+
type: Component,
|
|
2107
|
+
args: [{ selector: 'kit-text-subheading', standalone: true, imports: [NgClass, NgStyle], template: "<h2 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h2>", styles: ["h2{font-size:var(--kit-font-size-subheading, 1.5rem);font-weight:var(--kit-font-weight-subheading, 500);line-height:var(--kit-line-height-subheading, 1.2);margin-bottom:.75rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
2108
|
+
}], propDecorators: { color: [{
|
|
2109
|
+
type: Input
|
|
2110
|
+
}], align: [{
|
|
2111
|
+
type: Input
|
|
2112
|
+
}], weight: [{
|
|
2113
|
+
type: Input
|
|
2114
|
+
}], decoration: [{
|
|
2115
|
+
type: Input
|
|
2116
|
+
}], margin: [{
|
|
2117
|
+
type: Input
|
|
2118
|
+
}], wrap: [{
|
|
2119
|
+
type: Input
|
|
2120
|
+
}], ellipses: [{
|
|
2121
|
+
type: Input
|
|
2122
|
+
}], lines: [{
|
|
2123
|
+
type: Input
|
|
2124
|
+
}], italic: [{
|
|
2125
|
+
type: Input
|
|
2126
|
+
}] } });
|
|
2127
|
+
|
|
2128
|
+
class KitTextDisplayComponent {
|
|
2129
|
+
color = '';
|
|
2130
|
+
align;
|
|
2131
|
+
weight;
|
|
2132
|
+
decoration;
|
|
2133
|
+
margin;
|
|
2134
|
+
wrap = true;
|
|
2135
|
+
ellipses = false;
|
|
2136
|
+
lines = 0;
|
|
2137
|
+
italic = false;
|
|
2138
|
+
get colorClass() {
|
|
2139
|
+
return this.color ? `kit-text-${this.color}` : '';
|
|
2140
|
+
}
|
|
2141
|
+
get textStyles() {
|
|
2142
|
+
const baseStyles = {
|
|
2143
|
+
'margin': this.margin,
|
|
2144
|
+
'text-align': this.align,
|
|
2145
|
+
'font-weight': this.weight,
|
|
2146
|
+
'text-decoration': this.decoration,
|
|
2147
|
+
'font-style': this.italic ? 'italic' : 'normal'
|
|
2148
|
+
};
|
|
2149
|
+
if (this.ellipses) {
|
|
2150
|
+
if (this.wrap && this.lines > 0) {
|
|
2151
|
+
// Multi-line ellipsis
|
|
2152
|
+
baseStyles['display'] = '-webkit-box';
|
|
2153
|
+
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
2154
|
+
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
2155
|
+
baseStyles['overflow'] = 'hidden';
|
|
2156
|
+
}
|
|
2157
|
+
else {
|
|
2158
|
+
// Single-line ellipsis
|
|
2159
|
+
baseStyles['white-space'] = 'nowrap';
|
|
2160
|
+
baseStyles['overflow'] = 'hidden';
|
|
2161
|
+
baseStyles['text-overflow'] = 'ellipsis';
|
|
2162
|
+
}
|
|
2163
|
+
}
|
|
2164
|
+
else {
|
|
2165
|
+
// Wrapping control
|
|
2166
|
+
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
2167
|
+
}
|
|
2168
|
+
return baseStyles;
|
|
2169
|
+
}
|
|
2170
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextDisplayComponent, isStandalone: true, selector: "kit-text-display", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<h3 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h3>", styles: ["h3{font-size:var(--kit-font-size-display, 3rem);font-weight:var(--kit-font-weight-display, bold);line-height:var(--kit-line-height-display, 1.3);margin-bottom:.5rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2172
|
+
}
|
|
2173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextDisplayComponent, decorators: [{
|
|
2174
|
+
type: Component,
|
|
2175
|
+
args: [{ selector: 'kit-text-display', standalone: true, imports: [NgClass, NgStyle], template: "<h3 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h3>", styles: ["h3{font-size:var(--kit-font-size-display, 3rem);font-weight:var(--kit-font-weight-display, bold);line-height:var(--kit-line-height-display, 1.3);margin-bottom:.5rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
2176
|
+
}], propDecorators: { color: [{
|
|
2177
|
+
type: Input
|
|
2178
|
+
}], align: [{
|
|
2179
|
+
type: Input
|
|
2180
|
+
}], weight: [{
|
|
2181
|
+
type: Input
|
|
2182
|
+
}], decoration: [{
|
|
2183
|
+
type: Input
|
|
2184
|
+
}], margin: [{
|
|
2185
|
+
type: Input
|
|
2186
|
+
}], wrap: [{
|
|
2187
|
+
type: Input
|
|
2188
|
+
}], ellipses: [{
|
|
2189
|
+
type: Input
|
|
2190
|
+
}], lines: [{
|
|
2191
|
+
type: Input
|
|
2192
|
+
}], italic: [{
|
|
2193
|
+
type: Input
|
|
2194
|
+
}] } });
|
|
2195
|
+
|
|
2196
|
+
class KitTextBodyComponent {
|
|
2197
|
+
color = '';
|
|
2198
|
+
align;
|
|
2199
|
+
weight;
|
|
2200
|
+
decoration;
|
|
2201
|
+
margin;
|
|
2202
|
+
wrap = true;
|
|
2203
|
+
ellipses = false;
|
|
2204
|
+
lines = 0;
|
|
2205
|
+
italic = false;
|
|
2206
|
+
get colorClass() {
|
|
2207
|
+
return this.color ? `kit-text-${this.color}` : '';
|
|
2208
|
+
}
|
|
2209
|
+
get textStyles() {
|
|
2210
|
+
const baseStyles = {
|
|
2211
|
+
'margin': this.margin,
|
|
2212
|
+
'text-align': this.align,
|
|
2213
|
+
'font-weight': this.weight,
|
|
2214
|
+
'text-decoration': this.decoration,
|
|
2215
|
+
'font-style': this.italic ? 'italic' : 'normal'
|
|
2216
|
+
};
|
|
2217
|
+
if (this.ellipses) {
|
|
2218
|
+
if (this.wrap && this.lines > 0) {
|
|
2219
|
+
// Multi-line ellipsis
|
|
2220
|
+
baseStyles['display'] = '-webkit-box';
|
|
2221
|
+
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
2222
|
+
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
2223
|
+
baseStyles['overflow'] = 'hidden';
|
|
2224
|
+
}
|
|
2225
|
+
else {
|
|
2226
|
+
// Single-line ellipsis
|
|
2227
|
+
baseStyles['white-space'] = 'nowrap';
|
|
2228
|
+
baseStyles['overflow'] = 'hidden';
|
|
2229
|
+
baseStyles['text-overflow'] = 'ellipsis';
|
|
2230
|
+
}
|
|
2231
|
+
}
|
|
2232
|
+
else {
|
|
2233
|
+
// Wrapping control
|
|
2234
|
+
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
2235
|
+
}
|
|
2236
|
+
return baseStyles;
|
|
2237
|
+
}
|
|
2238
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2239
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextBodyComponent, isStandalone: true, selector: "kit-text-body", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<p [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</p>", styles: ["p{font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-info{color:var(--kit-color-info, #17a2b8)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2240
|
+
}
|
|
2241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextBodyComponent, decorators: [{
|
|
2242
|
+
type: Component,
|
|
2243
|
+
args: [{ selector: 'kit-text-body', standalone: true, imports: [NgClass, NgStyle], template: "<p [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</p>", styles: ["p{font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-info{color:var(--kit-color-info, #17a2b8)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
2244
|
+
}], propDecorators: { color: [{
|
|
2245
|
+
type: Input
|
|
2246
|
+
}], align: [{
|
|
2247
|
+
type: Input
|
|
2248
|
+
}], weight: [{
|
|
2249
|
+
type: Input
|
|
2250
|
+
}], decoration: [{
|
|
2251
|
+
type: Input
|
|
2252
|
+
}], margin: [{
|
|
2253
|
+
type: Input
|
|
2254
|
+
}], wrap: [{
|
|
2255
|
+
type: Input
|
|
2256
|
+
}], ellipses: [{
|
|
2257
|
+
type: Input
|
|
2258
|
+
}], lines: [{
|
|
2259
|
+
type: Input
|
|
2260
|
+
}], italic: [{
|
|
2261
|
+
type: Input
|
|
2262
|
+
}] } });
|
|
2263
|
+
|
|
2264
|
+
class KitTextLinkComponent {
|
|
2265
|
+
color = '';
|
|
2266
|
+
href = '#';
|
|
2267
|
+
target = '_self';
|
|
2268
|
+
align;
|
|
2269
|
+
weight;
|
|
2270
|
+
decoration;
|
|
2271
|
+
margin;
|
|
2272
|
+
wrap = true;
|
|
2273
|
+
ellipses = false;
|
|
2274
|
+
lines = 0;
|
|
2275
|
+
italic = false;
|
|
2276
|
+
get colorClass() {
|
|
2277
|
+
return this.color ? `kit-text-${this.color}` : '';
|
|
2278
|
+
}
|
|
2279
|
+
get textStyles() {
|
|
2280
|
+
const baseStyles = {
|
|
2281
|
+
'margin': this.margin,
|
|
2282
|
+
'text-align': this.align,
|
|
2283
|
+
'font-weight': this.weight,
|
|
2284
|
+
'text-decoration': this.decoration,
|
|
2285
|
+
'font-style': this.italic ? 'italic' : 'normal'
|
|
2286
|
+
};
|
|
2287
|
+
if (this.ellipses) {
|
|
2288
|
+
if (this.wrap && this.lines > 0) {
|
|
2289
|
+
// Multi-line ellipsis
|
|
2290
|
+
baseStyles['display'] = '-webkit-box';
|
|
2291
|
+
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
2292
|
+
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
2293
|
+
baseStyles['overflow'] = 'hidden';
|
|
2294
|
+
}
|
|
2295
|
+
else {
|
|
2296
|
+
// Single-line ellipsis
|
|
2297
|
+
baseStyles['white-space'] = 'nowrap';
|
|
2298
|
+
baseStyles['overflow'] = 'hidden';
|
|
2299
|
+
baseStyles['text-overflow'] = 'ellipsis';
|
|
2300
|
+
}
|
|
2301
|
+
}
|
|
2302
|
+
else {
|
|
2303
|
+
// Wrapping control
|
|
2304
|
+
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
2305
|
+
}
|
|
2306
|
+
return baseStyles;
|
|
2307
|
+
}
|
|
2308
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2309
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextLinkComponent, isStandalone: true, selector: "kit-text-link", inputs: { color: "color", href: "href", target: "target", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<a [ngClass]=\"colorClass\" [href]=\"href\" [target]=\"target\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</a>", styles: ["a{font-size:var(--kit-font-size-link, 1rem);font-weight:var(--kit-font-weight-link, 400);line-height:var(--kit-line-height-link, 1.5);text-decoration:underline;cursor:pointer;color:var(--kit-color-primary, #0066cc)}a:hover{opacity:.85}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2310
|
+
}
|
|
2311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextLinkComponent, decorators: [{
|
|
2312
|
+
type: Component,
|
|
2313
|
+
args: [{ selector: 'kit-text-link', standalone: true, imports: [NgClass, NgStyle], template: "<a [ngClass]=\"colorClass\" [href]=\"href\" [target]=\"target\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</a>", styles: ["a{font-size:var(--kit-font-size-link, 1rem);font-weight:var(--kit-font-weight-link, 400);line-height:var(--kit-line-height-link, 1.5);text-decoration:underline;cursor:pointer;color:var(--kit-color-primary, #0066cc)}a:hover{opacity:.85}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
2314
|
+
}], propDecorators: { color: [{
|
|
2315
|
+
type: Input
|
|
2316
|
+
}], href: [{
|
|
2317
|
+
type: Input
|
|
2318
|
+
}], target: [{
|
|
2319
|
+
type: Input
|
|
2320
|
+
}], align: [{
|
|
2321
|
+
type: Input
|
|
2322
|
+
}], weight: [{
|
|
2323
|
+
type: Input
|
|
2324
|
+
}], decoration: [{
|
|
2325
|
+
type: Input
|
|
2326
|
+
}], margin: [{
|
|
2327
|
+
type: Input
|
|
2328
|
+
}], wrap: [{
|
|
2329
|
+
type: Input
|
|
2330
|
+
}], ellipses: [{
|
|
2331
|
+
type: Input
|
|
2332
|
+
}], lines: [{
|
|
2333
|
+
type: Input
|
|
2334
|
+
}], italic: [{
|
|
2335
|
+
type: Input
|
|
2336
|
+
}] } });
|
|
2337
|
+
|
|
2338
|
+
class KitTextModule {
|
|
2339
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2340
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: KitTextModule, imports: [KitTextHeadingComponent,
|
|
2341
|
+
KitTextSubheadingComponent,
|
|
2342
|
+
KitTextDisplayComponent,
|
|
2343
|
+
KitTextLabelComponent,
|
|
2344
|
+
KitTextBodyComponent,
|
|
2345
|
+
KitTextCaptionComponent,
|
|
2346
|
+
KitTextLinkComponent], exports: [KitTextHeadingComponent,
|
|
2347
|
+
KitTextSubheadingComponent,
|
|
2348
|
+
KitTextDisplayComponent,
|
|
2349
|
+
KitTextLabelComponent,
|
|
2350
|
+
KitTextBodyComponent,
|
|
2351
|
+
KitTextCaptionComponent,
|
|
2352
|
+
KitTextLinkComponent] });
|
|
2353
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextModule });
|
|
2354
|
+
}
|
|
2355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextModule, decorators: [{
|
|
2356
|
+
type: NgModule,
|
|
2357
|
+
args: [{
|
|
2358
|
+
declarations: [],
|
|
2359
|
+
imports: [
|
|
2360
|
+
KitTextHeadingComponent,
|
|
2361
|
+
KitTextSubheadingComponent,
|
|
2362
|
+
KitTextDisplayComponent,
|
|
2363
|
+
KitTextLabelComponent,
|
|
2364
|
+
KitTextBodyComponent,
|
|
2365
|
+
KitTextCaptionComponent,
|
|
2366
|
+
KitTextLinkComponent,
|
|
2367
|
+
],
|
|
2368
|
+
exports: [
|
|
2369
|
+
KitTextHeadingComponent,
|
|
2370
|
+
KitTextSubheadingComponent,
|
|
2371
|
+
KitTextDisplayComponent,
|
|
2372
|
+
KitTextLabelComponent,
|
|
2373
|
+
KitTextBodyComponent,
|
|
2374
|
+
KitTextCaptionComponent,
|
|
2375
|
+
KitTextLinkComponent,
|
|
2376
|
+
]
|
|
2377
|
+
}]
|
|
2378
|
+
}] });
|
|
2379
|
+
|
|
1992
2380
|
class KitInputSelectComponent extends KitBaseInputComponent {
|
|
1993
2381
|
screenService;
|
|
1994
2382
|
/**
|
|
@@ -2228,11 +2616,11 @@ class KitInputSelectComponent extends KitBaseInputComponent {
|
|
|
2228
2616
|
};
|
|
2229
2617
|
}
|
|
2230
2618
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitInputSelectComponent, deps: [{ token: KitScreenService }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2231
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitInputSelectComponent, isStandalone: true, selector: "kit-input-select", inputs: { required: "required", options: "options", matchField: "matchField", displayField: "displayField", dialogTitle: "dialogTitle", showSearchBox: "showSearchBox", searchField: "searchField", searchBoxPlaceholder: "searchBoxPlaceholder" }, queries: [{ propertyName: "activeTemplate", first: true, predicate: KitSelectItemActiveDirective, descendants: true, read: TemplateRef }, { propertyName: "inactiveTemplate", first: true, predicate: KitSelectItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: KitSelectEmptyDirective, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ value ? getDisplayValue(value) : (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div>\n <kit-text-label margin=\"5px\">{{ dialogTitle || title }}</kit-text-label>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyDialog>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n }\n\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div>\n <kit-text-label margin=\"5px\">{{ dialogTitle || title }}</kit-text-label>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyBottomSheet>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n\n }\n\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-select-item.selected{background-color:var(--kit-select-item-selected-background-color, var(--kit-color-primary, #0066cc));color:var(--kit-select-item-selected-text-color, #ffffff);border-radius:var(--kit-select-item-selected-border-radius, 14px)}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-item-check{color:var(--kit-select-item-check-color, #ffffff);font-weight:700;margin-left:8px;flex-shrink:0}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KitInputFieldTitleComponent, selector: "kit-input-field-title", inputs: ["for", "required", "disabled"] }, { kind: "component", type: KitTextCaptionComponent, selector: "kit-text-caption", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "ngmodule", type: KitOverlaysModule }, { kind: "component", type: KitBottomSheetComponent, selector: "kit-bottom-sheet", inputs: ["isOpen", "closeOnBackdropClick", "padding", "maxHeight"], outputs: ["isOpenChange"] }, { kind: "component", type: KitDialogComponent, selector: "kit-dialog", inputs: ["isOpen", "fullscreen", "closeOnBackdropClick", "padding"], outputs: ["isOpenChange"] }, { kind: "component", type: KitTextLabelComponent, selector: "kit-text-label", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "component", type: KitInputTextComponent, selector: "kit-input-text", inputs: ["required"], outputs: ["paste"] }] });
|
|
2619
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitInputSelectComponent, isStandalone: true, selector: "kit-input-select", inputs: { required: "required", options: "options", matchField: "matchField", displayField: "displayField", dialogTitle: "dialogTitle", showSearchBox: "showSearchBox", searchField: "searchField", searchBoxPlaceholder: "searchBoxPlaceholder" }, queries: [{ propertyName: "activeTemplate", first: true, predicate: KitSelectItemActiveDirective, descendants: true, read: TemplateRef }, { propertyName: "inactiveTemplate", first: true, predicate: KitSelectItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: KitSelectEmptyDirective, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ value ? getDisplayValue(value) : (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div>\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyDialog>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n }\n\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div>\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyBottomSheet>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n\n }\n\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-select-item.selected{background-color:var(--kit-select-item-selected-background-color, var(--kit-color-primary, #0066cc));color:var(--kit-select-item-selected-text-color, #ffffff);border-radius:var(--kit-select-item-selected-border-radius, 14px)}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-item-check{color:var(--kit-select-item-check-color, #ffffff);font-weight:700;margin-left:8px;flex-shrink:0}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KitInputFieldTitleComponent, selector: "kit-input-field-title", inputs: ["for", "required", "disabled"] }, { kind: "component", type: KitTextCaptionComponent, selector: "kit-text-caption", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "ngmodule", type: KitOverlaysModule }, { kind: "component", type: KitBottomSheetComponent, selector: "kit-bottom-sheet", inputs: ["isOpen", "closeOnBackdropClick", "padding", "maxHeight"], outputs: ["isOpenChange"] }, { kind: "component", type: KitDialogComponent, selector: "kit-dialog", inputs: ["isOpen", "fullscreen", "closeOnBackdropClick", "padding"], outputs: ["isOpenChange"] }, { kind: "component", type: KitInputTextComponent, selector: "kit-input-text", inputs: ["required"], outputs: ["paste"] }, { kind: "ngmodule", type: KitTextModule }, { kind: "component", type: KitTextSubheadingComponent, selector: "kit-text-subheading", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }] });
|
|
2232
2620
|
}
|
|
2233
2621
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitInputSelectComponent, decorators: [{
|
|
2234
2622
|
type: Component,
|
|
2235
|
-
args: [{ selector: 'kit-input-select', standalone: true, imports: [NgTemplateOutlet, KitInputFieldTitleComponent, KitTextCaptionComponent, KitOverlaysModule, KitTextLabelComponent, KitInputTextComponent], template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ value ? getDisplayValue(value) : (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div>\n <kit-text-
|
|
2623
|
+
args: [{ selector: 'kit-input-select', standalone: true, imports: [NgTemplateOutlet, KitInputFieldTitleComponent, KitTextCaptionComponent, KitOverlaysModule, KitTextLabelComponent, KitInputTextComponent, KitTextModule], template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ value ? getDisplayValue(value) : (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div>\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyDialog>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n }\n\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div>\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) &&\n !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <span class=\"kit-select-item-text\">{{ getDisplayValue(option) }}</span>\n @if(isSelected(option)){\n <svg class=\"kit-select-item-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <ng-template #defaultEmptyBottomSheet>\n <kit-text-caption>No options found</kit-text-caption>\n </ng-template>\n }\n </div>\n\n }\n\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-select-item.selected{background-color:var(--kit-select-item-selected-background-color, var(--kit-color-primary, #0066cc));color:var(--kit-select-item-selected-text-color, #ffffff);border-radius:var(--kit-select-item-selected-border-radius, 14px)}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-item-check{color:var(--kit-select-item-check-color, #ffffff);font-weight:700;margin-left:8px;flex-shrink:0}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"] }]
|
|
2236
2624
|
}], ctorParameters: () => [{ type: KitScreenService }, { type: i1.NgControl, decorators: [{
|
|
2237
2625
|
type: Optional
|
|
2238
2626
|
}, {
|
|
@@ -2431,7 +2819,7 @@ class KitInputMultiSelectComponent extends KitBaseInputComponent {
|
|
|
2431
2819
|
/**
|
|
2432
2820
|
* Custom title text for the dialog/bottom sheet (default: 'Select an option')
|
|
2433
2821
|
*/
|
|
2434
|
-
dialogTitle = '
|
|
2822
|
+
dialogTitle = 'Options';
|
|
2435
2823
|
/**
|
|
2436
2824
|
* Whether to show a search box at the top of the options list
|
|
2437
2825
|
*/
|
|
@@ -2663,11 +3051,11 @@ class KitInputMultiSelectComponent extends KitBaseInputComponent {
|
|
|
2663
3051
|
};
|
|
2664
3052
|
}
|
|
2665
3053
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitInputMultiSelectComponent, deps: [{ token: KitScreenService }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2666
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitInputMultiSelectComponent, isStandalone: true, selector: "kit-input-multi-select", inputs: { required: "required", options: "options", matchField: "matchField", displayField: "displayField", dialogTitle: "dialogTitle", showSearchBox: "showSearchBox", searchField: "searchField", searchBoxPlaceholder: "searchBoxPlaceholder" }, queries: [{ propertyName: "activeTemplate", first: true, predicate: KitSelectItemActiveDirective, descendants: true, read: TemplateRef }, { propertyName: "inactiveTemplate", first: true, predicate: KitSelectItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: KitSelectEmptyDirective, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ getDisplayValue() || (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div class=\"kit-dialog-header\">\n <kit-text-label margin=\"5px\">{{ dialogTitle || title }}</kit-text-label>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n <kit-text-caption>No options found</kit-text-caption>\n </div>\n }\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div class=\"kit-bottom-sheet-header\">\n <kit-text-label margin=\"5px\">{{ dialogTitle || title }}</kit-text-label>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n <kit-text-caption>No options found</kit-text-caption>\n </div>\n }\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-dialog-header,.kit-bottom-sheet-header{display:flex;justify-content:space-between;align-items:center}.kit-dialog-close,.kit-bottom-sheet-close{background:none;border:none;cursor:pointer;padding:8px}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-checkbox{width:20px;height:20px;border:2px solid var(--kit-input-border-color, #adb5bd);border-radius:4px;display:flex;align-items:center;justify-content:center;margin-right:12px;transition:background-color .2s,border-color .2s}.kit-checkbox-check{display:none;color:#fff}.kit-select-item.selected .kit-checkbox{background-color:var(--kit-color-primary, #0066cc);border-color:var(--kit-color-primary, #0066cc)}.kit-select-item.selected .kit-checkbox-check{display:block}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "component", type: KitInputFieldTitleComponent, selector: "kit-input-field-title", inputs: ["for", "required", "disabled"] }, { kind: "component", type: KitTextCaptionComponent, selector: "kit-text-caption", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "ngmodule", type: KitOverlaysModule }, { kind: "component", type: KitBottomSheetComponent, selector: "kit-bottom-sheet", inputs: ["isOpen", "closeOnBackdropClick", "padding", "maxHeight"], outputs: ["isOpenChange"] }, { kind: "component", type: KitDialogComponent, selector: "kit-dialog", inputs: ["isOpen", "fullscreen", "closeOnBackdropClick", "padding"], outputs: ["isOpenChange"] }, { kind: "component", type: KitTextLabelComponent, selector: "kit-text-label", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "component", type: KitInputTextComponent, selector: "kit-input-text", inputs: ["required"], outputs: ["paste"] }] });
|
|
3054
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitInputMultiSelectComponent, isStandalone: true, selector: "kit-input-multi-select", inputs: { required: "required", options: "options", matchField: "matchField", displayField: "displayField", dialogTitle: "dialogTitle", showSearchBox: "showSearchBox", searchField: "searchField", searchBoxPlaceholder: "searchBoxPlaceholder" }, queries: [{ propertyName: "activeTemplate", first: true, predicate: KitSelectItemActiveDirective, descendants: true, read: TemplateRef }, { propertyName: "inactiveTemplate", first: true, predicate: KitSelectItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: KitSelectEmptyDirective, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ getDisplayValue() || (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div class=\"kit-dialog-header\">\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) && !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <kit-text-caption>No options found</kit-text-caption>\n }\n </div>\n }\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div class=\"kit-bottom-sheet-header\">\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) && !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <kit-text-caption>No options found</kit-text-caption>\n }\n </div>\n }\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-dialog-header,.kit-bottom-sheet-header{display:flex;justify-content:space-between;align-items:center}.kit-dialog-close,.kit-bottom-sheet-close{background:none;border:none;cursor:pointer;padding:8px}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-checkbox{width:20px;height:20px;border:2px solid var(--kit-input-border-color, #adb5bd);border-radius:4px;display:flex;align-items:center;justify-content:center;margin-right:12px;transition:background-color .2s,border-color .2s}.kit-checkbox-check{display:none;color:#fff}.kit-select-item.selected .kit-checkbox{background-color:var(--kit-color-primary, #0066cc);border-color:var(--kit-color-primary, #0066cc)}.kit-select-item.selected .kit-checkbox-check{display:block}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KitInputFieldTitleComponent, selector: "kit-input-field-title", inputs: ["for", "required", "disabled"] }, { kind: "component", type: KitTextCaptionComponent, selector: "kit-text-caption", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }, { kind: "ngmodule", type: KitOverlaysModule }, { kind: "component", type: KitBottomSheetComponent, selector: "kit-bottom-sheet", inputs: ["isOpen", "closeOnBackdropClick", "padding", "maxHeight"], outputs: ["isOpenChange"] }, { kind: "component", type: KitDialogComponent, selector: "kit-dialog", inputs: ["isOpen", "fullscreen", "closeOnBackdropClick", "padding"], outputs: ["isOpenChange"] }, { kind: "component", type: KitInputTextComponent, selector: "kit-input-text", inputs: ["required"], outputs: ["paste"] }, { kind: "ngmodule", type: KitTextModule }, { kind: "component", type: KitTextSubheadingComponent, selector: "kit-text-subheading", inputs: ["color", "align", "weight", "decoration", "margin", "wrap", "ellipses", "lines", "italic"] }] });
|
|
2667
3055
|
}
|
|
2668
3056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitInputMultiSelectComponent, decorators: [{
|
|
2669
3057
|
type: Component,
|
|
2670
|
-
args: [{ selector: 'kit-input-multi-select', standalone: true, imports: [KitInputFieldTitleComponent, KitTextCaptionComponent, KitOverlaysModule, KitTextLabelComponent, KitInputTextComponent], template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ getDisplayValue() || (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div class=\"kit-dialog-header\">\n <kit-text-
|
|
3058
|
+
args: [{ selector: 'kit-input-multi-select', standalone: true, imports: [NgTemplateOutlet, KitInputFieldTitleComponent, KitTextCaptionComponent, KitOverlaysModule, KitTextLabelComponent, KitInputTextComponent, KitTextModule], template: "@if(title){\n<kit-input-field-title [for]=\"id\"\n [required]=\"required\"\n [disabled]=\"disabled\">\n {{ title }}\n</kit-input-field-title>\n}\n\n<!-- Custom select that opens the appropriate UI based on screen size -->\n<div class=\"kit-input-select-container\"\n [id]=\"id\"\n [attr.aria-label]=\"title\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"hasError || null\"\n [class.disabled]=\"disabled\"\n [class.error]=\"hasError\"\n tabindex=\"0\"\n (click)=\"!disabled && openSelect()\"\n (keydown)=\"!disabled && onKeyDown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n\n <div class=\"kit-input-select\"\n [class.has-error]=\"hasError\"\n [class.disabled]=\"disabled\">\n {{ getDisplayValue() || (placeholder || 'Select...') }}\n </div>\n\n</div>\n\n@if(helperText && !hasError){\n<kit-text-caption class=\"helper-text\">\n {{ helperText }}\n</kit-text-caption>\n}\n\n@if(hasError && effectiveErrorMessage){\n<kit-text-caption class=\"error-message\">\n {{ effectiveErrorMessage }}\n</kit-text-caption>\n}\n\n<!-- Dialog for larger screens -->\n<kit-dialog [(isOpen)]=\"isDialogOpen\">\n <div>\n <div class=\"kit-dialog-header\">\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) && !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <kit-text-caption>No options found</kit-text-caption>\n }\n </div>\n }\n </div>\n </div>\n</kit-dialog>\n\n<!-- Bottom sheet for small screens -->\n<kit-bottom-sheet [(isOpen)]=\"isBottomSheetOpen\">\n <div>\n <div class=\"kit-bottom-sheet-header\">\n <kit-text-subheading margin=\"5px\"\n weight=\"bold\">{{ dialogTitle || title }}</kit-text-subheading>\n </div>\n\n <!-- Search input -->\n @if(showSearchBox){\n <div class=\"kit-select-search-container\">\n <kit-input-text [(value)]=\"searchTerm\"\n (valueChange)=\"onSearchChange($event)\"\n [placeholder]=\"searchBoxPlaceholder\"></kit-input-text>\n </div>\n }\n\n <div class=\"kit-select-options\">\n @for(option of filteredOptions; track option){\n <!-- Custom template for selected option -->\n @if(isSelected(option) && hasCustomActiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"activeTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Custom template for unselected option -->\n @if(!isSelected(option) && hasCustomInactiveTemplate()){\n <div class=\"kit-select-item-custom\"\n (click)=\"onOptionSelect(option)\">\n <ng-container *ngTemplateOutlet=\"inactiveTemplate; context: getOptionContext(option)\"></ng-container>\n </div>\n }\n\n <!-- Default template if no custom template for this state -->\n @if((!isSelected(option) && !hasCustomInactiveTemplate()) || (isSelected(option) && !hasCustomActiveTemplate())){\n <div class=\"kit-select-item\"\n [class.selected]=\"isSelected(option)\"\n (click)=\"onOptionSelect(option)\">\n <div class=\"kit-checkbox\">\n <svg class=\"kit-checkbox-check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\">\n <path d=\"M20 6L9 17L4 12\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n <span class=\"kit-select-item-text\">{{ getOptionDisplay(option) }}</span>\n </div>\n }\n }\n\n @if(filteredOptions.length === 0){\n <div class=\"kit-select-options\">\n @if(hasCustomEmptyTemplate()){\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n }\n @else{\n <kit-text-caption>No options found</kit-text-caption>\n }\n </div>\n }\n </div>\n </div>\n</kit-bottom-sheet>", styles: [":host{display:block;width:100%}.kit-input-select-container{position:relative;width:100%;display:flex;align-items:center}.kit-input-select{width:100%;box-sizing:border-box;padding:var(--kit-input-padding, 12px 16px);font-size:var(--kit-input-font-size, 1rem);line-height:var(--kit-input-line-height, 1.5);color:var(--kit-input-text-color, #212529);background-color:var(--kit-input-background-color, #e8e8e8);border:var(--kit-input-border-width, 2px) solid var(--kit-input-border-color, transparent);border-radius:var(--kit-input-border-radius, 16px);transition:border-color .2s ease-in-out;padding-right:40px}.kit-input-select::placeholder{color:var(--kit-input-placeholder-color, var(--kit-text-color-secondary, #6c757d));opacity:1}.kit-input-select:focus{outline:none;border-color:var(--kit-input-focus-border-color, var(--kit-color-primary, #0066cc))}.kit-input-select.has-error{border-color:var(--kit-input-error-border-color, var(--kit-color-danger, #dc3545));background-color:var(--kit-input-error-background-color, #fce8ea)}.kit-input-select:disabled,.kit-input-select.disabled{background-color:var(--kit-input-disabled-background-color, #f5f5f5);color:var(--kit-input-disabled-text-color, var(--kit-text-color-muted, #adb5bd));cursor:not-allowed}.kit-input-select:disabled::placeholder,.kit-input-select.disabled::placeholder{color:var(--kit-input-disabled-placeholder-color, var(--kit-text-color-muted, #adb5bd))}.kit-dialog-header,.kit-bottom-sheet-header{display:flex;justify-content:space-between;align-items:center}.kit-dialog-close,.kit-bottom-sheet-close{background:none;border:none;cursor:pointer;padding:8px}.kit-select-options{display:flex;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;box-sizing:border-box}.kit-select-item{display:flex;align-items:center;width:100%;box-sizing:border-box;padding:var(--kit-select-item-padding, 12px 16px);font-size:var(--kit-select-item-font-size, var(--kit-font-size-body, 1rem));color:var(--kit-select-item-text-color, var(--kit-text-color-primary, #212529));background-color:var(--kit-select-item-background-color, transparent);border-radius:var(--kit-select-item-border-radius, 14px);border:none;outline:none;flex-shrink:0}.kit-select-item:hover{background-color:var(--kit-select-item-hover-background-color, rgba(0, 102, 204, .1))}.kit-checkbox{width:20px;height:20px;border:2px solid var(--kit-input-border-color, #adb5bd);border-radius:4px;display:flex;align-items:center;justify-content:center;margin-right:12px;transition:background-color .2s,border-color .2s}.kit-checkbox-check{display:none;color:#fff}.kit-select-item.selected .kit-checkbox{background-color:var(--kit-color-primary, #0066cc);border-color:var(--kit-color-primary, #0066cc)}.kit-select-item.selected .kit-checkbox-check{display:block}.kit-select-item-custom{display:block;width:100%;border:none;outline:none;box-sizing:border-box}.kit-select-item-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-select-search-container{padding-top:5px;padding-bottom:5px}\n"] }]
|
|
2671
3059
|
}], ctorParameters: () => [{ type: KitScreenService }, { type: i1.NgControl, decorators: [{
|
|
2672
3060
|
type: Optional
|
|
2673
3061
|
}, {
|
|
@@ -5018,592 +5406,204 @@ class KitTabViewComponent {
|
|
|
5018
5406
|
}
|
|
5019
5407
|
}
|
|
5020
5408
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTabViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5021
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitTabViewComponent, isStandalone: true, selector: "kit-tab-view", inputs: { tabs: "tabs" }, queries: [{ propertyName: "tabContents", predicate: KitTabContentComponent }], viewQueries: [{ propertyName: "tabHeaderElement", first: true, predicate: ["tabHeader"], descendants: true }], ngImport: i0, template: "<div class=\"kit-tab-view-container\">\n\n <div class=\"kit-tab-header\"\n #tabHeader>\n\n @for (tab of (tabs.length > 0 ? tabs : generatedTabs); track tab) {\n <div\n class=\"kit-tab-item\"\n [class.kit-tab-item--active]=\"tab.active\"\n (click)=\"selectTab(tab.index)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab.active\">\n {{ tab.title }}\n </div>\n }\n\n </div>\n\n <div class=\"kit-tab-content\"\n role=\"tabpanel\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [":host{display:block;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.kit-tab-view-container{width:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.kit-tab-header{display:flex;flex-wrap:nowrap;margin-bottom:var(--kit-input-padding, 16px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;box-sizing:border-box;position:relative;scroll-behavior:smooth}.kit-tab-header::-webkit-scrollbar{display:none}.kit-tab-item{padding:12px 16px;cursor:pointer;font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);color:var(--kit-text-color-secondary, #6c757d);background-color:transparent;border:none;border-bottom:2px solid transparent;transition:color .2s ease,background-color .2s ease;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.kit-tab-item:hover{color:var(--kit-color-primary, #0066cc);background-color:#0066cc0d}.kit-tab-item:focus{outline:2px solid var(--kit-color-primary, #0066cc);outline-offset:-2px}.kit-tab-item:after{content:\"\";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background-color:var(--kit-color-primary, #0066cc);transition:width .3s ease,left .3s ease;transform:translate(-50%)}.kit-tab-item--active{color:var(--kit-color-primary, #0066cc);font-weight:var(--kit-font-weight-label, 500);border-bottom-color:transparent}.kit-tab-item--active:after{width:100%}.kit-tab-item--active:hover{background-color:#0066cc1a}.kit-tab-content{flex:1;min-height:0;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}\n"] });
|
|
5022
|
-
}
|
|
5023
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTabViewComponent, decorators: [{
|
|
5024
|
-
type: Component,
|
|
5025
|
-
args: [{ selector: 'kit-tab-view', standalone: true, imports: [], template: "<div class=\"kit-tab-view-container\">\n\n <div class=\"kit-tab-header\"\n #tabHeader>\n\n @for (tab of (tabs.length > 0 ? tabs : generatedTabs); track tab) {\n <div\n class=\"kit-tab-item\"\n [class.kit-tab-item--active]=\"tab.active\"\n (click)=\"selectTab(tab.index)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab.active\">\n {{ tab.title }}\n </div>\n }\n\n </div>\n\n <div class=\"kit-tab-content\"\n role=\"tabpanel\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [":host{display:block;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.kit-tab-view-container{width:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.kit-tab-header{display:flex;flex-wrap:nowrap;margin-bottom:var(--kit-input-padding, 16px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;box-sizing:border-box;position:relative;scroll-behavior:smooth}.kit-tab-header::-webkit-scrollbar{display:none}.kit-tab-item{padding:12px 16px;cursor:pointer;font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);color:var(--kit-text-color-secondary, #6c757d);background-color:transparent;border:none;border-bottom:2px solid transparent;transition:color .2s ease,background-color .2s ease;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.kit-tab-item:hover{color:var(--kit-color-primary, #0066cc);background-color:#0066cc0d}.kit-tab-item:focus{outline:2px solid var(--kit-color-primary, #0066cc);outline-offset:-2px}.kit-tab-item:after{content:\"\";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background-color:var(--kit-color-primary, #0066cc);transition:width .3s ease,left .3s ease;transform:translate(-50%)}.kit-tab-item--active{color:var(--kit-color-primary, #0066cc);font-weight:var(--kit-font-weight-label, 500);border-bottom-color:transparent}.kit-tab-item--active:after{width:100%}.kit-tab-item--active:hover{background-color:#0066cc1a}.kit-tab-content{flex:1;min-height:0;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}\n"] }]
|
|
5026
|
-
}], propDecorators: { tabContents: [{
|
|
5027
|
-
type: ContentChildren,
|
|
5028
|
-
args: [KitTabContentComponent]
|
|
5029
|
-
}], tabHeaderElement: [{
|
|
5030
|
-
type: ViewChild,
|
|
5031
|
-
args: ['tabHeader']
|
|
5032
|
-
}], tabs: [{
|
|
5033
|
-
type: Input
|
|
5034
|
-
}] } });
|
|
5035
|
-
|
|
5036
|
-
class KitNavigationModule {
|
|
5037
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5038
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, imports: [KitRouterOutletComponent,
|
|
5039
|
-
KitTabViewComponent,
|
|
5040
|
-
KitTabContentComponent], exports: [KitRouterOutletComponent,
|
|
5041
|
-
KitTabViewComponent,
|
|
5042
|
-
KitTabContentComponent] });
|
|
5043
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule });
|
|
5044
|
-
}
|
|
5045
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, decorators: [{
|
|
5046
|
-
type: NgModule,
|
|
5047
|
-
args: [{
|
|
5048
|
-
imports: [
|
|
5049
|
-
KitRouterOutletComponent,
|
|
5050
|
-
KitTabViewComponent,
|
|
5051
|
-
KitTabContentComponent
|
|
5052
|
-
],
|
|
5053
|
-
exports: [
|
|
5054
|
-
KitRouterOutletComponent,
|
|
5055
|
-
KitTabViewComponent,
|
|
5056
|
-
KitTabContentComponent
|
|
5057
|
-
]
|
|
5058
|
-
}]
|
|
5059
|
-
}] });
|
|
5060
|
-
|
|
5061
|
-
/**
|
|
5062
|
-
* A card component that displays content in an elevated, contained surface.
|
|
5063
|
-
* Cards can be clickable and support different elevation levels.
|
|
5064
|
-
*/
|
|
5065
|
-
class KitCardComponent {
|
|
5066
|
-
/**
|
|
5067
|
-
* The elevation level of the card (affects shadow depth)
|
|
5068
|
-
*/
|
|
5069
|
-
elevation = 'low';
|
|
5070
|
-
/**
|
|
5071
|
-
* Whether the card is clickable
|
|
5072
|
-
*/
|
|
5073
|
-
clickable = false;
|
|
5074
|
-
/**
|
|
5075
|
-
* Whether the card is disabled (only applies to clickable cards)
|
|
5076
|
-
*/
|
|
5077
|
-
disabled = false;
|
|
5078
|
-
/**
|
|
5079
|
-
* Whether the card should take up the full width of its container
|
|
5080
|
-
*/
|
|
5081
|
-
fullWidth = false;
|
|
5082
|
-
/**
|
|
5083
|
-
* Whether the card should take up the full height of its container
|
|
5084
|
-
*/
|
|
5085
|
-
fullHeight = false;
|
|
5086
|
-
/**
|
|
5087
|
-
* Emitted when the card is clicked (only for clickable cards)
|
|
5088
|
-
*/
|
|
5089
|
-
clicked = new EventEmitter();
|
|
5090
|
-
/**
|
|
5091
|
-
* Apply the clickable class to the host element when clickable is true
|
|
5092
|
-
*/
|
|
5093
|
-
get isClickable() {
|
|
5094
|
-
return this.clickable && !this.disabled;
|
|
5095
|
-
}
|
|
5096
|
-
/**
|
|
5097
|
-
* Apply the full-width class to the host element when fullWidth is true
|
|
5098
|
-
*/
|
|
5099
|
-
get isFullWidth() {
|
|
5100
|
-
return this.fullWidth;
|
|
5101
|
-
}
|
|
5102
|
-
/**
|
|
5103
|
-
* Apply the full-height class to the host element when fullHeight is true
|
|
5104
|
-
*/
|
|
5105
|
-
get isFullHeight() {
|
|
5106
|
-
return this.fullHeight;
|
|
5107
|
-
}
|
|
5108
|
-
/**
|
|
5109
|
-
* Classes to apply to the card element
|
|
5110
|
-
*/
|
|
5111
|
-
get cardClasses() {
|
|
5112
|
-
const classes = ['kit-card'];
|
|
5113
|
-
// Add elevation class
|
|
5114
|
-
classes.push(`kit-card--${this.elevation}`);
|
|
5115
|
-
// Add clickable class if needed
|
|
5116
|
-
if (this.clickable) {
|
|
5117
|
-
classes.push('kit-card--clickable');
|
|
5118
|
-
}
|
|
5119
|
-
// Add disabled class if needed
|
|
5120
|
-
if (this.disabled && this.clickable) {
|
|
5121
|
-
classes.push('kit-card--disabled');
|
|
5122
|
-
}
|
|
5123
|
-
// Add full width class if needed
|
|
5124
|
-
if (this.fullWidth) {
|
|
5125
|
-
classes.push('kit-card--full-width');
|
|
5126
|
-
}
|
|
5127
|
-
return classes;
|
|
5128
|
-
}
|
|
5129
|
-
/**
|
|
5130
|
-
* Handle card click
|
|
5131
|
-
*/
|
|
5132
|
-
handleClick(event) {
|
|
5133
|
-
if (this.clickable && !this.disabled) {
|
|
5134
|
-
this.clicked.emit(event);
|
|
5135
|
-
}
|
|
5136
|
-
}
|
|
5137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitCardComponent, isStandalone: true, selector: "kit-card", inputs: { elevation: "elevation", clickable: "clickable", disabled: "disabled", fullWidth: "fullWidth", fullHeight: "fullHeight" }, outputs: { clicked: "clicked" }, host: { properties: { "class.clickable": "this.isClickable", "class.full-width": "this.isFullWidth", "class.full-height": "this.isFullHeight" } }, ngImport: i0, template: "<div [ngClass]=\"cardClasses\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable && !disabled ? '0' : null\"\n [attr.aria-disabled]=\"clickable && disabled ? 'true' : null\"\n (click)=\"handleClick($event)\">\n\n <div class=\"kit-card__content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host{display:inline-block;min-width:0}:host.full-width{display:block;width:100%}:host.full-width .kit-card{width:100%}:host.full-height{display:block;height:100%}:host.full-height .kit-card{height:100%}:host.full-height .kit-card .kit-card__content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}:host.clickable{cursor:pointer}.kit-card{position:relative;display:flex;flex-direction:column;background-color:var(--kit-card-background-color, #ffffff);border-radius:var(--kit-card-border-radius, 16px);transition:box-shadow .2s ease,transform .1s ease;overflow:hidden;box-sizing:border-box;border:var(--kit-card-border-width, 1px) solid var(--kit-card-border-color, transparent)}.kit-card .kit-card__content{display:flex;flex-direction:column;width:100%;min-width:0;padding:var(--kit-card-padding, 16px);box-sizing:border-box}.kit-card.kit-card--none{box-shadow:none}.kit-card.kit-card--low{box-shadow:var(--kit-card-shadow-low, 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24))}.kit-card.kit-card--medium{box-shadow:var(--kit-card-shadow-medium, 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--high{box-shadow:var(--kit-card-shadow-high, 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.kit-card.kit-card--clickable:hover:not(.kit-card--disabled){transform:var(--kit-card-hover-transform, translateY(-2px));box-shadow:var(--kit-card-hover-shadow, 0 4px 8px rgba(0, 0, 0, .16), 0 4px 8px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable:active:not(.kit-card--disabled){transform:var(--kit-card-active-transform, translateY(0));box-shadow:var(--kit-card-active-shadow, 0 2px 4px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24))}.kit-card.kit-card--clickable:focus:not(.kit-card--disabled){outline:none;box-shadow:var(--kit-card-focus-shadow, 0 0 0 3px rgba(var(--kit-color-primary-rgb, 0, 102, 204), .2))}.kit-card.kit-card--disabled{cursor:not-allowed;opacity:var(--kit-card-disabled-opacity, .6);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
5139
|
-
}
|
|
5140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitCardComponent, decorators: [{
|
|
5141
|
-
type: Component,
|
|
5142
|
-
args: [{ selector: 'kit-card', standalone: true, imports: [NgClass], template: "<div [ngClass]=\"cardClasses\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable && !disabled ? '0' : null\"\n [attr.aria-disabled]=\"clickable && disabled ? 'true' : null\"\n (click)=\"handleClick($event)\">\n\n <div class=\"kit-card__content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host{display:inline-block;min-width:0}:host.full-width{display:block;width:100%}:host.full-width .kit-card{width:100%}:host.full-height{display:block;height:100%}:host.full-height .kit-card{height:100%}:host.full-height .kit-card .kit-card__content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}:host.clickable{cursor:pointer}.kit-card{position:relative;display:flex;flex-direction:column;background-color:var(--kit-card-background-color, #ffffff);border-radius:var(--kit-card-border-radius, 16px);transition:box-shadow .2s ease,transform .1s ease;overflow:hidden;box-sizing:border-box;border:var(--kit-card-border-width, 1px) solid var(--kit-card-border-color, transparent)}.kit-card .kit-card__content{display:flex;flex-direction:column;width:100%;min-width:0;padding:var(--kit-card-padding, 16px);box-sizing:border-box}.kit-card.kit-card--none{box-shadow:none}.kit-card.kit-card--low{box-shadow:var(--kit-card-shadow-low, 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24))}.kit-card.kit-card--medium{box-shadow:var(--kit-card-shadow-medium, 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--high{box-shadow:var(--kit-card-shadow-high, 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.kit-card.kit-card--clickable:hover:not(.kit-card--disabled){transform:var(--kit-card-hover-transform, translateY(-2px));box-shadow:var(--kit-card-hover-shadow, 0 4px 8px rgba(0, 0, 0, .16), 0 4px 8px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable:active:not(.kit-card--disabled){transform:var(--kit-card-active-transform, translateY(0));box-shadow:var(--kit-card-active-shadow, 0 2px 4px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24))}.kit-card.kit-card--clickable:focus:not(.kit-card--disabled){outline:none;box-shadow:var(--kit-card-focus-shadow, 0 0 0 3px rgba(var(--kit-color-primary-rgb, 0, 102, 204), .2))}.kit-card.kit-card--disabled{cursor:not-allowed;opacity:var(--kit-card-disabled-opacity, .6);pointer-events:none}\n"] }]
|
|
5143
|
-
}], propDecorators: { elevation: [{
|
|
5144
|
-
type: Input
|
|
5145
|
-
}], clickable: [{
|
|
5146
|
-
type: Input
|
|
5147
|
-
}], disabled: [{
|
|
5148
|
-
type: Input
|
|
5149
|
-
}], fullWidth: [{
|
|
5150
|
-
type: Input
|
|
5151
|
-
}], fullHeight: [{
|
|
5152
|
-
type: Input
|
|
5153
|
-
}], clicked: [{
|
|
5154
|
-
type: Output
|
|
5155
|
-
}], isClickable: [{
|
|
5156
|
-
type: HostBinding,
|
|
5157
|
-
args: ['class.clickable']
|
|
5158
|
-
}], isFullWidth: [{
|
|
5159
|
-
type: HostBinding,
|
|
5160
|
-
args: ['class.full-width']
|
|
5161
|
-
}], isFullHeight: [{
|
|
5162
|
-
type: HostBinding,
|
|
5163
|
-
args: ['class.full-height']
|
|
5164
|
-
}] } });
|
|
5165
|
-
|
|
5166
|
-
class KitBadgeComponent {
|
|
5167
|
-
color = 'primary';
|
|
5168
|
-
active = true;
|
|
5169
|
-
fullWidth = false;
|
|
5170
|
-
get isFullWidth() {
|
|
5171
|
-
return this.fullWidth;
|
|
5172
|
-
}
|
|
5173
|
-
get badgeClasses() {
|
|
5174
|
-
const classes = ['kit-badge'];
|
|
5175
|
-
classes.push(`kit-badge--${this.color}`);
|
|
5176
|
-
if (!this.active) {
|
|
5177
|
-
classes.push('kit-badge--inactive');
|
|
5178
|
-
}
|
|
5179
|
-
if (this.fullWidth) {
|
|
5180
|
-
classes.push('kit-badge--full-width');
|
|
5181
|
-
}
|
|
5182
|
-
return classes;
|
|
5183
|
-
}
|
|
5184
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5185
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitBadgeComponent, isStandalone: true, selector: "kit-badge", inputs: { color: "color", active: "active", fullWidth: "fullWidth" }, host: { properties: { "class.full-width": "this.isFullWidth" } }, ngImport: i0, template: "\n<div [ngClass]=\"badgeClasses\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}:host.full-width{width:100%}.kit-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--kit-badge-border-radius, 12px);font-weight:var(--kit-badge-font-weight, 700);padding:var(--kit-badge-padding, 6px 12px);font-size:var(--kit-badge-font-size, 12px);line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}.kit-badge.kit-badge--full-width{width:100%}.kit-badge.kit-badge--primary{background-color:var(--kit-color-primary, #0066cc);color:#fff}.kit-badge.kit-badge--secondary{background-color:var(--kit-color-secondary, #6c757d);color:#fff}.kit-badge.kit-badge--success{background-color:var(--kit-color-success, #28a745);color:#fff}.kit-badge.kit-badge--info{background-color:var(--kit-color-info, #17a2b8);color:#fff}.kit-badge.kit-badge--warning{background-color:var(--kit-color-warning, #ffc107);color:#000}.kit-badge.kit-badge--danger{background-color:var(--kit-color-danger, #dc3545);color:#fff}.kit-badge.kit-badge--transparent{background-color:transparent;color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}.kit-badge.kit-badge--inactive{background-color:transparent}.kit-badge.kit-badge--inactive.kit-badge--primary{background-color:rgba(var(--kit-color-primary-rgb, 0, 102, 204),.08);color:var(--kit-color-primary, #0066cc)}.kit-badge.kit-badge--inactive.kit-badge--secondary{background-color:rgba(var(--kit-color-secondary-rgb, 108, 117, 125),.08);color:var(--kit-color-secondary, #6c757d)}.kit-badge.kit-badge--inactive.kit-badge--success{background-color:rgba(var(--kit-color-success-rgb, 40, 167, 69),.08);color:var(--kit-color-success, #28a745)}.kit-badge.kit-badge--inactive.kit-badge--info{background-color:rgba(var(--kit-color-info-rgb, 23, 162, 184),.08);color:var(--kit-color-info, #17a2b8)}.kit-badge.kit-badge--inactive.kit-badge--warning{background-color:rgba(var(--kit-color-warning-rgb, 255, 193, 7),.08);color:var(--kit-color-warning, #ffc107)}.kit-badge.kit-badge--inactive.kit-badge--danger{background-color:rgba(var(--kit-color-danger-rgb, 220, 53, 69),.08);color:var(--kit-color-danger, #dc3545)}.kit-badge.kit-badge--inactive.kit-badge--transparent{background-color:rgba(var(--kit-color-transparent-text-rgb, 33, 37, 41),.04);color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
5186
|
-
}
|
|
5187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitBadgeComponent, decorators: [{
|
|
5188
|
-
type: Component,
|
|
5189
|
-
args: [{ selector: 'kit-badge', standalone: true, imports: [NgClass], template: "\n<div [ngClass]=\"badgeClasses\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}:host.full-width{width:100%}.kit-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--kit-badge-border-radius, 12px);font-weight:var(--kit-badge-font-weight, 700);padding:var(--kit-badge-padding, 6px 12px);font-size:var(--kit-badge-font-size, 12px);line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}.kit-badge.kit-badge--full-width{width:100%}.kit-badge.kit-badge--primary{background-color:var(--kit-color-primary, #0066cc);color:#fff}.kit-badge.kit-badge--secondary{background-color:var(--kit-color-secondary, #6c757d);color:#fff}.kit-badge.kit-badge--success{background-color:var(--kit-color-success, #28a745);color:#fff}.kit-badge.kit-badge--info{background-color:var(--kit-color-info, #17a2b8);color:#fff}.kit-badge.kit-badge--warning{background-color:var(--kit-color-warning, #ffc107);color:#000}.kit-badge.kit-badge--danger{background-color:var(--kit-color-danger, #dc3545);color:#fff}.kit-badge.kit-badge--transparent{background-color:transparent;color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}.kit-badge.kit-badge--inactive{background-color:transparent}.kit-badge.kit-badge--inactive.kit-badge--primary{background-color:rgba(var(--kit-color-primary-rgb, 0, 102, 204),.08);color:var(--kit-color-primary, #0066cc)}.kit-badge.kit-badge--inactive.kit-badge--secondary{background-color:rgba(var(--kit-color-secondary-rgb, 108, 117, 125),.08);color:var(--kit-color-secondary, #6c757d)}.kit-badge.kit-badge--inactive.kit-badge--success{background-color:rgba(var(--kit-color-success-rgb, 40, 167, 69),.08);color:var(--kit-color-success, #28a745)}.kit-badge.kit-badge--inactive.kit-badge--info{background-color:rgba(var(--kit-color-info-rgb, 23, 162, 184),.08);color:var(--kit-color-info, #17a2b8)}.kit-badge.kit-badge--inactive.kit-badge--warning{background-color:rgba(var(--kit-color-warning-rgb, 255, 193, 7),.08);color:var(--kit-color-warning, #ffc107)}.kit-badge.kit-badge--inactive.kit-badge--danger{background-color:rgba(var(--kit-color-danger-rgb, 220, 53, 69),.08);color:var(--kit-color-danger, #dc3545)}.kit-badge.kit-badge--inactive.kit-badge--transparent{background-color:rgba(var(--kit-color-transparent-text-rgb, 33, 37, 41),.04);color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}\n"] }]
|
|
5190
|
-
}], propDecorators: { color: [{
|
|
5191
|
-
type: Input
|
|
5192
|
-
}], active: [{
|
|
5193
|
-
type: Input
|
|
5194
|
-
}], fullWidth: [{
|
|
5409
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: KitTabViewComponent, isStandalone: true, selector: "kit-tab-view", inputs: { tabs: "tabs" }, queries: [{ propertyName: "tabContents", predicate: KitTabContentComponent }], viewQueries: [{ propertyName: "tabHeaderElement", first: true, predicate: ["tabHeader"], descendants: true }], ngImport: i0, template: "<div class=\"kit-tab-view-container\">\n\n <div class=\"kit-tab-header\"\n #tabHeader>\n\n @for (tab of (tabs.length > 0 ? tabs : generatedTabs); track tab) {\n <div\n class=\"kit-tab-item\"\n [class.kit-tab-item--active]=\"tab.active\"\n (click)=\"selectTab(tab.index)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab.active\">\n {{ tab.title }}\n </div>\n }\n\n </div>\n\n <div class=\"kit-tab-content\"\n role=\"tabpanel\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [":host{display:block;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.kit-tab-view-container{width:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.kit-tab-header{display:flex;flex-wrap:nowrap;margin-bottom:var(--kit-input-padding, 16px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;box-sizing:border-box;position:relative;scroll-behavior:smooth}.kit-tab-header::-webkit-scrollbar{display:none}.kit-tab-item{padding:12px 16px;cursor:pointer;font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);color:var(--kit-text-color-secondary, #6c757d);background-color:transparent;border:none;border-bottom:2px solid transparent;transition:color .2s ease,background-color .2s ease;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.kit-tab-item:hover{color:var(--kit-color-primary, #0066cc);background-color:#0066cc0d}.kit-tab-item:focus{outline:2px solid var(--kit-color-primary, #0066cc);outline-offset:-2px}.kit-tab-item:after{content:\"\";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background-color:var(--kit-color-primary, #0066cc);transition:width .3s ease,left .3s ease;transform:translate(-50%)}.kit-tab-item--active{color:var(--kit-color-primary, #0066cc);font-weight:var(--kit-font-weight-label, 500);border-bottom-color:transparent}.kit-tab-item--active:after{width:100%}.kit-tab-item--active:hover{background-color:#0066cc1a}.kit-tab-content{flex:1;min-height:0;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}\n"] });
|
|
5410
|
+
}
|
|
5411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTabViewComponent, decorators: [{
|
|
5412
|
+
type: Component,
|
|
5413
|
+
args: [{ selector: 'kit-tab-view', standalone: true, imports: [], template: "<div class=\"kit-tab-view-container\">\n\n <div class=\"kit-tab-header\"\n #tabHeader>\n\n @for (tab of (tabs.length > 0 ? tabs : generatedTabs); track tab) {\n <div\n class=\"kit-tab-item\"\n [class.kit-tab-item--active]=\"tab.active\"\n (click)=\"selectTab(tab.index)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab.active\">\n {{ tab.title }}\n </div>\n }\n\n </div>\n\n <div class=\"kit-tab-content\"\n role=\"tabpanel\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [":host{display:block;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.kit-tab-view-container{width:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.kit-tab-header{display:flex;flex-wrap:nowrap;margin-bottom:var(--kit-input-padding, 16px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;box-sizing:border-box;position:relative;scroll-behavior:smooth}.kit-tab-header::-webkit-scrollbar{display:none}.kit-tab-item{padding:12px 16px;cursor:pointer;font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);color:var(--kit-text-color-secondary, #6c757d);background-color:transparent;border:none;border-bottom:2px solid transparent;transition:color .2s ease,background-color .2s ease;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.kit-tab-item:hover{color:var(--kit-color-primary, #0066cc);background-color:#0066cc0d}.kit-tab-item:focus{outline:2px solid var(--kit-color-primary, #0066cc);outline-offset:-2px}.kit-tab-item:after{content:\"\";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background-color:var(--kit-color-primary, #0066cc);transition:width .3s ease,left .3s ease;transform:translate(-50%)}.kit-tab-item--active{color:var(--kit-color-primary, #0066cc);font-weight:var(--kit-font-weight-label, 500);border-bottom-color:transparent}.kit-tab-item--active:after{width:100%}.kit-tab-item--active:hover{background-color:#0066cc1a}.kit-tab-content{flex:1;min-height:0;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}\n"] }]
|
|
5414
|
+
}], propDecorators: { tabContents: [{
|
|
5415
|
+
type: ContentChildren,
|
|
5416
|
+
args: [KitTabContentComponent]
|
|
5417
|
+
}], tabHeaderElement: [{
|
|
5418
|
+
type: ViewChild,
|
|
5419
|
+
args: ['tabHeader']
|
|
5420
|
+
}], tabs: [{
|
|
5195
5421
|
type: Input
|
|
5196
|
-
}], isFullWidth: [{
|
|
5197
|
-
type: HostBinding,
|
|
5198
|
-
args: ['class.full-width']
|
|
5199
5422
|
}] } });
|
|
5200
5423
|
|
|
5201
|
-
class
|
|
5202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5203
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5424
|
+
class KitNavigationModule {
|
|
5425
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5426
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, imports: [KitRouterOutletComponent,
|
|
5427
|
+
KitTabViewComponent,
|
|
5428
|
+
KitTabContentComponent], exports: [KitRouterOutletComponent,
|
|
5429
|
+
KitTabViewComponent,
|
|
5430
|
+
KitTabContentComponent] });
|
|
5431
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule });
|
|
5207
5432
|
}
|
|
5208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitNavigationModule, decorators: [{
|
|
5209
5434
|
type: NgModule,
|
|
5210
5435
|
args: [{
|
|
5211
|
-
declarations: [],
|
|
5212
5436
|
imports: [
|
|
5213
|
-
|
|
5214
|
-
|
|
5437
|
+
KitRouterOutletComponent,
|
|
5438
|
+
KitTabViewComponent,
|
|
5439
|
+
KitTabContentComponent
|
|
5215
5440
|
],
|
|
5216
5441
|
exports: [
|
|
5217
|
-
|
|
5218
|
-
|
|
5442
|
+
KitRouterOutletComponent,
|
|
5443
|
+
KitTabViewComponent,
|
|
5444
|
+
KitTabContentComponent
|
|
5219
5445
|
]
|
|
5220
5446
|
}]
|
|
5221
5447
|
}] });
|
|
5222
5448
|
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
}
|
|
5258
|
-
}
|
|
5259
|
-
else {
|
|
5260
|
-
// Wrapping control
|
|
5261
|
-
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
5262
|
-
}
|
|
5263
|
-
return baseStyles;
|
|
5264
|
-
}
|
|
5265
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5266
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextBodyComponent, isStandalone: true, selector: "kit-text-body", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<p [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</p>", styles: ["p{font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-info{color:var(--kit-color-info, #17a2b8)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
5267
|
-
}
|
|
5268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextBodyComponent, decorators: [{
|
|
5269
|
-
type: Component,
|
|
5270
|
-
args: [{ selector: 'kit-text-body', standalone: true, imports: [NgClass, NgStyle], template: "<p [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</p>", styles: ["p{font-size:var(--kit-font-size-body, 1rem);font-weight:var(--kit-font-weight-body, 400);line-height:var(--kit-line-height-body, 1.5);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-info{color:var(--kit-color-info, #17a2b8)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
5271
|
-
}], propDecorators: { color: [{
|
|
5272
|
-
type: Input
|
|
5273
|
-
}], align: [{
|
|
5274
|
-
type: Input
|
|
5275
|
-
}], weight: [{
|
|
5276
|
-
type: Input
|
|
5277
|
-
}], decoration: [{
|
|
5278
|
-
type: Input
|
|
5279
|
-
}], margin: [{
|
|
5280
|
-
type: Input
|
|
5281
|
-
}], wrap: [{
|
|
5282
|
-
type: Input
|
|
5283
|
-
}], ellipses: [{
|
|
5284
|
-
type: Input
|
|
5285
|
-
}], lines: [{
|
|
5286
|
-
type: Input
|
|
5287
|
-
}], italic: [{
|
|
5288
|
-
type: Input
|
|
5289
|
-
}] } });
|
|
5290
|
-
|
|
5291
|
-
class KitTextDisplayComponent {
|
|
5292
|
-
color = '';
|
|
5293
|
-
align;
|
|
5294
|
-
weight;
|
|
5295
|
-
decoration;
|
|
5296
|
-
margin;
|
|
5297
|
-
wrap = true;
|
|
5298
|
-
ellipses = false;
|
|
5299
|
-
lines = 0;
|
|
5300
|
-
italic = false;
|
|
5301
|
-
get colorClass() {
|
|
5302
|
-
return this.color ? `kit-text-${this.color}` : '';
|
|
5449
|
+
/**
|
|
5450
|
+
* A card component that displays content in an elevated, contained surface.
|
|
5451
|
+
* Cards can be clickable and support different elevation levels.
|
|
5452
|
+
*/
|
|
5453
|
+
class KitCardComponent {
|
|
5454
|
+
/**
|
|
5455
|
+
* The elevation level of the card (affects shadow depth)
|
|
5456
|
+
*/
|
|
5457
|
+
elevation = 'low';
|
|
5458
|
+
/**
|
|
5459
|
+
* Whether the card is clickable
|
|
5460
|
+
*/
|
|
5461
|
+
clickable = false;
|
|
5462
|
+
/**
|
|
5463
|
+
* Whether the card is disabled (only applies to clickable cards)
|
|
5464
|
+
*/
|
|
5465
|
+
disabled = false;
|
|
5466
|
+
/**
|
|
5467
|
+
* Whether the card should take up the full width of its container
|
|
5468
|
+
*/
|
|
5469
|
+
fullWidth = false;
|
|
5470
|
+
/**
|
|
5471
|
+
* Whether the card should take up the full height of its container
|
|
5472
|
+
*/
|
|
5473
|
+
fullHeight = false;
|
|
5474
|
+
/**
|
|
5475
|
+
* Emitted when the card is clicked (only for clickable cards)
|
|
5476
|
+
*/
|
|
5477
|
+
clicked = new EventEmitter();
|
|
5478
|
+
/**
|
|
5479
|
+
* Apply the clickable class to the host element when clickable is true
|
|
5480
|
+
*/
|
|
5481
|
+
get isClickable() {
|
|
5482
|
+
return this.clickable && !this.disabled;
|
|
5303
5483
|
}
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
'text-decoration': this.decoration,
|
|
5310
|
-
'font-style': this.italic ? 'italic' : 'normal'
|
|
5311
|
-
};
|
|
5312
|
-
if (this.ellipses) {
|
|
5313
|
-
if (this.wrap && this.lines > 0) {
|
|
5314
|
-
// Multi-line ellipsis
|
|
5315
|
-
baseStyles['display'] = '-webkit-box';
|
|
5316
|
-
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
5317
|
-
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
5318
|
-
baseStyles['overflow'] = 'hidden';
|
|
5319
|
-
}
|
|
5320
|
-
else {
|
|
5321
|
-
// Single-line ellipsis
|
|
5322
|
-
baseStyles['white-space'] = 'nowrap';
|
|
5323
|
-
baseStyles['overflow'] = 'hidden';
|
|
5324
|
-
baseStyles['text-overflow'] = 'ellipsis';
|
|
5325
|
-
}
|
|
5326
|
-
}
|
|
5327
|
-
else {
|
|
5328
|
-
// Wrapping control
|
|
5329
|
-
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
5330
|
-
}
|
|
5331
|
-
return baseStyles;
|
|
5484
|
+
/**
|
|
5485
|
+
* Apply the full-width class to the host element when fullWidth is true
|
|
5486
|
+
*/
|
|
5487
|
+
get isFullWidth() {
|
|
5488
|
+
return this.fullWidth;
|
|
5332
5489
|
}
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
args: [{ selector: 'kit-text-display', standalone: true, imports: [NgClass, NgStyle], template: "<h3 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h3>", styles: ["h3{font-size:var(--kit-font-size-display, 3rem);font-weight:var(--kit-font-weight-display, bold);line-height:var(--kit-line-height-display, 1.3);margin-bottom:.5rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
5339
|
-
}], propDecorators: { color: [{
|
|
5340
|
-
type: Input
|
|
5341
|
-
}], align: [{
|
|
5342
|
-
type: Input
|
|
5343
|
-
}], weight: [{
|
|
5344
|
-
type: Input
|
|
5345
|
-
}], decoration: [{
|
|
5346
|
-
type: Input
|
|
5347
|
-
}], margin: [{
|
|
5348
|
-
type: Input
|
|
5349
|
-
}], wrap: [{
|
|
5350
|
-
type: Input
|
|
5351
|
-
}], ellipses: [{
|
|
5352
|
-
type: Input
|
|
5353
|
-
}], lines: [{
|
|
5354
|
-
type: Input
|
|
5355
|
-
}], italic: [{
|
|
5356
|
-
type: Input
|
|
5357
|
-
}] } });
|
|
5358
|
-
|
|
5359
|
-
class KitTextHeadingComponent {
|
|
5360
|
-
color = '';
|
|
5361
|
-
align;
|
|
5362
|
-
weight;
|
|
5363
|
-
decoration;
|
|
5364
|
-
margin;
|
|
5365
|
-
wrap = true;
|
|
5366
|
-
ellipses = false;
|
|
5367
|
-
lines = 0;
|
|
5368
|
-
italic = false;
|
|
5369
|
-
get colorClass() {
|
|
5370
|
-
return this.color ? `kit-text-${this.color}` : '';
|
|
5490
|
+
/**
|
|
5491
|
+
* Apply the full-height class to the host element when fullHeight is true
|
|
5492
|
+
*/
|
|
5493
|
+
get isFullHeight() {
|
|
5494
|
+
return this.fullHeight;
|
|
5371
5495
|
}
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
if (this.
|
|
5381
|
-
|
|
5382
|
-
// Multi-line ellipsis
|
|
5383
|
-
baseStyles['display'] = '-webkit-box';
|
|
5384
|
-
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
5385
|
-
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
5386
|
-
baseStyles['overflow'] = 'hidden';
|
|
5387
|
-
}
|
|
5388
|
-
else {
|
|
5389
|
-
// Single-line ellipsis
|
|
5390
|
-
baseStyles['white-space'] = 'nowrap';
|
|
5391
|
-
baseStyles['overflow'] = 'hidden';
|
|
5392
|
-
baseStyles['text-overflow'] = 'ellipsis';
|
|
5393
|
-
}
|
|
5496
|
+
/**
|
|
5497
|
+
* Classes to apply to the card element
|
|
5498
|
+
*/
|
|
5499
|
+
get cardClasses() {
|
|
5500
|
+
const classes = ['kit-card'];
|
|
5501
|
+
// Add elevation class
|
|
5502
|
+
classes.push(`kit-card--${this.elevation}`);
|
|
5503
|
+
// Add clickable class if needed
|
|
5504
|
+
if (this.clickable) {
|
|
5505
|
+
classes.push('kit-card--clickable');
|
|
5394
5506
|
}
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5507
|
+
// Add disabled class if needed
|
|
5508
|
+
if (this.disabled && this.clickable) {
|
|
5509
|
+
classes.push('kit-card--disabled');
|
|
5398
5510
|
}
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitTextHeadingComponent, isStandalone: true, selector: "kit-text-heading", inputs: { color: "color", align: "align", weight: "weight", decoration: "decoration", margin: "margin", wrap: "wrap", ellipses: "ellipses", lines: "lines", italic: "italic" }, ngImport: i0, template: "<h1 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h1>", styles: ["h1{font-size:var(--kit-font-size-heading, 2rem);font-weight:var(--kit-font-weight-heading, 700);line-height:var(--kit-line-height-heading, 1.2);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
5403
|
-
}
|
|
5404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextHeadingComponent, decorators: [{
|
|
5405
|
-
type: Component,
|
|
5406
|
-
args: [{ selector: 'kit-text-heading', standalone: true, imports: [NgClass, NgStyle], template: "<h1 [ngClass]=\"colorClass\" [ngStyle]=\"textStyles\">\n <ng-content></ng-content>\n</h1>", styles: ["h1{font-size:var(--kit-font-size-heading, 2rem);font-weight:var(--kit-font-weight-heading, 700);line-height:var(--kit-line-height-heading, 1.2);margin-bottom:1rem;color:var(--kit-text-color-primary, #212529)}.kit-text-primary{color:var(--kit-color-primary, #0066cc)}.kit-text-secondary{color:var(--kit-color-secondary, #6c757d)}.kit-text-success{color:var(--kit-color-success, #28a745)}.kit-text-warning{color:var(--kit-color-warning, #ffc107)}.kit-text-danger{color:var(--kit-color-danger, #dc3545)}.kit-text-muted{color:var(--kit-text-color-muted, #adb5bd)}\n"] }]
|
|
5407
|
-
}], propDecorators: { color: [{
|
|
5408
|
-
type: Input
|
|
5409
|
-
}], align: [{
|
|
5410
|
-
type: Input
|
|
5411
|
-
}], weight: [{
|
|
5412
|
-
type: Input
|
|
5413
|
-
}], decoration: [{
|
|
5414
|
-
type: Input
|
|
5415
|
-
}], margin: [{
|
|
5416
|
-
type: Input
|
|
5417
|
-
}], wrap: [{
|
|
5418
|
-
type: Input
|
|
5419
|
-
}], ellipses: [{
|
|
5420
|
-
type: Input
|
|
5421
|
-
}], lines: [{
|
|
5422
|
-
type: Input
|
|
5423
|
-
}], italic: [{
|
|
5424
|
-
type: Input
|
|
5425
|
-
}] } });
|
|
5426
|
-
|
|
5427
|
-
class KitTextLinkComponent {
|
|
5428
|
-
color = '';
|
|
5429
|
-
href = '#';
|
|
5430
|
-
target = '_self';
|
|
5431
|
-
align;
|
|
5432
|
-
weight;
|
|
5433
|
-
decoration;
|
|
5434
|
-
margin;
|
|
5435
|
-
wrap = true;
|
|
5436
|
-
ellipses = false;
|
|
5437
|
-
lines = 0;
|
|
5438
|
-
italic = false;
|
|
5439
|
-
get colorClass() {
|
|
5440
|
-
return this.color ? `kit-text-${this.color}` : '';
|
|
5441
|
-
}
|
|
5442
|
-
get textStyles() {
|
|
5443
|
-
const baseStyles = {
|
|
5444
|
-
'margin': this.margin,
|
|
5445
|
-
'text-align': this.align,
|
|
5446
|
-
'font-weight': this.weight,
|
|
5447
|
-
'text-decoration': this.decoration,
|
|
5448
|
-
'font-style': this.italic ? 'italic' : 'normal'
|
|
5449
|
-
};
|
|
5450
|
-
if (this.ellipses) {
|
|
5451
|
-
if (this.wrap && this.lines > 0) {
|
|
5452
|
-
// Multi-line ellipsis
|
|
5453
|
-
baseStyles['display'] = '-webkit-box';
|
|
5454
|
-
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
5455
|
-
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
5456
|
-
baseStyles['overflow'] = 'hidden';
|
|
5457
|
-
}
|
|
5458
|
-
else {
|
|
5459
|
-
// Single-line ellipsis
|
|
5460
|
-
baseStyles['white-space'] = 'nowrap';
|
|
5461
|
-
baseStyles['overflow'] = 'hidden';
|
|
5462
|
-
baseStyles['text-overflow'] = 'ellipsis';
|
|
5463
|
-
}
|
|
5511
|
+
// Add full width class if needed
|
|
5512
|
+
if (this.fullWidth) {
|
|
5513
|
+
classes.push('kit-card--full-width');
|
|
5464
5514
|
}
|
|
5465
|
-
|
|
5466
|
-
|
|
5467
|
-
|
|
5515
|
+
return classes;
|
|
5516
|
+
}
|
|
5517
|
+
/**
|
|
5518
|
+
* Handle card click
|
|
5519
|
+
*/
|
|
5520
|
+
handleClick(event) {
|
|
5521
|
+
if (this.clickable && !this.disabled) {
|
|
5522
|
+
this.clicked.emit(event);
|
|
5468
5523
|
}
|
|
5469
|
-
return baseStyles;
|
|
5470
5524
|
}
|
|
5471
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5472
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type:
|
|
5525
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5526
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitCardComponent, isStandalone: true, selector: "kit-card", inputs: { elevation: "elevation", clickable: "clickable", disabled: "disabled", fullWidth: "fullWidth", fullHeight: "fullHeight" }, outputs: { clicked: "clicked" }, host: { properties: { "class.clickable": "this.isClickable", "class.full-width": "this.isFullWidth", "class.full-height": "this.isFullHeight" } }, ngImport: i0, template: "<div [ngClass]=\"cardClasses\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable && !disabled ? '0' : null\"\n [attr.aria-disabled]=\"clickable && disabled ? 'true' : null\"\n (click)=\"handleClick($event)\">\n\n <div class=\"kit-card__content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host{display:inline-block;min-width:0}:host.full-width{display:block;width:100%}:host.full-width .kit-card{width:100%}:host.full-height{display:block;height:100%}:host.full-height .kit-card{height:100%}:host.full-height .kit-card .kit-card__content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}:host.clickable{cursor:pointer}.kit-card{position:relative;display:flex;flex-direction:column;background-color:var(--kit-card-background-color, #ffffff);border-radius:var(--kit-card-border-radius, 16px);transition:box-shadow .2s ease,transform .1s ease;overflow:hidden;box-sizing:border-box;border:var(--kit-card-border-width, 1px) solid var(--kit-card-border-color, transparent)}.kit-card .kit-card__content{display:flex;flex-direction:column;width:100%;min-width:0;padding:var(--kit-card-padding, 16px);box-sizing:border-box}.kit-card.kit-card--none{box-shadow:none}.kit-card.kit-card--low{box-shadow:var(--kit-card-shadow-low, 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24))}.kit-card.kit-card--medium{box-shadow:var(--kit-card-shadow-medium, 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--high{box-shadow:var(--kit-card-shadow-high, 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.kit-card.kit-card--clickable:hover:not(.kit-card--disabled){transform:var(--kit-card-hover-transform, translateY(-2px));box-shadow:var(--kit-card-hover-shadow, 0 4px 8px rgba(0, 0, 0, .16), 0 4px 8px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable:active:not(.kit-card--disabled){transform:var(--kit-card-active-transform, translateY(0));box-shadow:var(--kit-card-active-shadow, 0 2px 4px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24))}.kit-card.kit-card--clickable:focus:not(.kit-card--disabled){outline:none;box-shadow:var(--kit-card-focus-shadow, 0 0 0 3px rgba(var(--kit-color-primary-rgb, 0, 102, 204), .2))}.kit-card.kit-card--disabled{cursor:not-allowed;opacity:var(--kit-card-disabled-opacity, .6);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
5473
5527
|
}
|
|
5474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitCardComponent, decorators: [{
|
|
5475
5529
|
type: Component,
|
|
5476
|
-
args: [{ selector: 'kit-
|
|
5477
|
-
}], propDecorators: {
|
|
5478
|
-
type: Input
|
|
5479
|
-
}], href: [{
|
|
5480
|
-
type: Input
|
|
5481
|
-
}], target: [{
|
|
5482
|
-
type: Input
|
|
5483
|
-
}], align: [{
|
|
5484
|
-
type: Input
|
|
5485
|
-
}], weight: [{
|
|
5486
|
-
type: Input
|
|
5487
|
-
}], decoration: [{
|
|
5488
|
-
type: Input
|
|
5489
|
-
}], margin: [{
|
|
5530
|
+
args: [{ selector: 'kit-card', standalone: true, imports: [NgClass], template: "<div [ngClass]=\"cardClasses\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable && !disabled ? '0' : null\"\n [attr.aria-disabled]=\"clickable && disabled ? 'true' : null\"\n (click)=\"handleClick($event)\">\n\n <div class=\"kit-card__content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host{display:inline-block;min-width:0}:host.full-width{display:block;width:100%}:host.full-width .kit-card{width:100%}:host.full-height{display:block;height:100%}:host.full-height .kit-card{height:100%}:host.full-height .kit-card .kit-card__content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}:host.clickable{cursor:pointer}.kit-card{position:relative;display:flex;flex-direction:column;background-color:var(--kit-card-background-color, #ffffff);border-radius:var(--kit-card-border-radius, 16px);transition:box-shadow .2s ease,transform .1s ease;overflow:hidden;box-sizing:border-box;border:var(--kit-card-border-width, 1px) solid var(--kit-card-border-color, transparent)}.kit-card .kit-card__content{display:flex;flex-direction:column;width:100%;min-width:0;padding:var(--kit-card-padding, 16px);box-sizing:border-box}.kit-card.kit-card--none{box-shadow:none}.kit-card.kit-card--low{box-shadow:var(--kit-card-shadow-low, 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24))}.kit-card.kit-card--medium{box-shadow:var(--kit-card-shadow-medium, 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--high{box-shadow:var(--kit-card-shadow-high, 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.kit-card.kit-card--clickable:hover:not(.kit-card--disabled){transform:var(--kit-card-hover-transform, translateY(-2px));box-shadow:var(--kit-card-hover-shadow, 0 4px 8px rgba(0, 0, 0, .16), 0 4px 8px rgba(0, 0, 0, .23))}.kit-card.kit-card--clickable:active:not(.kit-card--disabled){transform:var(--kit-card-active-transform, translateY(0));box-shadow:var(--kit-card-active-shadow, 0 2px 4px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24))}.kit-card.kit-card--clickable:focus:not(.kit-card--disabled){outline:none;box-shadow:var(--kit-card-focus-shadow, 0 0 0 3px rgba(var(--kit-color-primary-rgb, 0, 102, 204), .2))}.kit-card.kit-card--disabled{cursor:not-allowed;opacity:var(--kit-card-disabled-opacity, .6);pointer-events:none}\n"] }]
|
|
5531
|
+
}], propDecorators: { elevation: [{
|
|
5490
5532
|
type: Input
|
|
5491
|
-
}],
|
|
5533
|
+
}], clickable: [{
|
|
5492
5534
|
type: Input
|
|
5493
|
-
}],
|
|
5535
|
+
}], disabled: [{
|
|
5494
5536
|
type: Input
|
|
5495
|
-
}],
|
|
5537
|
+
}], fullWidth: [{
|
|
5496
5538
|
type: Input
|
|
5497
|
-
}],
|
|
5539
|
+
}], fullHeight: [{
|
|
5498
5540
|
type: Input
|
|
5541
|
+
}], clicked: [{
|
|
5542
|
+
type: Output
|
|
5543
|
+
}], isClickable: [{
|
|
5544
|
+
type: HostBinding,
|
|
5545
|
+
args: ['class.clickable']
|
|
5546
|
+
}], isFullWidth: [{
|
|
5547
|
+
type: HostBinding,
|
|
5548
|
+
args: ['class.full-width']
|
|
5549
|
+
}], isFullHeight: [{
|
|
5550
|
+
type: HostBinding,
|
|
5551
|
+
args: ['class.full-height']
|
|
5499
5552
|
}] } });
|
|
5500
5553
|
|
|
5501
|
-
class
|
|
5502
|
-
color = '';
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
wrap = true;
|
|
5508
|
-
ellipses = false;
|
|
5509
|
-
lines = 0;
|
|
5510
|
-
italic = false;
|
|
5511
|
-
get colorClass() {
|
|
5512
|
-
return this.color ? `kit-text-${this.color}` : '';
|
|
5554
|
+
class KitBadgeComponent {
|
|
5555
|
+
color = 'primary';
|
|
5556
|
+
active = true;
|
|
5557
|
+
fullWidth = false;
|
|
5558
|
+
get isFullWidth() {
|
|
5559
|
+
return this.fullWidth;
|
|
5513
5560
|
}
|
|
5514
|
-
get
|
|
5515
|
-
const
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
'
|
|
5519
|
-
'text-decoration': this.decoration,
|
|
5520
|
-
'font-style': this.italic ? 'italic' : 'normal'
|
|
5521
|
-
};
|
|
5522
|
-
if (this.ellipses) {
|
|
5523
|
-
if (this.wrap && this.lines > 0) {
|
|
5524
|
-
// Multi-line ellipsis
|
|
5525
|
-
baseStyles['display'] = '-webkit-box';
|
|
5526
|
-
baseStyles['-webkit-line-clamp'] = this.lines;
|
|
5527
|
-
baseStyles['-webkit-box-orient'] = 'vertical';
|
|
5528
|
-
baseStyles['overflow'] = 'hidden';
|
|
5529
|
-
}
|
|
5530
|
-
else {
|
|
5531
|
-
// Single-line ellipsis
|
|
5532
|
-
baseStyles['white-space'] = 'nowrap';
|
|
5533
|
-
baseStyles['overflow'] = 'hidden';
|
|
5534
|
-
baseStyles['text-overflow'] = 'ellipsis';
|
|
5535
|
-
}
|
|
5561
|
+
get badgeClasses() {
|
|
5562
|
+
const classes = ['kit-badge'];
|
|
5563
|
+
classes.push(`kit-badge--${this.color}`);
|
|
5564
|
+
if (!this.active) {
|
|
5565
|
+
classes.push('kit-badge--inactive');
|
|
5536
5566
|
}
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
baseStyles['white-space'] = this.wrap ? 'normal' : 'nowrap';
|
|
5567
|
+
if (this.fullWidth) {
|
|
5568
|
+
classes.push('kit-badge--full-width');
|
|
5540
5569
|
}
|
|
5541
|
-
return
|
|
5570
|
+
return classes;
|
|
5542
5571
|
}
|
|
5543
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5544
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type:
|
|
5572
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5573
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: KitBadgeComponent, isStandalone: true, selector: "kit-badge", inputs: { color: "color", active: "active", fullWidth: "fullWidth" }, host: { properties: { "class.full-width": "this.isFullWidth" } }, ngImport: i0, template: "\n<div [ngClass]=\"badgeClasses\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}:host.full-width{width:100%}.kit-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--kit-badge-border-radius, 12px);font-weight:var(--kit-badge-font-weight, 700);padding:var(--kit-badge-padding, 6px 12px);font-size:var(--kit-badge-font-size, 12px);line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}.kit-badge.kit-badge--full-width{width:100%}.kit-badge.kit-badge--primary{background-color:var(--kit-color-primary, #0066cc);color:#fff}.kit-badge.kit-badge--secondary{background-color:var(--kit-color-secondary, #6c757d);color:#fff}.kit-badge.kit-badge--success{background-color:var(--kit-color-success, #28a745);color:#fff}.kit-badge.kit-badge--info{background-color:var(--kit-color-info, #17a2b8);color:#fff}.kit-badge.kit-badge--warning{background-color:var(--kit-color-warning, #ffc107);color:#000}.kit-badge.kit-badge--danger{background-color:var(--kit-color-danger, #dc3545);color:#fff}.kit-badge.kit-badge--transparent{background-color:transparent;color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}.kit-badge.kit-badge--inactive{background-color:transparent}.kit-badge.kit-badge--inactive.kit-badge--primary{background-color:rgba(var(--kit-color-primary-rgb, 0, 102, 204),.08);color:var(--kit-color-primary, #0066cc)}.kit-badge.kit-badge--inactive.kit-badge--secondary{background-color:rgba(var(--kit-color-secondary-rgb, 108, 117, 125),.08);color:var(--kit-color-secondary, #6c757d)}.kit-badge.kit-badge--inactive.kit-badge--success{background-color:rgba(var(--kit-color-success-rgb, 40, 167, 69),.08);color:var(--kit-color-success, #28a745)}.kit-badge.kit-badge--inactive.kit-badge--info{background-color:rgba(var(--kit-color-info-rgb, 23, 162, 184),.08);color:var(--kit-color-info, #17a2b8)}.kit-badge.kit-badge--inactive.kit-badge--warning{background-color:rgba(var(--kit-color-warning-rgb, 255, 193, 7),.08);color:var(--kit-color-warning, #ffc107)}.kit-badge.kit-badge--inactive.kit-badge--danger{background-color:rgba(var(--kit-color-danger-rgb, 220, 53, 69),.08);color:var(--kit-color-danger, #dc3545)}.kit-badge.kit-badge--inactive.kit-badge--transparent{background-color:rgba(var(--kit-color-transparent-text-rgb, 33, 37, 41),.04);color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
5545
5574
|
}
|
|
5546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5575
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitBadgeComponent, decorators: [{
|
|
5547
5576
|
type: Component,
|
|
5548
|
-
args: [{ selector: 'kit-
|
|
5577
|
+
args: [{ selector: 'kit-badge', standalone: true, imports: [NgClass], template: "\n<div [ngClass]=\"badgeClasses\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}:host.full-width{width:100%}.kit-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--kit-badge-border-radius, 12px);font-weight:var(--kit-badge-font-weight, 700);padding:var(--kit-badge-padding, 6px 12px);font-size:var(--kit-badge-font-size, 12px);line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}.kit-badge.kit-badge--full-width{width:100%}.kit-badge.kit-badge--primary{background-color:var(--kit-color-primary, #0066cc);color:#fff}.kit-badge.kit-badge--secondary{background-color:var(--kit-color-secondary, #6c757d);color:#fff}.kit-badge.kit-badge--success{background-color:var(--kit-color-success, #28a745);color:#fff}.kit-badge.kit-badge--info{background-color:var(--kit-color-info, #17a2b8);color:#fff}.kit-badge.kit-badge--warning{background-color:var(--kit-color-warning, #ffc107);color:#000}.kit-badge.kit-badge--danger{background-color:var(--kit-color-danger, #dc3545);color:#fff}.kit-badge.kit-badge--transparent{background-color:transparent;color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}.kit-badge.kit-badge--inactive{background-color:transparent}.kit-badge.kit-badge--inactive.kit-badge--primary{background-color:rgba(var(--kit-color-primary-rgb, 0, 102, 204),.08);color:var(--kit-color-primary, #0066cc)}.kit-badge.kit-badge--inactive.kit-badge--secondary{background-color:rgba(var(--kit-color-secondary-rgb, 108, 117, 125),.08);color:var(--kit-color-secondary, #6c757d)}.kit-badge.kit-badge--inactive.kit-badge--success{background-color:rgba(var(--kit-color-success-rgb, 40, 167, 69),.08);color:var(--kit-color-success, #28a745)}.kit-badge.kit-badge--inactive.kit-badge--info{background-color:rgba(var(--kit-color-info-rgb, 23, 162, 184),.08);color:var(--kit-color-info, #17a2b8)}.kit-badge.kit-badge--inactive.kit-badge--warning{background-color:rgba(var(--kit-color-warning-rgb, 255, 193, 7),.08);color:var(--kit-color-warning, #ffc107)}.kit-badge.kit-badge--inactive.kit-badge--danger{background-color:rgba(var(--kit-color-danger-rgb, 220, 53, 69),.08);color:var(--kit-color-danger, #dc3545)}.kit-badge.kit-badge--inactive.kit-badge--transparent{background-color:rgba(var(--kit-color-transparent-text-rgb, 33, 37, 41),.04);color:var(--kit-color-transparent-text, var(--kit-text-color-primary, #212529))}\n"] }]
|
|
5549
5578
|
}], propDecorators: { color: [{
|
|
5550
5579
|
type: Input
|
|
5551
|
-
}],
|
|
5552
|
-
type: Input
|
|
5553
|
-
}], weight: [{
|
|
5554
|
-
type: Input
|
|
5555
|
-
}], decoration: [{
|
|
5556
|
-
type: Input
|
|
5557
|
-
}], margin: [{
|
|
5558
|
-
type: Input
|
|
5559
|
-
}], wrap: [{
|
|
5560
|
-
type: Input
|
|
5561
|
-
}], ellipses: [{
|
|
5562
|
-
type: Input
|
|
5563
|
-
}], lines: [{
|
|
5580
|
+
}], active: [{
|
|
5564
5581
|
type: Input
|
|
5565
|
-
}],
|
|
5582
|
+
}], fullWidth: [{
|
|
5566
5583
|
type: Input
|
|
5584
|
+
}], isFullWidth: [{
|
|
5585
|
+
type: HostBinding,
|
|
5586
|
+
args: ['class.full-width']
|
|
5567
5587
|
}] } });
|
|
5568
5588
|
|
|
5569
|
-
class
|
|
5570
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5571
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
KitTextBodyComponent,
|
|
5576
|
-
KitTextCaptionComponent,
|
|
5577
|
-
KitTextLinkComponent], exports: [KitTextHeadingComponent,
|
|
5578
|
-
KitTextSubheadingComponent,
|
|
5579
|
-
KitTextDisplayComponent,
|
|
5580
|
-
KitTextLabelComponent,
|
|
5581
|
-
KitTextBodyComponent,
|
|
5582
|
-
KitTextCaptionComponent,
|
|
5583
|
-
KitTextLinkComponent] });
|
|
5584
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitTextModule });
|
|
5589
|
+
class KitPanelModule {
|
|
5590
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5591
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: KitPanelModule, imports: [KitCardComponent,
|
|
5592
|
+
KitBadgeComponent], exports: [KitBadgeComponent,
|
|
5593
|
+
KitCardComponent] });
|
|
5594
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitPanelModule });
|
|
5585
5595
|
}
|
|
5586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type:
|
|
5596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: KitPanelModule, decorators: [{
|
|
5587
5597
|
type: NgModule,
|
|
5588
5598
|
args: [{
|
|
5589
5599
|
declarations: [],
|
|
5590
5600
|
imports: [
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
KitTextDisplayComponent,
|
|
5594
|
-
KitTextLabelComponent,
|
|
5595
|
-
KitTextBodyComponent,
|
|
5596
|
-
KitTextCaptionComponent,
|
|
5597
|
-
KitTextLinkComponent,
|
|
5601
|
+
KitCardComponent,
|
|
5602
|
+
KitBadgeComponent
|
|
5598
5603
|
],
|
|
5599
5604
|
exports: [
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
KitTextDisplayComponent,
|
|
5603
|
-
KitTextLabelComponent,
|
|
5604
|
-
KitTextBodyComponent,
|
|
5605
|
-
KitTextCaptionComponent,
|
|
5606
|
-
KitTextLinkComponent,
|
|
5605
|
+
KitBadgeComponent,
|
|
5606
|
+
KitCardComponent
|
|
5607
5607
|
]
|
|
5608
5608
|
}]
|
|
5609
5609
|
}] });
|