@cuby-ui/core 0.0.2 → 0.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.
Files changed (48) hide show
  1. package/components/button/button.component.d.ts +29 -0
  2. package/components/button/button.module.d.ts +9 -0
  3. package/components/button/button.options.d.ts +8 -0
  4. package/components/button/{index.ts → index.d.ts} +1 -1
  5. package/components/{index.ts → index.d.ts} +1 -1
  6. package/components/svg/svg.component.d.ts +19 -0
  7. package/components/svg/svg.module.d.ts +8 -0
  8. package/esm2020/components/button/button.component.mjs +109 -0
  9. package/esm2020/components/button/button.module.mjs +24 -0
  10. package/esm2020/components/button/button.options.mjs +9 -0
  11. package/esm2020/components/button/index.mjs +4 -0
  12. package/esm2020/components/index.mjs +3 -0
  13. package/esm2020/components/svg/index.mjs +3 -0
  14. package/esm2020/components/svg/svg.component.mjs +45 -0
  15. package/esm2020/components/svg/svg.module.mjs +18 -0
  16. package/esm2020/cui-core.mjs +5 -0
  17. package/esm2020/f-core.mjs +5 -0
  18. package/esm2020/index.mjs +3 -0
  19. package/esm2020/types/appearance.mjs +2 -0
  20. package/esm2020/types/index.mjs +3 -0
  21. package/esm2020/types/size.mjs +2 -0
  22. package/fesm2015/cui-core.mjs +7 -0
  23. package/fesm2015/cui-core.mjs.map +1 -0
  24. package/fesm2015/f-core.mjs +7 -0
  25. package/fesm2015/f-core.mjs.map +1 -0
  26. package/fesm2020/cui-core.mjs +7 -0
  27. package/fesm2020/cui-core.mjs.map +1 -0
  28. package/fesm2020/f-core.mjs +7 -0
  29. package/fesm2020/f-core.mjs.map +1 -0
  30. package/{index.ts → index.d.ts} +1 -1
  31. package/package.json +24 -5
  32. package/types/{appearance.ts → appearance.d.ts} +1 -7
  33. package/types/{index.ts → index.d.ts} +1 -1
  34. package/types/{size.ts → size.d.ts} +1 -4
  35. package/components/button/button.component.ts +0 -114
  36. package/components/button/button.module.ts +0 -17
  37. package/components/button/button.options.ts +0 -40
  38. package/components/button/button.style.scss +0 -290
  39. package/components/button/button.template.html +0 -29
  40. package/components/svg/svg.component.ts +0 -58
  41. package/components/svg/svg.module.ts +0 -12
  42. package/components/svg/svg.options.ts +0 -6
  43. package/components/svg/svg.style.scss +0 -15
  44. package/components/svg/svg.template.html +0 -5
  45. package/ng-package.json +0 -11
  46. package/tsconfig.lib.json +0 -13
  47. package/tsconfig.lib.prod.json +0 -9
  48. /package/components/svg/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,29 @@
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef } from '@angular/core';
2
+ import { CuiButtonOptions } from './button.options';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CuiButtonComponent implements AfterViewInit, CuiButtonOptions {
5
+ private readonly changeDetectorRef;
6
+ private readonly cuiButtonOptions;
7
+ CUI_ICON_LOADING: string;
8
+ _size: "xxs" | "xs" | "sm" | "md";
9
+ svgOptions: {
10
+ width: number;
11
+ height: number;
12
+ strokeWidth: number;
13
+ };
14
+ appearance: "link" | "primary" | "secondary" | "outlined" | "outlined-gray" | "ghost" | "destructive";
15
+ disabled: boolean;
16
+ isLoaderShown: boolean;
17
+ icon?: string;
18
+ iconRight?: string;
19
+ get size(): CuiButtonOptions['size'];
20
+ set size(size: CuiButtonOptions['size']);
21
+ containsOnlyIcon: boolean;
22
+ get isDisabled(): boolean;
23
+ content: ElementRef<HTMLSpanElement>;
24
+ constructor(changeDetectorRef: ChangeDetectorRef, cuiButtonOptions: CuiButtonOptions);
25
+ ngAfterViewInit(): void;
26
+ private initContainsOnlyIcon;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuiButtonComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuiButtonComponent, "button[cuiButton], a[cuiButton]", never, { "appearance": "appearance"; "disabled": "disabled"; "isLoaderShown": "isLoaderShown"; "icon": "icon"; "iconRight": "iconRight"; "size": "size"; }, {}, never, ["*"], false, never>;
29
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./button.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@cuby-ui/core/components/svg";
5
+ export declare class CuiButtonModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuiButtonModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuiButtonModule, [typeof i1.CuiButtonComponent], [typeof i2.CommonModule, typeof i3.CuiSvgModule], [typeof i1.CuiButtonComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuiButtonModule>;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { CuiAppearanceDestructive, CuiAppearanceGhost, CuiAppearanceLink, CuiAppearanceOutlined, CuiAppearanceOutlinedGray, CuiAppearancePrimary, CuiAppearanceSecondary, CuiSizeMd, CuiSizeSm, CuiSizeXs, CuiSizeXxs } from '@cuby-ui/core/types';
3
+ export interface CuiButtonOptions {
4
+ readonly appearance: CuiAppearancePrimary | CuiAppearanceSecondary | CuiAppearanceOutlined | CuiAppearanceOutlinedGray | CuiAppearanceGhost | CuiAppearanceDestructive | CuiAppearanceLink;
5
+ readonly size: CuiSizeXxs | CuiSizeXs | CuiSizeSm | CuiSizeMd;
6
+ }
7
+ export declare const CUI_BUTTON_DEFAULT_OPTIONS: CuiButtonOptions;
8
+ export declare const CUI_BUTTON_OPTIONS: InjectionToken<CuiButtonOptions>;
@@ -1,3 +1,3 @@
1
1
  export * from './button.component';
2
2
  export * from './button.module';
3
- export * from './button.options';
3
+ export * from './button.options';
@@ -1,2 +1,2 @@
1
1
  export * from '@cuby-ui/core/components/button';
2
- export * from '@cuby-ui/core/components/svg';
2
+ export * from '@cuby-ui/core/components/svg';
@@ -0,0 +1,19 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
2
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CuiSvgComponent implements AfterViewInit {
5
+ private readonly domSanitizer;
6
+ private readonly elementRef;
7
+ STROKE_WIDTH_ATTRIBUTE: string;
8
+ safeSvgContent: SafeHtml;
9
+ _strokeWidth?: number;
10
+ width?: number;
11
+ height?: number;
12
+ set icon(icon: string);
13
+ set strokeWidth(strokeWidth: number | undefined);
14
+ constructor(domSanitizer: DomSanitizer, elementRef: ElementRef<HTMLElement>);
15
+ ngAfterViewInit(): void;
16
+ private updateStrokeWidth;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuiSvgComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuiSvgComponent, "cui-svg[icon]", never, { "width": "width"; "height": "height"; "icon": "icon"; "strokeWidth": "strokeWidth"; }, {}, never, never, false, never>;
19
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./svg.component";
3
+ import * as i2 from "@angular/common";
4
+ export declare class CuiSvgModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<CuiSvgModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CuiSvgModule, [typeof i1.CuiSvgComponent], [typeof i2.CommonModule], [typeof i1.CuiSvgComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<CuiSvgModule>;
8
+ }
@@ -0,0 +1,109 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, ViewChild } from '@angular/core';
2
+ import { CUI_BUTTON_OPTIONS } from './button.options';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../svg/svg.component";
6
+ export class CuiButtonComponent {
7
+ get size() {
8
+ return this._size;
9
+ }
10
+ set size(size) {
11
+ this._size = size;
12
+ if (size === 'xxs') {
13
+ this.svgOptions = {
14
+ width: 16,
15
+ height: 16,
16
+ strokeWidth: 1.5
17
+ };
18
+ return;
19
+ }
20
+ this.svgOptions = {
21
+ width: 20,
22
+ height: 20,
23
+ strokeWidth: 1.5
24
+ };
25
+ }
26
+ get isDisabled() {
27
+ return this.disabled || this.isLoaderShown;
28
+ }
29
+ constructor(changeDetectorRef, cuiButtonOptions) {
30
+ this.changeDetectorRef = changeDetectorRef;
31
+ this.cuiButtonOptions = cuiButtonOptions;
32
+ this.CUI_ICON_LOADING = `
33
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
34
+ <animateTransform
35
+ attributeName="transform"
36
+ type="rotate"
37
+ from="0"
38
+ to="360"
39
+ dur="2"
40
+ repeatCount="indefinite">
41
+ </animateTransform>
42
+ <path opacity="0.5" d="M12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z" fill="white" fill-opacity="0.5"/>
43
+ <path d="M20 12H22C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7362 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2V4C14.1217 4 16.1566 4.84285 17.6569 6.34315C19.1571 7.84344 20 9.87827 20 12Z" fill="white"/>
44
+ </svg>
45
+ `;
46
+ this._size = this.cuiButtonOptions.size;
47
+ this.svgOptions = {
48
+ width: 20,
49
+ height: 20,
50
+ strokeWidth: 1.5
51
+ };
52
+ this.appearance = this.cuiButtonOptions.appearance;
53
+ this.disabled = false;
54
+ this.isLoaderShown = false;
55
+ this.containsOnlyIcon = false;
56
+ }
57
+ ngAfterViewInit() {
58
+ this.initContainsOnlyIcon();
59
+ }
60
+ initContainsOnlyIcon() {
61
+ Promise.resolve().then(() => {
62
+ this.containsOnlyIcon = this.content.nativeElement.childNodes.length === 0;
63
+ this.changeDetectorRef.detectChanges();
64
+ });
65
+ }
66
+ }
67
+ CuiButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CUI_BUTTON_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
68
+ CuiButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: { appearance: "appearance", disabled: "disabled", isLoaderShown: "isLoaderShown", icon: "icon", iconRight: "iconRight", size: "size" }, host: { properties: { "attr.data-appearance": "this.appearance", "class._disabled": "this.disabled", "class._loading": "this.isLoaderShown", "attr.data-size": "this.size", "class._only-icon": "this.containsOnlyIcon", "disabled": "this.isDisabled" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<span\r\n class=\"c-wrapper\"\r\n [class.c-wrapper_invisible]=\"isLoaderShown\"\r\n>\r\n <cui-svg\r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n [width]=\"svgOptions.width\"\r\n [height]=\"svgOptions.height\"\r\n [strokeWidth]=\"svgOptions.strokeWidth\"\r\n class=\"c-icon\"\r\n ></cui-svg>\r\n <span #content *ngIf=\"!containsOnlyIcon\">\r\n <ng-content></ng-content>\r\n </span>\r\n <cui-svg\r\n *ngIf=\"iconRight\"\r\n [icon]=\"iconRight\"\r\n [width]=\"svgOptions.width\"\r\n [height]=\"svgOptions.height\"\r\n [strokeWidth]=\"svgOptions.strokeWidth\"\r\n class=\"c-icon\"\r\n ></cui-svg>\r\n</span>\r\n<cui-svg\r\n *ngIf=\"isLoaderShown\"\r\n [icon]=\"CUI_ICON_LOADING\"\r\n class=\"c-loader\"\r\n></cui-svg>\r\n", styles: ["@font-face{font-family:Inter;font-style:normal;font-weight:500;src:url(../fonts/Inter-Medium.ttf) format(\"truetype\")}:root{--cui-main-font: Inter, sans-serif;--cui-gray-0: #FFFFFF;--cui-gray-10: #F9FAFB;--cui-gray-50: #F5F6F8;--cui-gray-100: #E9EBEE;--cui-gray-200: #E2E4E9;--cui-gray-500: #6B7280;--cui-gray-900: #111827;--cui-cyan-800: #297F7E;--cui-cyan-900: #1A6B6A;--cui-red-800: #D92D20;--cui-red-900: #B41308;--cui-blue-600: #1570EF;--cui-blue-900: #00429D;--cui-base-0: var(--cui-gray-0);--cui-base-10: var(--cui-gray-10);--cui-base-50: var(--cui-gray-50);--cui-base-100: var(--cui-gray-100);--cui-base-200: var(--cui-gray-200);--cui-base-500: var(--cui-gray-500);--cui-base-900: var(--cui-gray-900);--cui-primary-800: var(--cui-cyan-800);--cui-primary-900: var(--cui-cyan-900);--cui-error-800: var(--cui-red-800);--cui-error-900: var(--cui-red-900);--cui-info-600: var(--cui-blue-600);--cui-info-900: var(--cui-blue-900)}:host{font-size:14px;font-weight:500;line-height:20px;position:relative;box-sizing:border-box;border:0;border-radius:8px;outline:0;cursor:pointer;appearance:none;background:inherit;font-family:var(--cui-main-font);text-decoration:none}:host:disabled{cursor:not-allowed}:host[data-appearance=primary]{background:var(--cui-primary-800);color:var(--cui-base-0)}:host[data-appearance=primary]:hover{background:var(--cui-primary-900)}:host[data-appearance=primary]:disabled{background:var(--cui-primary-800)}:host[data-appearance=primary] .c-icon ::ng-deep path{stroke:var(--cui-base-0)}:host[data-appearance=secondary]{background:var(--cui-base-100);color:var(--cui-base-900)}:host[data-appearance=secondary]:hover{background:var(--cui-base-200)}:host[data-appearance=secondary]:disabled{background:var(--cui-base-100)}:host[data-appearance=secondary] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=outlined]{border:1px solid var(--cui-base-200);background:var(--cui-base-0);color:var(--cui-base-900)}:host[data-appearance=outlined]:hover{background:var(--cui-base-50)}:host[data-appearance=outlined]:disabled{background:var(--cui-base-0)}:host[data-appearance=outlined] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=outlined-gray]{border:1px solid var(--cui-base-200);background:var(--cui-base-10);color:var(--cui-base-900)}:host[data-appearance=outlined-gray]:hover{background:var(--cui-base-50)}:host[data-appearance=outlined-gray]:disabled{background:var(--cui-base-10)}:host[data-appearance=outlined-gray] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=ghost]{color:var(--cui-base-900)}:host[data-appearance=ghost]:hover{background:var(--cui-base-50)}:host[data-appearance=ghost]:disabled{background:inherit}:host[data-appearance=ghost] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=destructive]{background:var(--cui-error-800);color:var(--cui-base-0)}:host[data-appearance=destructive]:hover{background:var(--cui-error-900)}:host[data-appearance=destructive]:disabled{background:var(--cui-error-800)}:host[data-appearance=destructive] .c-icon ::ng-deep path{stroke:var(--cui-base-0)}:host[data-appearance=link]{height:24px!important;padding:0 4px!important;color:var(--cui-info-600)}:host[data-appearance=link]:hover{color:var(--cui-info-900)}:host[data-appearance=link]:hover .c-icon ::ng-deep path{stroke:var(--cui-info-900)}:host[data-appearance=link]:disabled{color:var(--cui-info-600)}:host[data-appearance=link]:disabled .c-icon ::ng-deep path{stroke:var(--cui-info-900)}:host[data-appearance=link] .c-icon ::ng-deep path{stroke:var(--cui-info-600)}:host[data-size=xxs]{font-size:12px;line-height:14px;height:28px;padding:0 8px}:host[data-size=xxs][data-appearance=outlined],:host[data-size=xxs][data-appearance=outlined-gray]{padding:0 7px}:host[data-size=xxs]._only-icon{width:28px}:host[data-size=xxs] .c-wrapper{gap:6px}:host[data-size=xs]{font-size:13px;line-height:16px;height:32px;padding:0 12px}:host[data-size=xs][data-appearance=outlined],:host[data-size=xs][data-appearance=outlined-gray]{padding:0 11px}:host[data-size=xs]._only-icon{width:32px}:host[data-size=sm]{height:36px;padding:0 14px}:host[data-size=sm][data-appearance=outlined],:host[data-size=sm][data-appearance=outlined-gray]{padding:0 13px}:host[data-size=sm]._only-icon{width:36px}:host[data-size=md]{height:40px;padding:0 18px}:host[data-size=md][data-appearance=outlined],:host[data-size=md][data-appearance=outlined-gray]{padding:0 17px}:host[data-size=md]._only-icon{width:40px}:host._disabled{opacity:.5}:host._loading :hover{background:unset}.c-wrapper{display:flex;justify-content:center;align-items:center;gap:8px;height:100%}.c-wrapper_invisible{opacity:0}.c-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "icon", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'button[cuiButton], a[cuiButton]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n class=\"c-wrapper\"\r\n [class.c-wrapper_invisible]=\"isLoaderShown\"\r\n>\r\n <cui-svg\r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n [width]=\"svgOptions.width\"\r\n [height]=\"svgOptions.height\"\r\n [strokeWidth]=\"svgOptions.strokeWidth\"\r\n class=\"c-icon\"\r\n ></cui-svg>\r\n <span #content *ngIf=\"!containsOnlyIcon\">\r\n <ng-content></ng-content>\r\n </span>\r\n <cui-svg\r\n *ngIf=\"iconRight\"\r\n [icon]=\"iconRight\"\r\n [width]=\"svgOptions.width\"\r\n [height]=\"svgOptions.height\"\r\n [strokeWidth]=\"svgOptions.strokeWidth\"\r\n class=\"c-icon\"\r\n ></cui-svg>\r\n</span>\r\n<cui-svg\r\n *ngIf=\"isLoaderShown\"\r\n [icon]=\"CUI_ICON_LOADING\"\r\n class=\"c-loader\"\r\n></cui-svg>\r\n", styles: ["@font-face{font-family:Inter;font-style:normal;font-weight:500;src:url(../fonts/Inter-Medium.ttf) format(\"truetype\")}:root{--cui-main-font: Inter, sans-serif;--cui-gray-0: #FFFFFF;--cui-gray-10: #F9FAFB;--cui-gray-50: #F5F6F8;--cui-gray-100: #E9EBEE;--cui-gray-200: #E2E4E9;--cui-gray-500: #6B7280;--cui-gray-900: #111827;--cui-cyan-800: #297F7E;--cui-cyan-900: #1A6B6A;--cui-red-800: #D92D20;--cui-red-900: #B41308;--cui-blue-600: #1570EF;--cui-blue-900: #00429D;--cui-base-0: var(--cui-gray-0);--cui-base-10: var(--cui-gray-10);--cui-base-50: var(--cui-gray-50);--cui-base-100: var(--cui-gray-100);--cui-base-200: var(--cui-gray-200);--cui-base-500: var(--cui-gray-500);--cui-base-900: var(--cui-gray-900);--cui-primary-800: var(--cui-cyan-800);--cui-primary-900: var(--cui-cyan-900);--cui-error-800: var(--cui-red-800);--cui-error-900: var(--cui-red-900);--cui-info-600: var(--cui-blue-600);--cui-info-900: var(--cui-blue-900)}:host{font-size:14px;font-weight:500;line-height:20px;position:relative;box-sizing:border-box;border:0;border-radius:8px;outline:0;cursor:pointer;appearance:none;background:inherit;font-family:var(--cui-main-font);text-decoration:none}:host:disabled{cursor:not-allowed}:host[data-appearance=primary]{background:var(--cui-primary-800);color:var(--cui-base-0)}:host[data-appearance=primary]:hover{background:var(--cui-primary-900)}:host[data-appearance=primary]:disabled{background:var(--cui-primary-800)}:host[data-appearance=primary] .c-icon ::ng-deep path{stroke:var(--cui-base-0)}:host[data-appearance=secondary]{background:var(--cui-base-100);color:var(--cui-base-900)}:host[data-appearance=secondary]:hover{background:var(--cui-base-200)}:host[data-appearance=secondary]:disabled{background:var(--cui-base-100)}:host[data-appearance=secondary] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=outlined]{border:1px solid var(--cui-base-200);background:var(--cui-base-0);color:var(--cui-base-900)}:host[data-appearance=outlined]:hover{background:var(--cui-base-50)}:host[data-appearance=outlined]:disabled{background:var(--cui-base-0)}:host[data-appearance=outlined] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=outlined-gray]{border:1px solid var(--cui-base-200);background:var(--cui-base-10);color:var(--cui-base-900)}:host[data-appearance=outlined-gray]:hover{background:var(--cui-base-50)}:host[data-appearance=outlined-gray]:disabled{background:var(--cui-base-10)}:host[data-appearance=outlined-gray] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=ghost]{color:var(--cui-base-900)}:host[data-appearance=ghost]:hover{background:var(--cui-base-50)}:host[data-appearance=ghost]:disabled{background:inherit}:host[data-appearance=ghost] .c-icon ::ng-deep path{stroke:var(--cui-base-500)}:host[data-appearance=destructive]{background:var(--cui-error-800);color:var(--cui-base-0)}:host[data-appearance=destructive]:hover{background:var(--cui-error-900)}:host[data-appearance=destructive]:disabled{background:var(--cui-error-800)}:host[data-appearance=destructive] .c-icon ::ng-deep path{stroke:var(--cui-base-0)}:host[data-appearance=link]{height:24px!important;padding:0 4px!important;color:var(--cui-info-600)}:host[data-appearance=link]:hover{color:var(--cui-info-900)}:host[data-appearance=link]:hover .c-icon ::ng-deep path{stroke:var(--cui-info-900)}:host[data-appearance=link]:disabled{color:var(--cui-info-600)}:host[data-appearance=link]:disabled .c-icon ::ng-deep path{stroke:var(--cui-info-900)}:host[data-appearance=link] .c-icon ::ng-deep path{stroke:var(--cui-info-600)}:host[data-size=xxs]{font-size:12px;line-height:14px;height:28px;padding:0 8px}:host[data-size=xxs][data-appearance=outlined],:host[data-size=xxs][data-appearance=outlined-gray]{padding:0 7px}:host[data-size=xxs]._only-icon{width:28px}:host[data-size=xxs] .c-wrapper{gap:6px}:host[data-size=xs]{font-size:13px;line-height:16px;height:32px;padding:0 12px}:host[data-size=xs][data-appearance=outlined],:host[data-size=xs][data-appearance=outlined-gray]{padding:0 11px}:host[data-size=xs]._only-icon{width:32px}:host[data-size=sm]{height:36px;padding:0 14px}:host[data-size=sm][data-appearance=outlined],:host[data-size=sm][data-appearance=outlined-gray]{padding:0 13px}:host[data-size=sm]._only-icon{width:36px}:host[data-size=md]{height:40px;padding:0 18px}:host[data-size=md][data-appearance=outlined],:host[data-size=md][data-appearance=outlined-gray]{padding:0 17px}:host[data-size=md]._only-icon{width:40px}:host._disabled{opacity:.5}:host._loading :hover{background:unset}.c-wrapper{display:flex;justify-content:center;align-items:center;gap:8px;height:100%}.c-wrapper_invisible{opacity:0}.c-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
72
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
73
+ type: Inject,
74
+ args: [CUI_BUTTON_OPTIONS]
75
+ }] }]; }, propDecorators: { appearance: [{
76
+ type: Input
77
+ }, {
78
+ type: HostBinding,
79
+ args: ['attr.data-appearance']
80
+ }], disabled: [{
81
+ type: Input
82
+ }, {
83
+ type: HostBinding,
84
+ args: ['class._disabled']
85
+ }], isLoaderShown: [{
86
+ type: Input
87
+ }, {
88
+ type: HostBinding,
89
+ args: ['class._loading']
90
+ }], icon: [{
91
+ type: Input
92
+ }], iconRight: [{
93
+ type: Input
94
+ }], size: [{
95
+ type: Input
96
+ }, {
97
+ type: HostBinding,
98
+ args: ['attr.data-size']
99
+ }], containsOnlyIcon: [{
100
+ type: HostBinding,
101
+ args: ['class._only-icon']
102
+ }], isDisabled: [{
103
+ type: HostBinding,
104
+ args: ['disabled']
105
+ }], content: [{
106
+ type: ViewChild,
107
+ args: ['content']
108
+ }] } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQVF4RSxNQUFNLE9BQU8sa0JBQWtCO0lBeUM3QixJQUVJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQThCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxNQUFNLEVBQUUsRUFBRTtnQkFDVixXQUFXLEVBQUUsR0FBRzthQUNqQixDQUFDO1lBRUYsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsV0FBVyxFQUFFLEdBQUc7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFLRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBS0QsWUFBNkIsaUJBQW9DLEVBQ1IsZ0JBQWtDO1FBRDlELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDUixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBOUUzRixxQkFBZ0IsR0FBSTs7Ozs7Ozs7Ozs7OztHQWFuQixDQUFDO1FBRUYsVUFBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDbkMsZUFBVSxHQUFHO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtZQUNWLFdBQVcsRUFBRSxHQUFHO1NBQ2pCLENBQUM7UUFJRixlQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztRQUk5QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBbUN0QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFZekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUU1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEE1RlUsa0JBQWtCLG1EQStFVCxrQkFBa0I7b0dBL0UzQixrQkFBa0IsdWpCQ3BCL0IsNnZCQTZCQTs0RkRUYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFpRmxDLE1BQU07MkJBQUMsa0JBQWtCOzRDQXREdEMsVUFBVTtzQkFGVCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFLbkMsUUFBUTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFLOUIsYUFBYTtzQkFGWixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFJN0IsSUFBSTtzQkFESCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLRixJQUFJO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQTBCN0IsZ0JBQWdCO3NCQURmLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkzQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsVUFBVTtnQkFNdkIsT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ1VJX0JVVFRPTl9PUFRJT05TLCBDdWlCdXR0b25PcHRpb25zIH0gZnJvbSAnLi9idXR0b24ub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2J1dHRvbltjdWlCdXR0b25dLCBhW2N1aUJ1dHRvbl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDdWlCdXR0b25PcHRpb25zIHtcbiAgQ1VJX0lDT05fTE9BRElORyA9ICBgXG4gICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcbiAgICAgICAgdHlwZT1cInJvdGF0ZVwiXG4gICAgICAgIGZyb209XCIwXCJcbiAgICAgICAgdG89XCIzNjBcIlxuICAgICAgICBkdXI9XCIyXCJcbiAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCI+XG4gICAgICA8L2FuaW1hdGVUcmFuc2Zvcm0+XG4gICAgICA8cGF0aCBvcGFjaXR5PVwiMC41XCIgZD1cIk0xMiAyQzEwLjAyMjIgMiA4LjA4ODc5IDIuNTg2NDkgNi40NDQzIDMuNjg1M0M0Ljc5OTgxIDQuNzg0MTIgMy41MTgwOSA2LjM0NTkgMi43NjEyMSA4LjE3MzE3QzIuMDA0MzMgMTAuMDAwNCAxLjgwNjMgMTIuMDExMSAyLjE5MjE1IDEzLjk1MDlDMi41NzggMTUuODkwNyAzLjUzMDQxIDE3LjY3MjUgNC45Mjg5NCAxOS4wNzExQzYuMzI3NDYgMjAuNDY5NiA4LjEwOTI5IDIxLjQyMiAxMC4wNDkxIDIxLjgwNzlDMTEuOTg4OSAyMi4xOTM3IDEzLjk5OTYgMjEuOTk1NyAxNS44MjY4IDIxLjIzODhDMTcuNjU0MSAyMC40ODE5IDE5LjIxNTkgMTkuMjAwMiAyMC4zMTQ3IDE3LjU1NTdDMjEuNDEzNSAxNS45MTEyIDIyIDEzLjk3NzggMjIgMTJDMjIgMTAuNjg2OCAyMS43NDEzIDkuMzg2NDIgMjEuMjM4OCA4LjE3MzE3QzIwLjczNjMgNi45NTk5MSAxOS45OTk3IDUuODU3NTIgMTkuMDcxMSA0LjkyODkzQzE4LjE0MjUgNC4wMDAzNSAxNy4wNDAxIDMuMjYzNzUgMTUuODI2OCAyLjc2MTJDMTQuNjEzNiAyLjI1ODY2IDEzLjMxMzIgMiAxMiAyWk0xMiAyMEMxMC40MTc4IDIwIDguODcxMDQgMTkuNTMwOCA3LjU1NTQ0IDE4LjY1MThDNi4yMzk4NSAxNy43NzI3IDUuMjE0NDcgMTYuNTIzMyA0LjYwODk3IDE1LjA2MTVDNC4wMDM0NyAxMy41OTk3IDMuODQ1MDQgMTEuOTkxMSA0LjE1MzcyIDEwLjQzOTNDNC40NjI0IDguODg3NDMgNS4yMjQzMyA3LjQ2MTk3IDYuMzQzMTUgNi4zNDMxNUM3LjQ2MTk3IDUuMjI0MzMgOC44ODc0MyA0LjQ2MjQgMTAuNDM5MyA0LjE1MzcyQzExLjk5MTEgMy44NDUwNCAxMy41OTk3IDQuMDAzNDYgMTUuMDYxNSA0LjYwODk2QzE2LjUyMzMgNS4yMTQ0NyAxNy43NzI3IDYuMjM5ODQgMTguNjUxOCA3LjU1NTQ0QzE5LjUzMDggOC44NzEwMyAyMCAxMC40MTc3IDIwIDEyQzIwIDE0LjEyMTcgMTkuMTU3MiAxNi4xNTY2IDE3LjY1NjkgMTcuNjU2OUMxNi4xNTY2IDE5LjE1NzEgMTQuMTIxNyAyMCAxMiAyMFpcIiBmaWxsPVwid2hpdGVcIiBmaWxsLW9wYWNpdHk9XCIwLjVcIi8+XG4gICAgICA8cGF0aCBkPVwiTTIwIDEySDIyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlY0QzE0LjEyMTcgNCAxNi4xNTY2IDQuODQyODUgMTcuNjU2OSA2LjM0MzE1QzE5LjE1NzEgNy44NDM0NCAyMCA5Ljg3ODI3IDIwIDEyWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICA8L3N2Zz5cbiAgYDtcblxuICBfc2l6ZSA9IHRoaXMuY3VpQnV0dG9uT3B0aW9ucy5zaXplO1xuICBzdmdPcHRpb25zID0ge1xuICAgIHdpZHRoOiAyMCxcbiAgICBoZWlnaHQ6IDIwLFxuICAgIHN0cm9rZVdpZHRoOiAxLjVcbiAgfTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1hcHBlYXJhbmNlJylcbiAgYXBwZWFyYW5jZSA9IHRoaXMuY3VpQnV0dG9uT3B0aW9ucy5hcHBlYXJhbmNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuX2Rpc2FibGVkJylcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9sb2FkaW5nJylcbiAgaXNMb2FkZXJTaG93biA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaWNvblJpZ2h0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICBnZXQgc2l6ZSgpOiBDdWlCdXR0b25PcHRpb25zWydzaXplJ10ge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgc2V0IHNpemUoc2l6ZTogQ3VpQnV0dG9uT3B0aW9uc1snc2l6ZSddKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHNpemU7XG5cbiAgICBpZiAoc2l6ZSA9PT0gJ3h4cycpIHtcbiAgICAgIHRoaXMuc3ZnT3B0aW9ucyA9IHtcbiAgICAgICAgd2lkdGg6IDE2LFxuICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICBzdHJva2VXaWR0aDogMS41XG4gICAgICB9O1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdmdPcHRpb25zID0ge1xuICAgICAgd2lkdGg6IDIwLFxuICAgICAgaGVpZ2h0OiAyMCxcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjVcbiAgICB9O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fb25seS1pY29uJylcbiAgY29udGFpbnNPbmx5SWNvbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnZGlzYWJsZWQnKVxuICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzTG9hZGVyU2hvd247XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb250ZW50JylcbiAgY29udGVudCE6IEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgQEluamVjdChDVUlfQlVUVE9OX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgY3VpQnV0dG9uT3B0aW9uczogQ3VpQnV0dG9uT3B0aW9ucykge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdENvbnRhaW5zT25seUljb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbnRhaW5zT25seUljb24oKTogdm9pZCB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRhaW5zT25seUljb24gPSAgdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDA7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8c3BhblxyXG4gIGNsYXNzPVwiYy13cmFwcGVyXCJcclxuICBbY2xhc3MuYy13cmFwcGVyX2ludmlzaWJsZV09XCJpc0xvYWRlclNob3duXCJcclxuPlxyXG4gIDxjdWktc3ZnXHJcbiAgICAqbmdJZj1cImljb25cIlxyXG4gICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICBbd2lkdGhdPVwic3ZnT3B0aW9ucy53aWR0aFwiXHJcbiAgICBbaGVpZ2h0XT1cInN2Z09wdGlvbnMuaGVpZ2h0XCJcclxuICAgIFtzdHJva2VXaWR0aF09XCJzdmdPcHRpb25zLnN0cm9rZVdpZHRoXCJcclxuICAgIGNsYXNzPVwiYy1pY29uXCJcclxuICA+PC9jdWktc3ZnPlxyXG4gIDxzcGFuICNjb250ZW50ICpuZ0lmPVwiIWNvbnRhaW5zT25seUljb25cIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L3NwYW4+XHJcbiAgPGN1aS1zdmdcclxuICAgICpuZ0lmPVwiaWNvblJpZ2h0XCJcclxuICAgIFtpY29uXT1cImljb25SaWdodFwiXHJcbiAgICBbd2lkdGhdPVwic3ZnT3B0aW9ucy53aWR0aFwiXHJcbiAgICBbaGVpZ2h0XT1cInN2Z09wdGlvbnMuaGVpZ2h0XCJcclxuICAgIFtzdHJva2VXaWR0aF09XCJzdmdPcHRpb25zLnN0cm9rZVdpZHRoXCJcclxuICAgIGNsYXNzPVwiYy1pY29uXCJcclxuICA+PC9jdWktc3ZnPlxyXG48L3NwYW4+XHJcbjxjdWktc3ZnXHJcbiAgKm5nSWY9XCJpc0xvYWRlclNob3duXCJcclxuICBbaWNvbl09XCJDVUlfSUNPTl9MT0FESU5HXCJcclxuICBjbGFzcz1cImMtbG9hZGVyXCJcclxuPjwvY3VpLXN2Zz5cclxuIl19
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CuiSvgModule } from '@cuby-ui/core/components/svg';
4
+ import { CuiButtonComponent } from './button.component';
5
+ import * as i0 from "@angular/core";
6
+ export class CuiButtonModule {
7
+ }
8
+ CuiButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ CuiButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonModule, declarations: [CuiButtonComponent], imports: [CommonModule,
10
+ CuiSvgModule], exports: [CuiButtonComponent] });
11
+ CuiButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonModule, imports: [CommonModule,
12
+ CuiSvgModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiButtonModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [
17
+ CommonModule,
18
+ CuiSvgModule
19
+ ],
20
+ declarations: [CuiButtonComponent],
21
+ exports: [CuiButtonComponent]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVXhELE1BQU0sT0FBTyxlQUFlOzs2R0FBZixlQUFlOzhHQUFmLGVBQWUsaUJBSFgsa0JBQWtCLGFBSC9CLFlBQVk7UUFDWixZQUFZLGFBR0osa0JBQWtCOzhHQUVqQixlQUFlLFlBTnhCLFlBQVk7UUFDWixZQUFZOzRGQUtILGVBQWU7a0JBUjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEN1aVN2Z01vZHVsZSB9IGZyb20gJ0BjdWJ5LXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEN1aVN2Z01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtDdWlCdXR0b25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbQ3VpQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDdWlCdXR0b25Nb2R1bGUge1xufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const CUI_BUTTON_DEFAULT_OPTIONS = {
3
+ appearance: 'primary',
4
+ size: 'sm'
5
+ };
6
+ export const CUI_BUTTON_OPTIONS = new InjectionToken('', {
7
+ factory: () => CUI_BUTTON_DEFAULT_OPTIONS
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFnQy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFxQjtJQUMxRCxVQUFVLEVBQUUsU0FBUztJQUNyQixJQUFJLEVBQUUsSUFBSTtDQUNYLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUU7SUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLDBCQUEwQjtDQUMxQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDdWlBcHBlYXJhbmNlRGVzdHJ1Y3RpdmUsXHJcbiAgQ3VpQXBwZWFyYW5jZUdob3N0LFxyXG4gIEN1aUFwcGVhcmFuY2VMaW5rLFxyXG4gIEN1aUFwcGVhcmFuY2VPdXRsaW5lZCxcclxuICBDdWlBcHBlYXJhbmNlT3V0bGluZWRHcmF5LFxyXG4gIEN1aUFwcGVhcmFuY2VQcmltYXJ5LFxyXG4gIEN1aUFwcGVhcmFuY2VTZWNvbmRhcnksXHJcbiAgQ3VpU2l6ZU1kLFxyXG4gIEN1aVNpemVTbSxcclxuICBDdWlTaXplWHMsXHJcbiAgQ3VpU2l6ZVh4c1xyXG59IGZyb20gJ0BjdWJ5LXVpL2NvcmUvdHlwZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWlCdXR0b25PcHRpb25zIHtcclxuICByZWFkb25seSBhcHBlYXJhbmNlOlxyXG4gICAgfCBDdWlBcHBlYXJhbmNlUHJpbWFyeVxyXG4gICAgfCBDdWlBcHBlYXJhbmNlU2Vjb25kYXJ5XHJcbiAgICB8IEN1aUFwcGVhcmFuY2VPdXRsaW5lZFxyXG4gICAgfCBDdWlBcHBlYXJhbmNlT3V0bGluZWRHcmF5XHJcbiAgICB8IEN1aUFwcGVhcmFuY2VHaG9zdFxyXG4gICAgfCBDdWlBcHBlYXJhbmNlRGVzdHJ1Y3RpdmVcclxuICAgIHwgQ3VpQXBwZWFyYW5jZUxpbmtcclxuICByZWFkb25seSBzaXplOlxyXG4gICAgfCBDdWlTaXplWHhzXHJcbiAgICB8IEN1aVNpemVYc1xyXG4gICAgfCBDdWlTaXplU21cclxuICAgIHwgQ3VpU2l6ZU1kO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ1VJX0JVVFRPTl9ERUZBVUxUX09QVElPTlM6IEN1aUJ1dHRvbk9wdGlvbnMgPSB7XHJcbiAgYXBwZWFyYW5jZTogJ3ByaW1hcnknLFxyXG4gIHNpemU6ICdzbSdcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDVUlfQlVUVE9OX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJycsIHtcclxuICBmYWN0b3J5OiAoKSA9PiBDVUlfQlVUVE9OX0RFRkFVTFRfT1BUSU9OU1xyXG59KTsiXX0=
@@ -0,0 +1,4 @@
1
+ export * from './button.component';
2
+ export * from './button.module';
3
+ export * from './button.options';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9idXR0b24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9idXR0b24ub3B0aW9ucyc7Il19
@@ -0,0 +1,3 @@
1
+ export * from '@cuby-ui/core/components/button';
2
+ export * from '@cuby-ui/core/components/svg';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnQGN1YnktdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XHJcbmV4cG9ydCAqIGZyb20gJ0BjdWJ5LXVpL2NvcmUvY29tcG9uZW50cy9zdmcnOyJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './svg.component';
2
+ export * from './svg.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3ZnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N2Zy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N2Zy5tb2R1bGUnO1xyXG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class CuiSvgComponent {
5
+ set icon(icon) {
6
+ this.safeSvgContent = this.domSanitizer.bypassSecurityTrustHtml(icon);
7
+ }
8
+ ;
9
+ set strokeWidth(strokeWidth) {
10
+ this._strokeWidth = strokeWidth;
11
+ this.updateStrokeWidth();
12
+ }
13
+ constructor(domSanitizer, elementRef) {
14
+ this.domSanitizer = domSanitizer;
15
+ this.elementRef = elementRef;
16
+ this.STROKE_WIDTH_ATTRIBUTE = 'stroke-width';
17
+ }
18
+ ngAfterViewInit() {
19
+ this.updateStrokeWidth();
20
+ }
21
+ updateStrokeWidth() {
22
+ if (this._strokeWidth === undefined) {
23
+ return;
24
+ }
25
+ this.elementRef.nativeElement.querySelectorAll(`[${this.STROKE_WIDTH_ATTRIBUTE}]`)
26
+ .forEach(element => {
27
+ element.setAttribute(this.STROKE_WIDTH_ATTRIBUTE, this._strokeWidth.toString());
28
+ });
29
+ }
30
+ }
31
+ CuiSvgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
32
+ CuiSvgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: { width: "width", height: "height", icon: "icon", strokeWidth: "strokeWidth" }, ngImport: i0, template: "<span\r\n [innerHTML]=\"safeSvgContent\"\r\n [style.width.px]=\"width\"\r\n [style.height.px]=\"height\"\r\n></span>", styles: [":host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;line-height:0}:host ::ng-deep svg{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'cui-svg[icon]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n [innerHTML]=\"safeSvgContent\"\r\n [style.width.px]=\"width\"\r\n [style.height.px]=\"height\"\r\n></span>", styles: [":host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;line-height:0}:host ::ng-deep svg{width:100%;height:100%}\n"] }]
36
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.ElementRef }]; }, propDecorators: { width: [{
37
+ type: Input
38
+ }], height: [{
39
+ type: Input
40
+ }], icon: [{
41
+ type: Input
42
+ }], strokeWidth: [{
43
+ type: Input
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDOzs7QUFTdkIsTUFBTSxPQUFPLGVBQWU7SUFZMUIsSUFDSSxJQUFJLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUFBLENBQUM7SUFFRixJQUNJLFdBQVcsQ0FBQyxXQUErQjtRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUVoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBNkIsWUFBMEIsRUFDMUIsVUFBbUM7UUFEbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUF4QmhFLDJCQUFzQixHQUFHLGNBQWMsQ0FBQztJQXlCeEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQzthQUMvRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NkdBekNVLGVBQWU7aUdBQWYsZUFBZSw2SUNmNUIseUhBSVE7NEZEV0ssZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07NEhBUy9DLEtBQUs7c0JBREosS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSUYsSUFBSTtzQkFEUCxLQUFLO2dCQU1GLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktc3ZnW2ljb25dJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N2Zy50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3ZnLnN0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpU3ZnQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIFNUUk9LRV9XSURUSF9BVFRSSUJVVEUgPSAnc3Ryb2tlLXdpZHRoJztcblxuICBzYWZlU3ZnQ29udGVudCE6IFNhZmVIdG1sO1xuICBfc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgd2lkdGg/OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgaGVpZ2h0PzogbnVtYmVyXG5cbiAgQElucHV0KClcbiAgc2V0IGljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5zYWZlU3ZnQ29udGVudCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb24pO1xuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdHJva2VXaWR0aChzdHJva2VXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc3Ryb2tlV2lkdGggPSBzdHJva2VXaWR0aDtcblxuICAgIHRoaXMudXBkYXRlU3Ryb2tlV2lkdGgoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVN0cm9rZVdpZHRoKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0cm9rZVdpZHRoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdHJva2VXaWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChgWyR7dGhpcy5TVFJPS0VfV0lEVEhfQVRUUklCVVRFfV1gKVxuICAgICAgLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuU1RST0tFX1dJRFRIX0FUVFJJQlVURSwgdGhpcy5fc3Ryb2tlV2lkdGghLnRvU3RyaW5nKCkpXG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNwYW5cclxuICBbaW5uZXJIVE1MXT1cInNhZmVTdmdDb250ZW50XCJcclxuICBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIlxyXG4gIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcclxuPjwvc3Bhbj4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CuiSvgComponent } from './svg.component';
4
+ import * as i0 from "@angular/core";
5
+ export class CuiSvgModule {
6
+ }
7
+ CuiSvgModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ CuiSvgModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgModule, declarations: [CuiSvgComponent], imports: [CommonModule], exports: [CuiSvgComponent] });
9
+ CuiSvgModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSvgModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [CuiSvgComponent],
15
+ exports: [CuiSvgComponent]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zdmcvc3ZnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxZQUFZOzswR0FBWixZQUFZOzJHQUFaLFlBQVksaUJBSFIsZUFBZSxhQURwQixZQUFZLGFBRVosZUFBZTsyR0FFZCxZQUFZLFlBSmIsWUFBWTs0RkFJWCxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEN1aVN2Z0NvbXBvbmVudCB9IGZyb20gJy4vc3ZnLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtDdWlTdmdDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQ3VpU3ZnQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDdWlTdmdNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VpLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2N1aS1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvY29yZS9mLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from '@cuby-ui/core/components';
2
+ export * from '@cuby-ui/core/types';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0BjdWJ5LXVpL2NvcmUvY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJ0BjdWJ5LXVpL2NvcmUvdHlwZXMnOyJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZWFyYW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdHlwZXMvYXBwZWFyYW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ3VpQXBwZWFyYW5jZVByaW1hcnkgPSAncHJpbWFyeSc7XHJcblxyXG5leHBvcnQgdHlwZSBDdWlBcHBlYXJhbmNlU2Vjb25kYXJ5ID0gJ3NlY29uZGFyeSc7XHJcblxyXG5leHBvcnQgdHlwZSBDdWlBcHBlYXJhbmNlT3V0bGluZWQgPSAnb3V0bGluZWQnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VpQXBwZWFyYW5jZU91dGxpbmVkR3JheSA9ICdvdXRsaW5lZC1ncmF5JztcclxuXHJcbmV4cG9ydCB0eXBlIEN1aUFwcGVhcmFuY2VHaG9zdCA9ICdnaG9zdCc7XHJcblxyXG5leHBvcnQgdHlwZSBDdWlBcHBlYXJhbmNlRGVzdHJ1Y3RpdmUgPSAnZGVzdHJ1Y3RpdmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VpQXBwZWFyYW5jZUxpbmsgPSAnbGluayc7Il19
@@ -0,0 +1,3 @@
1
+ export * from './appearance';
2
+ export * from './size';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBlYXJhbmNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaXplJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdHlwZXMvc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ3VpU2l6ZVh4cyA9ICd4eHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VpU2l6ZVhzID0gJ3hzJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1aVNpemVTbSA9ICAnc20nO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VpU2l6ZU1kID0gJ21kJztcclxuIl19
@@ -0,0 +1,7 @@
1
+ export * from '@cuby-ui/core/components';
2
+ export * from '@cuby-ui/core/types';
3
+
4
+ /**
5
+ * Generated bundle index. Do not edit.
6
+ */
7
+ //# sourceMappingURL=cui-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cui-core.mjs","sources":["../../../projects/core/cui-core.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG"}
@@ -0,0 +1,7 @@
1
+ export * from '@cuby-ui/core/components';
2
+ export * from '@cuby-ui/core/types';
3
+
4
+ /**
5
+ * Generated bundle index. Do not edit.
6
+ */
7
+ //# sourceMappingURL=f-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"f-core.mjs","sources":["../../../projects/core/f-core.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG"}
@@ -0,0 +1,7 @@
1
+ export * from '@cuby-ui/core/components';
2
+ export * from '@cuby-ui/core/types';
3
+
4
+ /**
5
+ * Generated bundle index. Do not edit.
6
+ */
7
+ //# sourceMappingURL=cui-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cui-core.mjs","sources":["../../../projects/core/cui-core.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG"}
@@ -0,0 +1,7 @@
1
+ export * from '@cuby-ui/core/components';
2
+ export * from '@cuby-ui/core/types';
3
+
4
+ /**
5
+ * Generated bundle index. Do not edit.
6
+ */
7
+ //# sourceMappingURL=f-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"f-core.mjs","sources":["../../../projects/core/f-core.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG"}
@@ -1,2 +1,2 @@
1
1
  export * from '@cuby-ui/core/components';
2
- export * from '@cuby-ui/core/types';
2
+ export * from '@cuby-ui/core/types';
package/package.json CHANGED
@@ -1,12 +1,31 @@
1
1
  {
2
2
  "name": "@cuby-ui/core",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
- "@angular/common": "^15.2.0",
6
- "@angular/core": "^15.2.0"
5
+ "@angular/common": ">=15.0.0",
6
+ "@angular/core": ">=15.0.0"
7
7
  },
8
8
  "dependencies": {
9
9
  "tslib": "^2.3.0"
10
10
  },
11
- "sideEffects": false
12
- }
11
+ "sideEffects": false,
12
+ "module": "fesm2015/f-core.mjs",
13
+ "es2020": "fesm2020/f-core.mjs",
14
+ "esm2020": "esm2020/f-core.mjs",
15
+ "fesm2020": "fesm2020/f-core.mjs",
16
+ "fesm2015": "fesm2015/f-core.mjs",
17
+ "typings": "index.d.ts",
18
+ "exports": {
19
+ "./package.json": {
20
+ "default": "./package.json"
21
+ },
22
+ ".": {
23
+ "types": "./index.d.ts",
24
+ "esm2020": "./esm2020/f-core.mjs",
25
+ "es2020": "./fesm2020/f-core.mjs",
26
+ "es2015": "./fesm2015/f-core.mjs",
27
+ "node": "./fesm2015/f-core.mjs",
28
+ "default": "./fesm2020/f-core.mjs"
29
+ }
30
+ }
31
+ }
@@ -1,13 +1,7 @@
1
1
  export type CuiAppearancePrimary = 'primary';
2
-
3
2
  export type CuiAppearanceSecondary = 'secondary';
4
-
5
3
  export type CuiAppearanceOutlined = 'outlined';
6
-
7
4
  export type CuiAppearanceOutlinedGray = 'outlined-gray';
8
-
9
5
  export type CuiAppearanceGhost = 'ghost';
10
-
11
6
  export type CuiAppearanceDestructive = 'destructive';
12
-
13
- export type CuiAppearanceLink = 'link';
7
+ export type CuiAppearanceLink = 'link';
@@ -1,2 +1,2 @@
1
1
  export * from './appearance';
2
- export * from './size';
2
+ export * from './size';
@@ -1,7 +1,4 @@
1
1
  export type CuiSizeXxs = 'xxs';
2
-
3
2
  export type CuiSizeXs = 'xs';
4
-
5
- export type CuiSizeSm = 'sm';
6
-
3
+ export type CuiSizeSm = 'sm';
7
4
  export type CuiSizeMd = 'md';
@@ -1,114 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- ChangeDetectionStrategy,
4
- ChangeDetectorRef,
5
- Component,
6
- ElementRef,
7
- HostBinding,
8
- Inject,
9
- Input,
10
- ViewChild
11
- } from '@angular/core';
12
-
13
- import { CUI_BUTTON_OPTIONS, CuiButtonOptions } from './button.options';
14
-
15
- @Component({
16
- selector: 'button[cuiButton], a[cuiButton]',
17
- templateUrl: './button.template.html',
18
- styleUrls: ['./button.style.scss'],
19
- changeDetection: ChangeDetectionStrategy.OnPush
20
- })
21
- export class CuiButtonComponent implements AfterViewInit, CuiButtonOptions {
22
- CUI_ICON_LOADING = `
23
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
24
- <animateTransform
25
- attributeName="transform"
26
- type="rotate"
27
- from="0"
28
- to="360"
29
- dur="2"
30
- repeatCount="indefinite">
31
- </animateTransform>
32
- <path opacity="0.5" d="M12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z" fill="white" fill-opacity="0.5"/>
33
- <path d="M20 12H22C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7362 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2V4C14.1217 4 16.1566 4.84285 17.6569 6.34315C19.1571 7.84344 20 9.87827 20 12Z" fill="white"/>
34
- </svg>
35
- `;
36
-
37
- _size = this.cuiButtonOptions.size;
38
- svgOptions = {
39
- width: 20,
40
- height: 20,
41
- strokeWidth: 1.5
42
- };
43
-
44
- @Input()
45
- @HostBinding('attr.data-appearance')
46
- appearance = this.cuiButtonOptions.appearance;
47
-
48
- @Input()
49
- @HostBinding('class._disabled')
50
- disabled = false;
51
-
52
- @Input()
53
- @HostBinding('class._loading')
54
- isLoaderShown = false;
55
-
56
- @Input()
57
- icon?: string;
58
-
59
- @Input()
60
- iconRight?: string;
61
-
62
- @Input()
63
- @HostBinding('attr.data-size')
64
- get size(): CuiButtonOptions['size'] {
65
- return this._size;
66
- }
67
-
68
- set size(size: CuiButtonOptions['size']) {
69
- this._size = size;
70
-
71
- if (size === 'xxs') {
72
- this.svgOptions = {
73
- width: 16,
74
- height: 16,
75
- strokeWidth: 1.5
76
- };
77
-
78
- return;
79
- }
80
-
81
- this.svgOptions = {
82
- width: 20,
83
- height: 20,
84
- strokeWidth: 1.5
85
- };
86
- }
87
-
88
- @HostBinding('class._only-icon')
89
- containsOnlyIcon = false;
90
-
91
- @HostBinding('disabled')
92
- get isDisabled(): boolean {
93
- return this.disabled || this.isLoaderShown;
94
- }
95
-
96
- @ViewChild('content')
97
- content!: ElementRef<HTMLSpanElement>;
98
-
99
- constructor(private readonly changeDetectorRef: ChangeDetectorRef,
100
- @Inject(CUI_BUTTON_OPTIONS) private readonly cuiButtonOptions: CuiButtonOptions) {
101
- }
102
-
103
- ngAfterViewInit(): void {
104
- this.initContainsOnlyIcon();
105
- }
106
-
107
- private initContainsOnlyIcon(): void {
108
- Promise.resolve().then(() => {
109
- this.containsOnlyIcon = this.content.nativeElement.childNodes.length === 0;
110
-
111
- this.changeDetectorRef.detectChanges();
112
- });
113
- }
114
- }
@@ -1,17 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
-
4
- import { CuiSvgModule } from '@cuby-ui/core/components/svg';
5
-
6
- import { CuiButtonComponent } from './button.component';
7
-
8
- @NgModule({
9
- imports: [
10
- CommonModule,
11
- CuiSvgModule
12
- ],
13
- declarations: [CuiButtonComponent],
14
- exports: [CuiButtonComponent]
15
- })
16
- export class CuiButtonModule {
17
- }
@@ -1,40 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
-
3
- import {
4
- CuiAppearanceDestructive,
5
- CuiAppearanceGhost,
6
- CuiAppearanceLink,
7
- CuiAppearanceOutlined,
8
- CuiAppearanceOutlinedGray,
9
- CuiAppearancePrimary,
10
- CuiAppearanceSecondary,
11
- CuiSizeMd,
12
- CuiSizeSm,
13
- CuiSizeXs,
14
- CuiSizeXxs
15
- } from '@cuby-ui/core/types';
16
-
17
- export interface CuiButtonOptions {
18
- readonly appearance:
19
- | CuiAppearancePrimary
20
- | CuiAppearanceSecondary
21
- | CuiAppearanceOutlined
22
- | CuiAppearanceOutlinedGray
23
- | CuiAppearanceGhost
24
- | CuiAppearanceDestructive
25
- | CuiAppearanceLink
26
- readonly size:
27
- | CuiSizeXxs
28
- | CuiSizeXs
29
- | CuiSizeSm
30
- | CuiSizeMd;
31
- }
32
-
33
- export const CUI_BUTTON_DEFAULT_OPTIONS: CuiButtonOptions = {
34
- appearance: 'primary',
35
- size: 'sm'
36
- };
37
-
38
- export const CUI_BUTTON_OPTIONS = new InjectionToken('', {
39
- factory: () => CUI_BUTTON_DEFAULT_OPTIONS
40
- });
@@ -1,290 +0,0 @@
1
- @use '../../styles/cuby-ui-global' as *;
2
-
3
- $size-xxs: 28px;
4
- $size-xs: 32px;
5
- $size-sm: 36px;
6
- $size-md: 40px;
7
-
8
- $padding-xxs: 8px;
9
- $padding-xs: 12px;
10
- $padding-sm: 14px;
11
- $padding-md: 18px;
12
-
13
- $border-size: 1px;
14
-
15
- :host {
16
- @include text-sm-medium();
17
-
18
- position: relative;
19
- box-sizing: border-box;
20
- border: 0;
21
- border-radius: 8px;
22
- outline: 0;
23
- cursor: pointer;
24
- appearance: none;
25
- background: inherit;
26
- font-family: $cui-main-font;
27
- text-decoration: none;
28
-
29
- &:disabled {
30
- cursor: not-allowed;
31
- }
32
-
33
- &[data-appearance='primary'] {
34
- background: $cui-primary-800;
35
- color: $cui-base-0;
36
-
37
- &:hover {
38
- background: $cui-primary-900;
39
- }
40
-
41
- &:disabled {
42
- background: $cui-primary-800;
43
- }
44
-
45
- .c-icon {
46
- ::ng-deep {
47
- path {
48
- stroke: $cui-base-0;
49
- }
50
- }
51
- }
52
- }
53
-
54
- &[data-appearance='secondary'] {
55
- background: $cui-base-100;
56
- color: $cui-base-900;
57
-
58
- &:hover {
59
- background: $cui-base-200;
60
- }
61
-
62
- &:disabled {
63
- background: $cui-base-100;
64
- }
65
-
66
- .c-icon {
67
- ::ng-deep {
68
- path {
69
- stroke: $cui-base-500;
70
- }
71
- }
72
- }
73
- }
74
-
75
- &[data-appearance='outlined'] {
76
- border: 1px solid $cui-base-200;
77
- background: $cui-base-0;
78
- color: $cui-base-900;
79
-
80
- &:hover {
81
- background: $cui-base-50;
82
- }
83
-
84
- &:disabled {
85
- background: $cui-base-0;
86
- }
87
-
88
- .c-icon {
89
- ::ng-deep {
90
- path {
91
- stroke: $cui-base-500;
92
- }
93
- }
94
- }
95
- }
96
-
97
- &[data-appearance='outlined-gray'] {
98
- border: 1px solid $cui-base-200;
99
- background: $cui-base-10;
100
- color: $cui-base-900;
101
-
102
- &:hover {
103
- background: $cui-base-50;
104
- }
105
-
106
- &:disabled {
107
- background: $cui-base-10;
108
- }
109
-
110
- .c-icon {
111
- ::ng-deep {
112
- path {
113
- stroke: $cui-base-500;
114
- }
115
- }
116
- }
117
- }
118
-
119
- &[data-appearance='ghost'] {
120
- color: $cui-base-900;
121
-
122
- &:hover {
123
- background: $cui-base-50;
124
- }
125
-
126
- &:disabled {
127
- background: inherit;
128
- }
129
-
130
- .c-icon {
131
- ::ng-deep {
132
- path {
133
- stroke: $cui-base-500;
134
- }
135
- }
136
- }
137
- }
138
-
139
- &[data-appearance='destructive'] {
140
- background: $cui-error-800;
141
- color: $cui-base-0;
142
-
143
- &:hover {
144
- background: $cui-error-900;
145
- }
146
-
147
- &:disabled {
148
- background: $cui-error-800;
149
- }
150
-
151
- .c-icon {
152
- ::ng-deep {
153
- path {
154
- stroke: $cui-base-0;
155
- }
156
- }
157
- }
158
- }
159
-
160
- &[data-appearance='link'] {
161
- height: 24px !important;
162
- padding: 0 4px !important;
163
- color: $cui-info-600;
164
-
165
- &:hover {
166
- color: $cui-info-900;
167
-
168
- .c-icon {
169
- ::ng-deep {
170
- path {
171
- stroke: $cui-info-900;
172
- }
173
- }
174
- }
175
- }
176
-
177
- &:disabled {
178
- color: $cui-info-600;
179
-
180
- .c-icon {
181
- ::ng-deep {
182
- path {
183
- stroke: $cui-info-900;
184
- }
185
- }
186
- }
187
- }
188
-
189
- .c-icon {
190
- ::ng-deep {
191
- path {
192
- stroke: $cui-info-600;
193
- }
194
- }
195
- }
196
- }
197
-
198
- &[data-size='xxs'] {
199
- @include text-xxs();
200
-
201
- height: $size-xxs;
202
- padding: 0 $padding-xxs;
203
-
204
- &[data-appearance='outlined'],
205
- &[data-appearance='outlined-gray'] {
206
- padding: 0 ($padding-xxs - $border-size);
207
- }
208
-
209
- &._only-icon {
210
- width: $size-xxs;
211
- }
212
-
213
- .c-wrapper {
214
- gap: 6px;
215
- }
216
- }
217
-
218
- &[data-size='xs'] {
219
- @include text-xs();
220
-
221
- height: $size-xs;
222
- padding: 0 $padding-xs;
223
-
224
- &[data-appearance='outlined'],
225
- &[data-appearance='outlined-gray'] {
226
- padding: 0 ($padding-xs - $border-size);
227
- }
228
-
229
- &._only-icon {
230
- width: $size-xs;
231
- }
232
- }
233
-
234
- &[data-size='sm'] {
235
- height: $size-sm;
236
- padding: 0 $padding-sm;
237
-
238
- &[data-appearance='outlined'],
239
- &[data-appearance='outlined-gray'] {
240
- padding: 0 ($padding-sm - $border-size);
241
- }
242
-
243
- &._only-icon {
244
- width: $size-sm;
245
- }
246
- }
247
-
248
- &[data-size='md'] {
249
- height: $size-md;
250
- padding: 0 $padding-md;
251
-
252
- &[data-appearance='outlined'],
253
- &[data-appearance='outlined-gray'] {
254
- padding: 0 ($padding-md - $border-size);
255
- }
256
-
257
- &._only-icon {
258
- width: $size-md;
259
- }
260
- }
261
-
262
- &._disabled {
263
- opacity: 0.5;
264
- }
265
-
266
- &._loading {
267
- :hover {
268
- background: unset;
269
- }
270
- }
271
- }
272
-
273
- .c-wrapper {
274
- display: flex;
275
- justify-content: center;
276
- align-items: center;
277
- gap: 8px;
278
- height: 100%;
279
-
280
- &_invisible {
281
- opacity: 0;
282
- }
283
- }
284
-
285
- .c-loader {
286
- position: absolute;
287
- top: 50%;
288
- left: 50%;
289
- transform: translate(-50%, -50%);
290
- }
@@ -1,29 +0,0 @@
1
- <span
2
- class="c-wrapper"
3
- [class.c-wrapper_invisible]="isLoaderShown"
4
- >
5
- <cui-svg
6
- *ngIf="icon"
7
- [icon]="icon"
8
- [width]="svgOptions.width"
9
- [height]="svgOptions.height"
10
- [strokeWidth]="svgOptions.strokeWidth"
11
- class="c-icon"
12
- ></cui-svg>
13
- <span #content *ngIf="!containsOnlyIcon">
14
- <ng-content></ng-content>
15
- </span>
16
- <cui-svg
17
- *ngIf="iconRight"
18
- [icon]="iconRight"
19
- [width]="svgOptions.width"
20
- [height]="svgOptions.height"
21
- [strokeWidth]="svgOptions.strokeWidth"
22
- class="c-icon"
23
- ></cui-svg>
24
- </span>
25
- <cui-svg
26
- *ngIf="isLoaderShown"
27
- [icon]="CUI_ICON_LOADING"
28
- class="c-loader"
29
- ></cui-svg>
@@ -1,58 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- ChangeDetectionStrategy,
4
- Component,
5
- ElementRef,
6
- Input
7
- } from '@angular/core';
8
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
9
-
10
- @Component({
11
- selector: 'cui-svg[icon]',
12
- templateUrl: './svg.template.html',
13
- styleUrls: ['./svg.style.scss'],
14
- changeDetection: ChangeDetectionStrategy.OnPush
15
- })
16
- export class CuiSvgComponent implements AfterViewInit {
17
- STROKE_WIDTH_ATTRIBUTE = 'stroke-width';
18
-
19
- safeSvgContent!: SafeHtml;
20
- _strokeWidth?: number;
21
-
22
- @Input()
23
- width?: number;
24
-
25
- @Input()
26
- height?: number
27
-
28
- @Input()
29
- set icon(icon: string) {
30
- this.safeSvgContent = this.domSanitizer.bypassSecurityTrustHtml(icon);
31
- };
32
-
33
- @Input()
34
- set strokeWidth(strokeWidth: number | undefined) {
35
- this._strokeWidth = strokeWidth;
36
-
37
- this.updateStrokeWidth();
38
- }
39
-
40
- constructor(private readonly domSanitizer: DomSanitizer,
41
- private readonly elementRef: ElementRef<HTMLElement>) {
42
- }
43
-
44
- ngAfterViewInit(): void {
45
- this.updateStrokeWidth();
46
- }
47
-
48
- private updateStrokeWidth(): void {
49
- if (this._strokeWidth === undefined) {
50
- return;
51
- }
52
-
53
- this.elementRef.nativeElement.querySelectorAll(`[${this.STROKE_WIDTH_ATTRIBUTE}]`)
54
- .forEach(element => {
55
- element.setAttribute(this.STROKE_WIDTH_ATTRIBUTE, this._strokeWidth!.toString())
56
- });
57
- }
58
- }
@@ -1,12 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
-
4
- import { CuiSvgComponent } from './svg.component';
5
-
6
- @NgModule({
7
- imports: [CommonModule],
8
- declarations: [CuiSvgComponent],
9
- exports: [CuiSvgComponent]
10
- })
11
- export class CuiSvgModule {
12
- }
@@ -1,6 +0,0 @@
1
- export interface CuiSvgOptions {
2
- readonly icon: string;
3
- readonly width?: number;
4
- readonly height?: number;
5
- readonly strokeWidth?: number;
6
- }
@@ -1,15 +0,0 @@
1
- :host {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- flex-shrink: 0;
6
- vertical-align: middle;
7
- line-height: 0;
8
-
9
- ::ng-deep {
10
- svg {
11
- width: 100%;
12
- height: 100%;
13
- }
14
- }
15
- }
@@ -1,5 +0,0 @@
1
- <span
2
- [innerHTML]="safeSvgContent"
3
- [style.width.px]="width"
4
- [style.height.px]="height"
5
- ></span>
package/ng-package.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/core",
4
- "assets": [
5
- "styles",
6
- "fonts"
7
- ],
8
- "lib": {
9
- "entryFile": "index.ts"
10
- }
11
- }
package/tsconfig.lib.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../out-tsc/lib",
5
- "declaration": true,
6
- "declarationMap": true,
7
- "inlineSources": true,
8
- "types": []
9
- },
10
- "exclude": [
11
- "**/*.spec.ts"
12
- ]
13
- }
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "./tsconfig.lib.json",
3
- "compilerOptions": {
4
- "declarationMap": false
5
- },
6
- "angularCompilerOptions": {
7
- "compilationMode": "partial"
8
- }
9
- }
File without changes