uisuite 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/button/button.component.mjs +2 -2
- package/esm2022/lib/text/text.component.mjs +76 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/uisuite.mjs +75 -2
- package/fesm2022/uisuite.mjs.map +1 -1
- package/lib/button/button.component.d.ts +1 -1
- package/lib/text/text.component.d.ts +52 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/README.md
CHANGED
|
@@ -85,7 +85,7 @@ Versatile button component with multiple variants and sizes.
|
|
|
85
85
|
|
|
86
86
|
## 📖 Documentation
|
|
87
87
|
|
|
88
|
-
For detailed documentation and examples, visit [https://
|
|
88
|
+
For detailed documentation and examples, visit [https://uisuite.dev](https://uisuite.dev)
|
|
89
89
|
|
|
90
90
|
## 🤝 Contributing
|
|
91
91
|
|
|
@@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
|
-
* Button Component
|
|
5
|
+
* Button Component
|
|
6
6
|
*
|
|
7
7
|
* A versatile button component with multiple variants and sizes.
|
|
8
8
|
*
|
|
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
102
102
|
}], color: [{
|
|
103
103
|
type: Input
|
|
104
104
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Vpc3VpdGUvc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTS9DOzs7Ozs7Ozs7OztHQVdHO0FBaUJILE1BQU0sT0FBTyxlQUFlO0lBQzFCOzs7Ozs7OztPQVFHO0lBQ00sT0FBTyxHQUFrQixTQUFTLENBQUM7SUFFNUM7Ozs7Ozs7O09BUUc7SUFDTSxJQUFJLEdBQWUsU0FBUyxDQUFDO0lBRXRDOztPQUVHO0lBQ00sSUFBSSxHQUFrQyxRQUFRLENBQUM7SUFFeEQ7O09BRUc7SUFDTSxRQUFRLEdBQVksS0FBSyxDQUFDO0lBR25DOztPQUVHO0lBQ00sU0FBUyxDQUFVO0lBRTVCOzs7Ozs7Ozs7T0FTRztJQUNNLEtBQUssR0FBZ0IsU0FBUyxDQUFDO0lBRXhDLElBQUksYUFBYTtRQUNmLE9BQU87WUFDTCxVQUFVO1lBQ1YsYUFBYSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzNCLGFBQWEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QixtQkFBbUIsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt3R0ExRFUsZUFBZTs0RkFBZixlQUFlLDZMQVpoQjs7Ozs7Ozs7O0dBU1Qsa3FSQVZTLFlBQVk7OzRGQWFYLGVBQWU7a0JBaEIzQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7O0dBU1Q7OEJBYVEsT0FBTztzQkFBZixLQUFLO2dCQVdHLElBQUk7c0JBQVosS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQVlHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBCdXR0b25WYXJpYW50ID0gJ2RlZmF1bHQnIHwgJ291dGxpbmUnIHwgJ2dob3N0JyB8ICdkZXN0cnVjdGl2ZScgfCAnc2Vjb25kYXJ5JyB8ICdsaW5rJztcbmV4cG9ydCB0eXBlIEJ1dHRvblNpemUgPSAnZGVmYXVsdCcgfCAnc20nIHwgJ2xnJyB8ICdpY29uJyB8ICdpY29uLXNtJyB8ICdpY29uLWxnJztcbmV4cG9ydCB0eXBlIEJ1dHRvbkNvbG9yID0gJ3ByaW1hcnknIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2RhbmdlcicgfCAnYWNjZW50JyB8ICd3aGl0ZScgfCAnaW5mbyc7XG5cbi8qKlxuICogQnV0dG9uIENvbXBvbmVudFxuICogXG4gKiBBIHZlcnNhdGlsZSBidXR0b24gY29tcG9uZW50IHdpdGggbXVsdGlwbGUgdmFyaWFudHMgYW5kIHNpemVzLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHVCdXR0b24+Q2xpY2sgbWU8L3VCdXR0b24+XG4gKiA8dUJ1dHRvbiB2YXJpYW50PVwib3V0bGluZVwiIHNpemU9XCJzbVwiPlNtYWxsIE91dGxpbmU8L3VCdXR0b24+XG4gKiA8dUJ1dHRvbiB2YXJpYW50PVwiZGVzdHJ1Y3RpdmVcIj5EZWxldGU8L3VCdXR0b24+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndUJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc2VzXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBCdXR0b24gdmFyaWFudFxuICAgKiAtIGRlZmF1bHQ6IFByaW1hcnkgYnV0dG9uIHN0eWxlXG4gICAqIC0gb3V0bGluZTogT3V0bGluZWQgYnV0dG9uXG4gICAqIC0gZ2hvc3Q6IE1pbmltYWwgYnV0dG9uIHdpdGggbm8gYm9yZGVyXG4gICAqIC0gZGVzdHJ1Y3RpdmU6IEZvciBkZXN0cnVjdGl2ZSBhY3Rpb25zIChkZWxldGUsIHJlbW92ZSwgZXRjLilcbiAgICogLSBzZWNvbmRhcnk6IFNlY29uZGFyeSBhY3Rpb24gYnV0dG9uXG4gICAqIC0gbGluazogUmVuZGVycyBhcyBhIGxpbmstc3R5bGVkIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogQnV0dG9uIHNpemVcbiAgICogLSBkZWZhdWx0OiBTdGFuZGFyZCBidXR0b24gc2l6ZVxuICAgKiAtIHNtOiBTbWFsbCBidXR0b25cbiAgICogLSBsZzogTGFyZ2UgYnV0dG9uXG4gICAqIC0gaWNvbjogU3F1YXJlIGljb24gYnV0dG9uIChkZWZhdWx0IHNpemUpXG4gICAqIC0gaWNvbi1zbTogU21hbGwgc3F1YXJlIGljb24gYnV0dG9uXG4gICAqIC0gaWNvbi1sZzogTGFyZ2Ugc3F1YXJlIGljb24gYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBCdXR0b25TaXplID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBIVE1MIGJ1dHRvbiB0eXBlXG4gICAqL1xuICBASW5wdXQoKSB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JyA9ICdidXR0b24nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGlzYWJsZWRcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cblxuICAvKipcbiAgICogQVJJQSBsYWJlbCBmb3IgYWNjZXNzaWJpbGl0eVxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gY29sb3JcbiAgICogLSBwcmltYXJ5OiBQcmltYXJ5IGJyYW5kIGNvbG9yIChkZWZhdWx0KVxuICAgKiAtIHN1Y2Nlc3M6IEdyZWVuIGNvbG9yIGZvciBzdWNjZXNzIGFjdGlvbnNcbiAgICogLSB3YXJuaW5nOiBZZWxsb3cvYW1iZXIgY29sb3IgZm9yIHdhcm5pbmdzXG4gICAqIC0gZGFuZ2VyOiBSZWQgY29sb3IgZm9yIGRhbmdlcm91cyBhY3Rpb25zXG4gICAqIC0gYWNjZW50OiBBY2NlbnQgY29sb3IgZm9yIGhpZ2hsaWdodHNcbiAgICogLSB3aGl0ZTogV2hpdGUgY29sb3IgZm9yIGRhcmsgYmFja2dyb3VuZHNcbiAgICogLSBpbmZvOiBCbHVlIGNvbG9yIGZvciBpbmZvcm1hdGlvbmFsIGFjdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBCdXR0b25Db2xvciA9ICdwcmltYXJ5JztcblxuICBnZXQgYnV0dG9uQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAndS1idXR0b24nLFxuICAgICAgYHUtYnV0dG9uLS0ke3RoaXMudmFyaWFudH1gLFxuICAgICAgYHUtYnV0dG9uLS0ke3RoaXMuc2l6ZX1gLFxuICAgICAgYHUtYnV0dG9uLS1jb2xvci0ke3RoaXMuY29sb3J9YFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Text/Typography Component
|
|
7
|
+
*
|
|
8
|
+
* A flexible typography component for consistent text rendering.
|
|
9
|
+
* Uses token-based styles for maintainability and theming.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```html
|
|
13
|
+
* <uText variant="heading">Page Heading</uText>
|
|
14
|
+
* <uText variant="body" tag="p">This is a paragraph.</uText>
|
|
15
|
+
* <uText variant="caption" color="text-secondary">Helper text</uText>
|
|
16
|
+
* <uText variant="title" align="center" truncate>Long Title</uText>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class TextComponent {
|
|
20
|
+
/**
|
|
21
|
+
* Typography variant
|
|
22
|
+
* Controls font-size, weight, and line-height via tokens
|
|
23
|
+
*/
|
|
24
|
+
variant = 'body';
|
|
25
|
+
/**
|
|
26
|
+
* HTML tag to render
|
|
27
|
+
* Allows semantic control independent of visual style
|
|
28
|
+
*/
|
|
29
|
+
tag = 'span';
|
|
30
|
+
/**
|
|
31
|
+
* Text color (token-based)
|
|
32
|
+
* Uses design system color tokens
|
|
33
|
+
*/
|
|
34
|
+
color;
|
|
35
|
+
/**
|
|
36
|
+
* Text alignment
|
|
37
|
+
*/
|
|
38
|
+
align;
|
|
39
|
+
/**
|
|
40
|
+
* Enable text truncation with ellipsis
|
|
41
|
+
*/
|
|
42
|
+
truncate = false;
|
|
43
|
+
/**
|
|
44
|
+
* Optional width constraint
|
|
45
|
+
* Useful when truncating text
|
|
46
|
+
*/
|
|
47
|
+
width;
|
|
48
|
+
get textClasses() {
|
|
49
|
+
return [
|
|
50
|
+
'u-text',
|
|
51
|
+
`u-text--${this.variant}`,
|
|
52
|
+
this.color ? `u-text--color-${this.color}` : null,
|
|
53
|
+
this.align ? `u-text--align-${this.align}` : null,
|
|
54
|
+
this.truncate ? 'u-text--truncate' : null
|
|
55
|
+
].filter(Boolean).join(' ');
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextComponent, isStandalone: true, selector: "uText", inputs: { variant: "variant", tag: "tag", color: "color", align: "align", truncate: "truncate", width: "width" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"tag\">\n <h1 *ngSwitchCase=\"'h1'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h1>\n <h2 *ngSwitchCase=\"'h2'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h2>\n <h3 *ngSwitchCase=\"'h3'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h3>\n <h4 *ngSwitchCase=\"'h4'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h4>\n <h5 *ngSwitchCase=\"'h5'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h5>\n <h6 *ngSwitchCase=\"'h6'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h6>\n <p *ngSwitchCase=\"'p'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></p>\n <label *ngSwitchCase=\"'label'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></label>\n <strong *ngSwitchCase=\"'strong'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></strong>\n <em *ngSwitchCase=\"'em'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></em>\n <div *ngSwitchCase=\"'div'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></div>\n <span *ngSwitchDefault [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></span>\n</ng-container>", styles: [".u-text{margin:0;padding:0;color:var(--uicolor-text-primary)}.u-text--display{font-size:var(--uitype-display-size);font-weight:var(--uitype-display-weight);line-height:var(--uitype-display-line-height);letter-spacing:var(--uitype-display-letter-spacing)}.u-text--title{font-size:var(--uitype-title-size);font-weight:var(--uitype-title-weight);line-height:var(--uitype-title-line-height);letter-spacing:var(--uitype-title-letter-spacing)}.u-text--heading{font-size:var(--uitype-heading-size);font-weight:var(--uitype-heading-weight);line-height:var(--uitype-heading-line-height);letter-spacing:var(--uitype-heading-letter-spacing)}.u-text--subheading{font-size:var(--uitype-subheading-size);font-weight:var(--uitype-subheading-weight);line-height:var(--uitype-subheading-line-height);letter-spacing:var(--uitype-subheading-letter-spacing)}.u-text--body-lg{font-size:var(--uitype-body-lg-size);font-weight:var(--uitype-body-lg-weight);line-height:var(--uitype-body-lg-line-height);letter-spacing:var(--uitype-body-lg-letter-spacing)}.u-text--body{font-size:var(--uitype-body-size);font-weight:var(--uitype-body-weight);line-height:var(--uitype-body-line-height);letter-spacing:var(--uitype-body-letter-spacing)}.u-text--body-sm{font-size:var(--uitype-body-sm-size);font-weight:var(--uitype-body-sm-weight);line-height:var(--uitype-body-sm-line-height);letter-spacing:var(--uitype-body-sm-letter-spacing)}.u-text--label{font-size:var(--uitype-label-size);font-weight:var(--uitype-label-weight);line-height:var(--uitype-label-line-height);letter-spacing:var(--uitype-label-letter-spacing)}.u-text--helper{font-size:var(--uitype-helper-size);font-weight:var(--uitype-helper-weight);line-height:var(--uitype-helper-line-height);letter-spacing:var(--uitype-helper-letter-spacing)}.u-text--caption{font-size:var(--uitype-caption-size);font-weight:var(--uitype-caption-weight);line-height:var(--uitype-caption-line-height);letter-spacing:var(--uitype-caption-letter-spacing)}.u-text--overline{font-size:var(--uitype-overline-size);font-weight:var(--uitype-overline-weight);line-height:var(--uitype-overline-line-height);letter-spacing:var(--uitype-overline-letter-spacing);text-transform:uppercase}.u-text--color-primary{color:var(--uicolor-primary)}.u-text--color-success{color:var(--uicolor-success)}.u-text--color-warning{color:var(--uicolor-warning)}.u-text--color-danger{color:var(--uicolor-danger)}.u-text--color-accent{color:var(--uicolor-accent)}.u-text--color-slate{color:var(--uicolor-slate)}.u-text--color-text-primary{color:var(--uicolor-text-primary)}.u-text--color-text-secondary{color:var(--uicolor-text-secondary)}.u-text--color-text-tertiary{color:var(--uicolor-text-tertiary)}.u-text--color-text-inverse{color:var(--uicolor-text-inverse)}.u-text--align-left{text-align:left}.u-text--align-center{text-align:center}.u-text--align-right{text-align:right}.u-text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'uText', standalone: true, imports: [CommonModule], template: "<ng-container [ngSwitch]=\"tag\">\n <h1 *ngSwitchCase=\"'h1'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h1>\n <h2 *ngSwitchCase=\"'h2'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h2>\n <h3 *ngSwitchCase=\"'h3'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h3>\n <h4 *ngSwitchCase=\"'h4'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h4>\n <h5 *ngSwitchCase=\"'h5'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h5>\n <h6 *ngSwitchCase=\"'h6'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h6>\n <p *ngSwitchCase=\"'p'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></p>\n <label *ngSwitchCase=\"'label'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></label>\n <strong *ngSwitchCase=\"'strong'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></strong>\n <em *ngSwitchCase=\"'em'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></em>\n <div *ngSwitchCase=\"'div'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></div>\n <span *ngSwitchDefault [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></span>\n</ng-container>", styles: [".u-text{margin:0;padding:0;color:var(--uicolor-text-primary)}.u-text--display{font-size:var(--uitype-display-size);font-weight:var(--uitype-display-weight);line-height:var(--uitype-display-line-height);letter-spacing:var(--uitype-display-letter-spacing)}.u-text--title{font-size:var(--uitype-title-size);font-weight:var(--uitype-title-weight);line-height:var(--uitype-title-line-height);letter-spacing:var(--uitype-title-letter-spacing)}.u-text--heading{font-size:var(--uitype-heading-size);font-weight:var(--uitype-heading-weight);line-height:var(--uitype-heading-line-height);letter-spacing:var(--uitype-heading-letter-spacing)}.u-text--subheading{font-size:var(--uitype-subheading-size);font-weight:var(--uitype-subheading-weight);line-height:var(--uitype-subheading-line-height);letter-spacing:var(--uitype-subheading-letter-spacing)}.u-text--body-lg{font-size:var(--uitype-body-lg-size);font-weight:var(--uitype-body-lg-weight);line-height:var(--uitype-body-lg-line-height);letter-spacing:var(--uitype-body-lg-letter-spacing)}.u-text--body{font-size:var(--uitype-body-size);font-weight:var(--uitype-body-weight);line-height:var(--uitype-body-line-height);letter-spacing:var(--uitype-body-letter-spacing)}.u-text--body-sm{font-size:var(--uitype-body-sm-size);font-weight:var(--uitype-body-sm-weight);line-height:var(--uitype-body-sm-line-height);letter-spacing:var(--uitype-body-sm-letter-spacing)}.u-text--label{font-size:var(--uitype-label-size);font-weight:var(--uitype-label-weight);line-height:var(--uitype-label-line-height);letter-spacing:var(--uitype-label-letter-spacing)}.u-text--helper{font-size:var(--uitype-helper-size);font-weight:var(--uitype-helper-weight);line-height:var(--uitype-helper-line-height);letter-spacing:var(--uitype-helper-letter-spacing)}.u-text--caption{font-size:var(--uitype-caption-size);font-weight:var(--uitype-caption-weight);line-height:var(--uitype-caption-line-height);letter-spacing:var(--uitype-caption-letter-spacing)}.u-text--overline{font-size:var(--uitype-overline-size);font-weight:var(--uitype-overline-weight);line-height:var(--uitype-overline-line-height);letter-spacing:var(--uitype-overline-letter-spacing);text-transform:uppercase}.u-text--color-primary{color:var(--uicolor-primary)}.u-text--color-success{color:var(--uicolor-success)}.u-text--color-warning{color:var(--uicolor-warning)}.u-text--color-danger{color:var(--uicolor-danger)}.u-text--color-accent{color:var(--uicolor-accent)}.u-text--color-slate{color:var(--uicolor-slate)}.u-text--color-text-primary{color:var(--uicolor-text-primary)}.u-text--color-text-secondary{color:var(--uicolor-text-secondary)}.u-text--color-text-tertiary{color:var(--uicolor-text-tertiary)}.u-text--color-text-inverse{color:var(--uicolor-text-inverse)}.u-text--align-left{text-align:left}.u-text--align-center{text-align:center}.u-text--align-right{text-align:right}.u-text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}\n"] }]
|
|
63
|
+
}], propDecorators: { variant: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], tag: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], color: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], align: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], truncate: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], width: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aXN1aXRlL3NyYy9saWIvdGV4dC90ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Vpc3VpdGUvc3JjL2xpYi90ZXh0L3RleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUEyQy9DOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFRSCxNQUFNLE9BQU8sYUFBYTtJQUN0Qjs7O09BR0c7SUFDTSxPQUFPLEdBQWdCLE1BQU0sQ0FBQztJQUV2Qzs7O09BR0c7SUFDTSxHQUFHLEdBQVksTUFBTSxDQUFDO0lBRS9COzs7T0FHRztJQUNNLEtBQUssQ0FBYTtJQUUzQjs7T0FFRztJQUNNLEtBQUssQ0FBYTtJQUUzQjs7T0FFRztJQUNNLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFbkM7OztPQUdHO0lBQ00sS0FBSyxDQUFVO0lBRXhCLElBQUksV0FBVztRQUNYLE9BQU87WUFDSCxRQUFRO1lBQ1IsV0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM1QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQzt3R0EzQ1EsYUFBYTs0RkFBYixhQUFhLG1MQ2pFMUIsbTJDQWFlLGk5RkRnREQsWUFBWTs7NEZBSWIsYUFBYTtrQkFQekIsU0FBUzsrQkFDSSxPQUFPLGNBQ0wsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzhCQVNkLE9BQU87c0JBQWYsS0FBSztnQkFNRyxHQUFHO3NCQUFYLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRleHRWYXJpYW50ID1cbiAgICB8ICdkaXNwbGF5J1xuICAgIHwgJ3RpdGxlJ1xuICAgIHwgJ2hlYWRpbmcnXG4gICAgfCAnc3ViaGVhZGluZydcbiAgICB8ICdib2R5LWxnJ1xuICAgIHwgJ2JvZHknXG4gICAgfCAnYm9keS1zbSdcbiAgICB8ICdsYWJlbCdcbiAgICB8ICdoZWxwZXInXG4gICAgfCAnY2FwdGlvbidcbiAgICB8ICdvdmVybGluZSc7XG5cbmV4cG9ydCB0eXBlIFRleHRUYWcgPVxuICAgIHwgJ2gxJ1xuICAgIHwgJ2gyJ1xuICAgIHwgJ2gzJ1xuICAgIHwgJ2g0J1xuICAgIHwgJ2g1J1xuICAgIHwgJ2g2J1xuICAgIHwgJ3AnXG4gICAgfCAnc3BhbidcbiAgICB8ICdkaXYnXG4gICAgfCAnbGFiZWwnXG4gICAgfCAnc3Ryb25nJ1xuICAgIHwgJ2VtJztcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWduID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuXG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPVxuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAnc3VjY2VzcydcbiAgICB8ICd3YXJuaW5nJ1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdhY2NlbnQnXG4gICAgfCAnc2xhdGUnXG4gICAgfCAndGV4dC1wcmltYXJ5J1xuICAgIHwgJ3RleHQtc2Vjb25kYXJ5J1xuICAgIHwgJ3RleHQtdGVydGlhcnknXG4gICAgfCAndGV4dC1pbnZlcnNlJztcblxuLyoqXG4gKiBUZXh0L1R5cG9ncmFwaHkgQ29tcG9uZW50XG4gKiBcbiAqIEEgZmxleGlibGUgdHlwb2dyYXBoeSBjb21wb25lbnQgZm9yIGNvbnNpc3RlbnQgdGV4dCByZW5kZXJpbmcuXG4gKiBVc2VzIHRva2VuLWJhc2VkIHN0eWxlcyBmb3IgbWFpbnRhaW5hYmlsaXR5IGFuZCB0aGVtaW5nLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHVUZXh0IHZhcmlhbnQ9XCJoZWFkaW5nXCI+UGFnZSBIZWFkaW5nPC91VGV4dD5cbiAqIDx1VGV4dCB2YXJpYW50PVwiYm9keVwiIHRhZz1cInBcIj5UaGlzIGlzIGEgcGFyYWdyYXBoLjwvdVRleHQ+XG4gKiA8dVRleHQgdmFyaWFudD1cImNhcHRpb25cIiBjb2xvcj1cInRleHQtc2Vjb25kYXJ5XCI+SGVscGVyIHRleHQ8L3VUZXh0PlxuICogPHVUZXh0IHZhcmlhbnQ9XCJ0aXRsZVwiIGFsaWduPVwiY2VudGVyXCIgdHJ1bmNhdGU+TG9uZyBUaXRsZTwvdVRleHQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1VGV4dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFR5cG9ncmFwaHkgdmFyaWFudFxuICAgICAqIENvbnRyb2xzIGZvbnQtc2l6ZSwgd2VpZ2h0LCBhbmQgbGluZS1oZWlnaHQgdmlhIHRva2Vuc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6IFRleHRWYXJpYW50ID0gJ2JvZHknO1xuXG4gICAgLyoqXG4gICAgICogSFRNTCB0YWcgdG8gcmVuZGVyXG4gICAgICogQWxsb3dzIHNlbWFudGljIGNvbnRyb2wgaW5kZXBlbmRlbnQgb2YgdmlzdWFsIHN0eWxlXG4gICAgICovXG4gICAgQElucHV0KCkgdGFnOiBUZXh0VGFnID0gJ3NwYW4nO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBjb2xvciAodG9rZW4tYmFzZWQpXG4gICAgICogVXNlcyBkZXNpZ24gc3lzdGVtIGNvbG9yIHRva2Vuc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbG9yPzogVGV4dENvbG9yO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBhbGlnbm1lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhbGlnbj86IFRleHRBbGlnbjtcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSB0ZXh0IHRydW5jYXRpb24gd2l0aCBlbGxpcHNpc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRydW5jYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCB3aWR0aCBjb25zdHJhaW50XG4gICAgICogVXNlZnVsIHdoZW4gdHJ1bmNhdGluZyB0ZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgd2lkdGg/OiBzdHJpbmc7XG5cbiAgICBnZXQgdGV4dENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd1LXRleHQnLFxuICAgICAgICAgICAgYHUtdGV4dC0tJHt0aGlzLnZhcmlhbnR9YCxcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPyBgdS10ZXh0LS1jb2xvci0ke3RoaXMuY29sb3J9YCA6IG51bGwsXG4gICAgICAgICAgICB0aGlzLmFsaWduID8gYHUtdGV4dC0tYWxpZ24tJHt0aGlzLmFsaWdufWAgOiBudWxsLFxuICAgICAgICAgICAgdGhpcy50cnVuY2F0ZSA/ICd1LXRleHQtLXRydW5jYXRlJyA6IG51bGxcbiAgICAgICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRhZ1wiPlxuICA8aDEgKm5nU3dpdGNoQ2FzZT1cIidoMSdcIiBbY2xhc3NdPVwidGV4dENsYXNzZXNcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9oMT5cbiAgPGgyICpuZ1N3aXRjaENhc2U9XCInaDInXCIgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvaDI+XG4gIDxoMyAqbmdTd2l0Y2hDYXNlPVwiJ2gzJ1wiIFtjbGFzc109XCJ0ZXh0Q2xhc3Nlc1wiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2gzPlxuICA8aDQgKm5nU3dpdGNoQ2FzZT1cIidoNCdcIiBbY2xhc3NdPVwidGV4dENsYXNzZXNcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9oND5cbiAgPGg1ICpuZ1N3aXRjaENhc2U9XCInaDUnXCIgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvaDU+XG4gIDxoNiAqbmdTd2l0Y2hDYXNlPVwiJ2g2J1wiIFtjbGFzc109XCJ0ZXh0Q2xhc3Nlc1wiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2g2PlxuICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ3AnXCIgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvcD5cbiAgPGxhYmVsICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCIgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbGFiZWw+XG4gIDxzdHJvbmcgKm5nU3dpdGNoQ2FzZT1cIidzdHJvbmcnXCIgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Ryb25nPlxuICA8ZW0gKm5nU3dpdGNoQ2FzZT1cIidlbSdcIiBbY2xhc3NdPVwidGV4dENsYXNzZXNcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9lbT5cbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RpdidcIiBbY2xhc3NdPVwidGV4dENsYXNzZXNcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XG4gIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQgW2NsYXNzXT1cInRleHRDbGFzc2VzXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -7,4 +7,5 @@
|
|
|
7
7
|
export const UISUITE_VERSION = '0.0.0';
|
|
8
8
|
// Components
|
|
9
9
|
export * from './lib/button/button.component';
|
|
10
|
-
|
|
10
|
+
export * from './lib/text/text.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Vpc3VpdGUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILFVBQVU7QUFDVixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBRXZDLGFBQWE7QUFDYixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHVpc3VpdGVcbiAqIFxuICogVGhpcyBmaWxlIGV4cG9ydHMgYWxsIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsIGFuZCBzZXJ2aWNlcy5cbiAqL1xuXG4vLyBWZXJzaW9uXG5leHBvcnQgY29uc3QgVUlTVUlURV9WRVJTSU9OID0gJzAuMC4wJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG4iXX0=
|
package/fesm2022/uisuite.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Input } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
3
4
|
import { CommonModule } from '@angular/common';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
|
-
* Button Component
|
|
7
|
+
* Button Component
|
|
7
8
|
*
|
|
8
9
|
* A versatile button component with multiple variants and sizes.
|
|
9
10
|
*
|
|
@@ -104,6 +105,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
104
105
|
type: Input
|
|
105
106
|
}] } });
|
|
106
107
|
|
|
108
|
+
/**
|
|
109
|
+
* Text/Typography Component
|
|
110
|
+
*
|
|
111
|
+
* A flexible typography component for consistent text rendering.
|
|
112
|
+
* Uses token-based styles for maintainability and theming.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```html
|
|
116
|
+
* <uText variant="heading">Page Heading</uText>
|
|
117
|
+
* <uText variant="body" tag="p">This is a paragraph.</uText>
|
|
118
|
+
* <uText variant="caption" color="text-secondary">Helper text</uText>
|
|
119
|
+
* <uText variant="title" align="center" truncate>Long Title</uText>
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
class TextComponent {
|
|
123
|
+
/**
|
|
124
|
+
* Typography variant
|
|
125
|
+
* Controls font-size, weight, and line-height via tokens
|
|
126
|
+
*/
|
|
127
|
+
variant = 'body';
|
|
128
|
+
/**
|
|
129
|
+
* HTML tag to render
|
|
130
|
+
* Allows semantic control independent of visual style
|
|
131
|
+
*/
|
|
132
|
+
tag = 'span';
|
|
133
|
+
/**
|
|
134
|
+
* Text color (token-based)
|
|
135
|
+
* Uses design system color tokens
|
|
136
|
+
*/
|
|
137
|
+
color;
|
|
138
|
+
/**
|
|
139
|
+
* Text alignment
|
|
140
|
+
*/
|
|
141
|
+
align;
|
|
142
|
+
/**
|
|
143
|
+
* Enable text truncation with ellipsis
|
|
144
|
+
*/
|
|
145
|
+
truncate = false;
|
|
146
|
+
/**
|
|
147
|
+
* Optional width constraint
|
|
148
|
+
* Useful when truncating text
|
|
149
|
+
*/
|
|
150
|
+
width;
|
|
151
|
+
get textClasses() {
|
|
152
|
+
return [
|
|
153
|
+
'u-text',
|
|
154
|
+
`u-text--${this.variant}`,
|
|
155
|
+
this.color ? `u-text--color-${this.color}` : null,
|
|
156
|
+
this.align ? `u-text--align-${this.align}` : null,
|
|
157
|
+
this.truncate ? 'u-text--truncate' : null
|
|
158
|
+
].filter(Boolean).join(' ');
|
|
159
|
+
}
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextComponent, isStandalone: true, selector: "uText", inputs: { variant: "variant", tag: "tag", color: "color", align: "align", truncate: "truncate", width: "width" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"tag\">\n <h1 *ngSwitchCase=\"'h1'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h1>\n <h2 *ngSwitchCase=\"'h2'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h2>\n <h3 *ngSwitchCase=\"'h3'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h3>\n <h4 *ngSwitchCase=\"'h4'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h4>\n <h5 *ngSwitchCase=\"'h5'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h5>\n <h6 *ngSwitchCase=\"'h6'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h6>\n <p *ngSwitchCase=\"'p'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></p>\n <label *ngSwitchCase=\"'label'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></label>\n <strong *ngSwitchCase=\"'strong'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></strong>\n <em *ngSwitchCase=\"'em'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></em>\n <div *ngSwitchCase=\"'div'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></div>\n <span *ngSwitchDefault [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></span>\n</ng-container>", styles: [".u-text{margin:0;padding:0;color:var(--uicolor-text-primary)}.u-text--display{font-size:var(--uitype-display-size);font-weight:var(--uitype-display-weight);line-height:var(--uitype-display-line-height);letter-spacing:var(--uitype-display-letter-spacing)}.u-text--title{font-size:var(--uitype-title-size);font-weight:var(--uitype-title-weight);line-height:var(--uitype-title-line-height);letter-spacing:var(--uitype-title-letter-spacing)}.u-text--heading{font-size:var(--uitype-heading-size);font-weight:var(--uitype-heading-weight);line-height:var(--uitype-heading-line-height);letter-spacing:var(--uitype-heading-letter-spacing)}.u-text--subheading{font-size:var(--uitype-subheading-size);font-weight:var(--uitype-subheading-weight);line-height:var(--uitype-subheading-line-height);letter-spacing:var(--uitype-subheading-letter-spacing)}.u-text--body-lg{font-size:var(--uitype-body-lg-size);font-weight:var(--uitype-body-lg-weight);line-height:var(--uitype-body-lg-line-height);letter-spacing:var(--uitype-body-lg-letter-spacing)}.u-text--body{font-size:var(--uitype-body-size);font-weight:var(--uitype-body-weight);line-height:var(--uitype-body-line-height);letter-spacing:var(--uitype-body-letter-spacing)}.u-text--body-sm{font-size:var(--uitype-body-sm-size);font-weight:var(--uitype-body-sm-weight);line-height:var(--uitype-body-sm-line-height);letter-spacing:var(--uitype-body-sm-letter-spacing)}.u-text--label{font-size:var(--uitype-label-size);font-weight:var(--uitype-label-weight);line-height:var(--uitype-label-line-height);letter-spacing:var(--uitype-label-letter-spacing)}.u-text--helper{font-size:var(--uitype-helper-size);font-weight:var(--uitype-helper-weight);line-height:var(--uitype-helper-line-height);letter-spacing:var(--uitype-helper-letter-spacing)}.u-text--caption{font-size:var(--uitype-caption-size);font-weight:var(--uitype-caption-weight);line-height:var(--uitype-caption-line-height);letter-spacing:var(--uitype-caption-letter-spacing)}.u-text--overline{font-size:var(--uitype-overline-size);font-weight:var(--uitype-overline-weight);line-height:var(--uitype-overline-line-height);letter-spacing:var(--uitype-overline-letter-spacing);text-transform:uppercase}.u-text--color-primary{color:var(--uicolor-primary)}.u-text--color-success{color:var(--uicolor-success)}.u-text--color-warning{color:var(--uicolor-warning)}.u-text--color-danger{color:var(--uicolor-danger)}.u-text--color-accent{color:var(--uicolor-accent)}.u-text--color-slate{color:var(--uicolor-slate)}.u-text--color-text-primary{color:var(--uicolor-text-primary)}.u-text--color-text-secondary{color:var(--uicolor-text-secondary)}.u-text--color-text-tertiary{color:var(--uicolor-text-tertiary)}.u-text--color-text-inverse{color:var(--uicolor-text-inverse)}.u-text--align-left{text-align:left}.u-text--align-center{text-align:center}.u-text--align-right{text-align:right}.u-text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
162
|
+
}
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, decorators: [{
|
|
164
|
+
type: Component,
|
|
165
|
+
args: [{ selector: 'uText', standalone: true, imports: [CommonModule], template: "<ng-container [ngSwitch]=\"tag\">\n <h1 *ngSwitchCase=\"'h1'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h1>\n <h2 *ngSwitchCase=\"'h2'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h2>\n <h3 *ngSwitchCase=\"'h3'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h3>\n <h4 *ngSwitchCase=\"'h4'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h4>\n <h5 *ngSwitchCase=\"'h5'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h5>\n <h6 *ngSwitchCase=\"'h6'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h6>\n <p *ngSwitchCase=\"'p'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></p>\n <label *ngSwitchCase=\"'label'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></label>\n <strong *ngSwitchCase=\"'strong'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></strong>\n <em *ngSwitchCase=\"'em'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></em>\n <div *ngSwitchCase=\"'div'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></div>\n <span *ngSwitchDefault [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></span>\n</ng-container>", styles: [".u-text{margin:0;padding:0;color:var(--uicolor-text-primary)}.u-text--display{font-size:var(--uitype-display-size);font-weight:var(--uitype-display-weight);line-height:var(--uitype-display-line-height);letter-spacing:var(--uitype-display-letter-spacing)}.u-text--title{font-size:var(--uitype-title-size);font-weight:var(--uitype-title-weight);line-height:var(--uitype-title-line-height);letter-spacing:var(--uitype-title-letter-spacing)}.u-text--heading{font-size:var(--uitype-heading-size);font-weight:var(--uitype-heading-weight);line-height:var(--uitype-heading-line-height);letter-spacing:var(--uitype-heading-letter-spacing)}.u-text--subheading{font-size:var(--uitype-subheading-size);font-weight:var(--uitype-subheading-weight);line-height:var(--uitype-subheading-line-height);letter-spacing:var(--uitype-subheading-letter-spacing)}.u-text--body-lg{font-size:var(--uitype-body-lg-size);font-weight:var(--uitype-body-lg-weight);line-height:var(--uitype-body-lg-line-height);letter-spacing:var(--uitype-body-lg-letter-spacing)}.u-text--body{font-size:var(--uitype-body-size);font-weight:var(--uitype-body-weight);line-height:var(--uitype-body-line-height);letter-spacing:var(--uitype-body-letter-spacing)}.u-text--body-sm{font-size:var(--uitype-body-sm-size);font-weight:var(--uitype-body-sm-weight);line-height:var(--uitype-body-sm-line-height);letter-spacing:var(--uitype-body-sm-letter-spacing)}.u-text--label{font-size:var(--uitype-label-size);font-weight:var(--uitype-label-weight);line-height:var(--uitype-label-line-height);letter-spacing:var(--uitype-label-letter-spacing)}.u-text--helper{font-size:var(--uitype-helper-size);font-weight:var(--uitype-helper-weight);line-height:var(--uitype-helper-line-height);letter-spacing:var(--uitype-helper-letter-spacing)}.u-text--caption{font-size:var(--uitype-caption-size);font-weight:var(--uitype-caption-weight);line-height:var(--uitype-caption-line-height);letter-spacing:var(--uitype-caption-letter-spacing)}.u-text--overline{font-size:var(--uitype-overline-size);font-weight:var(--uitype-overline-weight);line-height:var(--uitype-overline-line-height);letter-spacing:var(--uitype-overline-letter-spacing);text-transform:uppercase}.u-text--color-primary{color:var(--uicolor-primary)}.u-text--color-success{color:var(--uicolor-success)}.u-text--color-warning{color:var(--uicolor-warning)}.u-text--color-danger{color:var(--uicolor-danger)}.u-text--color-accent{color:var(--uicolor-accent)}.u-text--color-slate{color:var(--uicolor-slate)}.u-text--color-text-primary{color:var(--uicolor-text-primary)}.u-text--color-text-secondary{color:var(--uicolor-text-secondary)}.u-text--color-text-tertiary{color:var(--uicolor-text-tertiary)}.u-text--color-text-inverse{color:var(--uicolor-text-inverse)}.u-text--align-left{text-align:left}.u-text--align-center{text-align:center}.u-text--align-right{text-align:right}.u-text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}\n"] }]
|
|
166
|
+
}], propDecorators: { variant: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], tag: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], color: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], align: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], truncate: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], width: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}] } });
|
|
179
|
+
|
|
107
180
|
/*
|
|
108
181
|
* Public API Surface of uisuite
|
|
109
182
|
*
|
|
@@ -116,5 +189,5 @@ const UISUITE_VERSION = '0.0.0';
|
|
|
116
189
|
* Generated bundle index. Do not edit.
|
|
117
190
|
*/
|
|
118
191
|
|
|
119
|
-
export { ButtonComponent, UISUITE_VERSION };
|
|
192
|
+
export { ButtonComponent, TextComponent, UISUITE_VERSION };
|
|
120
193
|
//# sourceMappingURL=uisuite.mjs.map
|
package/fesm2022/uisuite.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uisuite.mjs","sources":["../../../projects/uisuite/src/lib/button/button.component.ts","../../../projects/uisuite/src/public-api.ts","../../../projects/uisuite/src/uisuite.ts"],"sourcesContent":["import { Component, Input, HostBinding } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'default' | 'outline' | 'ghost' | 'destructive' | 'secondary' | 'link';\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';\nexport type ButtonColor = 'primary' | 'success' | 'warning' | 'danger' | 'accent' | 'white' | 'info';\n\n/**\n * Button Component - Based on shadcn/ui\n * \n * A versatile button component with multiple variants and sizes.\n * \n * @example\n * ```html\n * <uButton>Click me</uButton>\n * <uButton variant=\"outline\" size=\"sm\">Small Outline</uButton>\n * <uButton variant=\"destructive\">Delete</uButton>\n * ```\n */\n@Component({\n selector: 'uButton',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ng-content></ng-content>\n </button>\n `,\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent {\n /**\n * Button variant\n * - default: Primary button style\n * - outline: Outlined button\n * - ghost: Minimal button with no border\n * - destructive: For destructive actions (delete, remove, etc.)\n * - secondary: Secondary action button\n * - link: Renders as a link-styled button\n */\n @Input() variant: ButtonVariant = 'default';\n\n /**\n * Button size\n * - default: Standard button size\n * - sm: Small button\n * - lg: Large button\n * - icon: Square icon button (default size)\n * - icon-sm: Small square icon button\n * - icon-lg: Large square icon button\n */\n @Input() size: ButtonSize = 'default';\n\n /**\n * HTML button type\n */\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Whether the button is disabled\n */\n @Input() disabled: boolean = false;\n\n\n /**\n * ARIA label for accessibility\n */\n @Input() ariaLabel?: string;\n\n /**\n * Button color\n * - primary: Primary brand color (default)\n * - success: Green color for success actions\n * - warning: Yellow/amber color for warnings\n * - danger: Red color for dangerous actions\n * - accent: Accent color for highlights\n * - white: White color for dark backgrounds\n * - info: Blue color for informational actions\n */\n @Input() color: ButtonColor = 'primary';\n\n get buttonClasses(): string {\n return [\n 'u-button',\n `u-button--${this.variant}`,\n `u-button--${this.size}`,\n `u-button--color-${this.color}`\n ].filter(Boolean).join(' ');\n }\n}\n","/*\n * Public API Surface of uisuite\n * \n * This file exports all components, directives, and services.\n */\n\n// Version\nexport const UISUITE_VERSION = '0.0.0';\n\n// Components\nexport * from './lib/button/button.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAOA;;;;;;;;;;;AAWG;MAiBU,eAAe,CAAA;AAC1B;;;;;;;;AAQG;IACM,OAAO,GAAkB,SAAS,CAAC;AAE5C;;;;;;;;AAQG;IACM,IAAI,GAAe,SAAS,CAAC;AAEtC;;AAEG;IACM,IAAI,GAAkC,QAAQ,CAAC;AAExD;;AAEG;IACM,QAAQ,GAAY,KAAK,CAAC;AAGnC;;AAEG;AACM,IAAA,SAAS,CAAU;AAE5B;;;;;;;;;AASG;IACM,KAAK,GAAgB,SAAS,CAAC;AAExC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO;YACL,UAAU;YACV,CAAa,UAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA;YAC3B,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA;YACxB,CAAmB,gBAAA,EAAA,IAAI,CAAC,KAAK,CAAE,CAAA;SAChC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;wGA1DU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2lRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAVS,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAaX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,cACP,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EACb,QAAA,EAAA,CAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2lRAAA,CAAA,EAAA,CAAA;8BAaQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAWG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAMG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAYG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ACpFR;;;;AAIG;AAEH;AACO,MAAM,eAAe,GAAG;;ACP/B;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"uisuite.mjs","sources":["../../../projects/uisuite/src/lib/button/button.component.ts","../../../projects/uisuite/src/lib/text/text.component.ts","../../../projects/uisuite/src/lib/text/text.component.html","../../../projects/uisuite/src/public-api.ts","../../../projects/uisuite/src/uisuite.ts"],"sourcesContent":["import { Component, Input, HostBinding } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'default' | 'outline' | 'ghost' | 'destructive' | 'secondary' | 'link';\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';\nexport type ButtonColor = 'primary' | 'success' | 'warning' | 'danger' | 'accent' | 'white' | 'info';\n\n/**\n * Button Component\n * \n * A versatile button component with multiple variants and sizes.\n * \n * @example\n * ```html\n * <uButton>Click me</uButton>\n * <uButton variant=\"outline\" size=\"sm\">Small Outline</uButton>\n * <uButton variant=\"destructive\">Delete</uButton>\n * ```\n */\n@Component({\n selector: 'uButton',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ng-content></ng-content>\n </button>\n `,\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent {\n /**\n * Button variant\n * - default: Primary button style\n * - outline: Outlined button\n * - ghost: Minimal button with no border\n * - destructive: For destructive actions (delete, remove, etc.)\n * - secondary: Secondary action button\n * - link: Renders as a link-styled button\n */\n @Input() variant: ButtonVariant = 'default';\n\n /**\n * Button size\n * - default: Standard button size\n * - sm: Small button\n * - lg: Large button\n * - icon: Square icon button (default size)\n * - icon-sm: Small square icon button\n * - icon-lg: Large square icon button\n */\n @Input() size: ButtonSize = 'default';\n\n /**\n * HTML button type\n */\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Whether the button is disabled\n */\n @Input() disabled: boolean = false;\n\n\n /**\n * ARIA label for accessibility\n */\n @Input() ariaLabel?: string;\n\n /**\n * Button color\n * - primary: Primary brand color (default)\n * - success: Green color for success actions\n * - warning: Yellow/amber color for warnings\n * - danger: Red color for dangerous actions\n * - accent: Accent color for highlights\n * - white: White color for dark backgrounds\n * - info: Blue color for informational actions\n */\n @Input() color: ButtonColor = 'primary';\n\n get buttonClasses(): string {\n return [\n 'u-button',\n `u-button--${this.variant}`,\n `u-button--${this.size}`,\n `u-button--color-${this.color}`\n ].filter(Boolean).join(' ');\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type TextVariant =\n | 'display'\n | 'title'\n | 'heading'\n | 'subheading'\n | 'body-lg'\n | 'body'\n | 'body-sm'\n | 'label'\n | 'helper'\n | 'caption'\n | 'overline';\n\nexport type TextTag =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'p'\n | 'span'\n | 'div'\n | 'label'\n | 'strong'\n | 'em';\n\nexport type TextAlign = 'left' | 'center' | 'right';\n\nexport type TextColor =\n | 'primary'\n | 'success'\n | 'warning'\n | 'danger'\n | 'accent'\n | 'slate'\n | 'text-primary'\n | 'text-secondary'\n | 'text-tertiary'\n | 'text-inverse';\n\n/**\n * Text/Typography Component\n * \n * A flexible typography component for consistent text rendering.\n * Uses token-based styles for maintainability and theming.\n * \n * @example\n * ```html\n * <uText variant=\"heading\">Page Heading</uText>\n * <uText variant=\"body\" tag=\"p\">This is a paragraph.</uText>\n * <uText variant=\"caption\" color=\"text-secondary\">Helper text</uText>\n * <uText variant=\"title\" align=\"center\" truncate>Long Title</uText>\n * ```\n */\n@Component({\n selector: 'uText',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss']\n})\nexport class TextComponent {\n /**\n * Typography variant\n * Controls font-size, weight, and line-height via tokens\n */\n @Input() variant: TextVariant = 'body';\n\n /**\n * HTML tag to render\n * Allows semantic control independent of visual style\n */\n @Input() tag: TextTag = 'span';\n\n /**\n * Text color (token-based)\n * Uses design system color tokens\n */\n @Input() color?: TextColor;\n\n /**\n * Text alignment\n */\n @Input() align?: TextAlign;\n\n /**\n * Enable text truncation with ellipsis\n */\n @Input() truncate: boolean = false;\n\n /**\n * Optional width constraint\n * Useful when truncating text\n */\n @Input() width?: string;\n\n get textClasses(): string {\n return [\n 'u-text',\n `u-text--${this.variant}`,\n this.color ? `u-text--color-${this.color}` : null,\n this.align ? `u-text--align-${this.align}` : null,\n this.truncate ? 'u-text--truncate' : null\n ].filter(Boolean).join(' ');\n }\n}\n","<ng-container [ngSwitch]=\"tag\">\n <h1 *ngSwitchCase=\"'h1'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h1>\n <h2 *ngSwitchCase=\"'h2'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h2>\n <h3 *ngSwitchCase=\"'h3'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h3>\n <h4 *ngSwitchCase=\"'h4'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h4>\n <h5 *ngSwitchCase=\"'h5'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h5>\n <h6 *ngSwitchCase=\"'h6'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></h6>\n <p *ngSwitchCase=\"'p'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></p>\n <label *ngSwitchCase=\"'label'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></label>\n <strong *ngSwitchCase=\"'strong'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></strong>\n <em *ngSwitchCase=\"'em'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></em>\n <div *ngSwitchCase=\"'div'\" [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></div>\n <span *ngSwitchDefault [class]=\"textClasses\" [style.width]=\"width\"><ng-content></ng-content></span>\n</ng-container>","/*\n * Public API Surface of uisuite\n * \n * This file exports all components, directives, and services.\n */\n\n// Version\nexport const UISUITE_VERSION = '0.0.0';\n\n// Components\nexport * from './lib/button/button.component';\nexport * from './lib/text/text.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export type ButtonVariant = 'default' | 'outline' | 'ghost' | 'destructive' | 's
|
|
|
3
3
|
export type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
|
|
4
4
|
export type ButtonColor = 'primary' | 'success' | 'warning' | 'danger' | 'accent' | 'white' | 'info';
|
|
5
5
|
/**
|
|
6
|
-
* Button Component
|
|
6
|
+
* Button Component
|
|
7
7
|
*
|
|
8
8
|
* A versatile button component with multiple variants and sizes.
|
|
9
9
|
*
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export type TextVariant = 'display' | 'title' | 'heading' | 'subheading' | 'body-lg' | 'body' | 'body-sm' | 'label' | 'helper' | 'caption' | 'overline';
|
|
3
|
+
export type TextTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div' | 'label' | 'strong' | 'em';
|
|
4
|
+
export type TextAlign = 'left' | 'center' | 'right';
|
|
5
|
+
export type TextColor = 'primary' | 'success' | 'warning' | 'danger' | 'accent' | 'slate' | 'text-primary' | 'text-secondary' | 'text-tertiary' | 'text-inverse';
|
|
6
|
+
/**
|
|
7
|
+
* Text/Typography Component
|
|
8
|
+
*
|
|
9
|
+
* A flexible typography component for consistent text rendering.
|
|
10
|
+
* Uses token-based styles for maintainability and theming.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <uText variant="heading">Page Heading</uText>
|
|
15
|
+
* <uText variant="body" tag="p">This is a paragraph.</uText>
|
|
16
|
+
* <uText variant="caption" color="text-secondary">Helper text</uText>
|
|
17
|
+
* <uText variant="title" align="center" truncate>Long Title</uText>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class TextComponent {
|
|
21
|
+
/**
|
|
22
|
+
* Typography variant
|
|
23
|
+
* Controls font-size, weight, and line-height via tokens
|
|
24
|
+
*/
|
|
25
|
+
variant: TextVariant;
|
|
26
|
+
/**
|
|
27
|
+
* HTML tag to render
|
|
28
|
+
* Allows semantic control independent of visual style
|
|
29
|
+
*/
|
|
30
|
+
tag: TextTag;
|
|
31
|
+
/**
|
|
32
|
+
* Text color (token-based)
|
|
33
|
+
* Uses design system color tokens
|
|
34
|
+
*/
|
|
35
|
+
color?: TextColor;
|
|
36
|
+
/**
|
|
37
|
+
* Text alignment
|
|
38
|
+
*/
|
|
39
|
+
align?: TextAlign;
|
|
40
|
+
/**
|
|
41
|
+
* Enable text truncation with ellipsis
|
|
42
|
+
*/
|
|
43
|
+
truncate: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Optional width constraint
|
|
46
|
+
* Useful when truncating text
|
|
47
|
+
*/
|
|
48
|
+
width?: string;
|
|
49
|
+
get textClasses(): string;
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextComponent, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "uText", never, { "variant": { "alias": "variant"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "color": { "alias": "color"; "required": false; }; "align": { "alias": "align"; "required": false; }; "truncate": { "alias": "truncate"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*"], true, never>;
|
|
52
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED