@xui/status 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/fesm2022/xui-status.mjs +113 -0
- package/fesm2022/xui-status.mjs.map +1 -0
- package/index.d.ts +10 -0
- package/lib/status.component.d.ts +20 -0
- package/package.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, Component, NgModule } from '@angular/core';
|
|
3
|
+
import { xui } from '@xui/core';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
const statusVariants = cva(['inline-flex aspect-square rounded-[50%]'], {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
online: 'bg-success',
|
|
10
|
+
idle: 'bg-warning',
|
|
11
|
+
dnd: 'bg-error',
|
|
12
|
+
offline: 'bg-gray-600'
|
|
13
|
+
},
|
|
14
|
+
size: {
|
|
15
|
+
sm: 'w-3',
|
|
16
|
+
md: 'w-4',
|
|
17
|
+
lg: 'w-6'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
size: 'md'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
class XuiStatusComponent {
|
|
25
|
+
/** The user defined classes */
|
|
26
|
+
class = input('');
|
|
27
|
+
variant = input.required();
|
|
28
|
+
size = input('md');
|
|
29
|
+
/** The classes to apply to the component merged with the user defined classes */
|
|
30
|
+
computedClass = computed(() => xui(statusVariants({ variant: this.variant(), size: this.size() }), this.class()));
|
|
31
|
+
computedStyle = computed(() => {
|
|
32
|
+
switch (this.variant()) {
|
|
33
|
+
case 'idle':
|
|
34
|
+
return 'url(#x-status-idle-clip-path)';
|
|
35
|
+
case 'dnd':
|
|
36
|
+
return 'url(#x-status-dnd-clip-path)';
|
|
37
|
+
case 'offline':
|
|
38
|
+
return 'url(#x-status-offline-clip-path)';
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
});
|
|
42
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.3", type: XuiStatusComponent, isStandalone: true, selector: "xui-status", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()", "style.clip-path": "computedStyle()" } }, ngImport: i0, template: `<svg>
|
|
44
|
+
<clipPath id="x-status-idle-clip-path" clipPathUnits="objectBoundingBox">
|
|
45
|
+
<path d="M0.564,0 A0.399,0.399,0,1,1,0,0.564 A0.502,0.502,0,1,0,0.564,0" />
|
|
46
|
+
</clipPath>
|
|
47
|
+
</svg>
|
|
48
|
+
<svg>
|
|
49
|
+
<clipPath id="x-status-dnd-clip-path" clipPathUnits="objectBoundingBox">
|
|
50
|
+
<path
|
|
51
|
+
d="M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 M0.78,0.603 H0.22 a0.103,0.103,0,0,1,0,-0.205 H0.78 a0.103,0.103,0,1,1,0,0.205"
|
|
52
|
+
/>
|
|
53
|
+
</clipPath>
|
|
54
|
+
</svg>
|
|
55
|
+
<svg>
|
|
56
|
+
<clipPath id="x-status-offline-clip-path" clipPathUnits="objectBoundingBox">
|
|
57
|
+
<path
|
|
58
|
+
d="M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 m0,0.76 A0.26,0.26,0,1,1,0.76,0.5 A0.26,0.26,0,0,1,0.5,0.76"
|
|
59
|
+
/>
|
|
60
|
+
</clipPath>
|
|
61
|
+
</svg>`, isInline: true });
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{
|
|
66
|
+
selector: 'xui-status',
|
|
67
|
+
imports: [],
|
|
68
|
+
template: `<svg>
|
|
69
|
+
<clipPath id="x-status-idle-clip-path" clipPathUnits="objectBoundingBox">
|
|
70
|
+
<path d="M0.564,0 A0.399,0.399,0,1,1,0,0.564 A0.502,0.502,0,1,0,0.564,0" />
|
|
71
|
+
</clipPath>
|
|
72
|
+
</svg>
|
|
73
|
+
<svg>
|
|
74
|
+
<clipPath id="x-status-dnd-clip-path" clipPathUnits="objectBoundingBox">
|
|
75
|
+
<path
|
|
76
|
+
d="M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 M0.78,0.603 H0.22 a0.103,0.103,0,0,1,0,-0.205 H0.78 a0.103,0.103,0,1,1,0,0.205"
|
|
77
|
+
/>
|
|
78
|
+
</clipPath>
|
|
79
|
+
</svg>
|
|
80
|
+
<svg>
|
|
81
|
+
<clipPath id="x-status-offline-clip-path" clipPathUnits="objectBoundingBox">
|
|
82
|
+
<path
|
|
83
|
+
d="M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 m0,0.76 A0.26,0.26,0,1,1,0.76,0.5 A0.26,0.26,0,0,1,0.5,0.76"
|
|
84
|
+
/>
|
|
85
|
+
</clipPath>
|
|
86
|
+
</svg>`,
|
|
87
|
+
host: {
|
|
88
|
+
'[class]': 'computedClass()',
|
|
89
|
+
'[style.clip-path]': 'computedStyle()'
|
|
90
|
+
}
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
|
|
94
|
+
const XuiStatusImports = [XuiStatusComponent];
|
|
95
|
+
class XuiStatusModule {
|
|
96
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
97
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusModule, imports: [XuiStatusComponent], exports: [XuiStatusComponent] });
|
|
98
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusModule });
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiStatusModule, decorators: [{
|
|
101
|
+
type: NgModule,
|
|
102
|
+
args: [{
|
|
103
|
+
imports: [...XuiStatusImports],
|
|
104
|
+
exports: [...XuiStatusImports]
|
|
105
|
+
}]
|
|
106
|
+
}] });
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Generated bundle index. Do not edit.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
export { XuiStatusComponent, XuiStatusImports, XuiStatusModule };
|
|
113
|
+
//# sourceMappingURL=xui-status.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xui-status.mjs","sources":["../../../../../../libs/ui/status/xui/src/lib/status.component.ts","../../../../../../libs/ui/status/xui/src/index.ts","../../../../../../libs/ui/status/xui/src/xui-status.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { xui } from '@xui/core';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\nconst statusVariants = cva(['inline-flex aspect-square rounded-[50%]'], {\n variants: {\n variant: {\n online: 'bg-success',\n idle: 'bg-warning',\n dnd: 'bg-error',\n offline: 'bg-gray-600'\n },\n size: {\n sm: 'w-3',\n md: 'w-4',\n lg: 'w-6'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n});\n\nexport type StatusVariants = VariantProps<typeof statusVariants>;\n\n@Component({\n selector: 'xui-status',\n imports: [],\n template: `<svg>\n <clipPath id=\"x-status-idle-clip-path\" clipPathUnits=\"objectBoundingBox\">\n <path d=\"M0.564,0 A0.399,0.399,0,1,1,0,0.564 A0.502,0.502,0,1,0,0.564,0\" />\n </clipPath>\n </svg>\n <svg>\n <clipPath id=\"x-status-dnd-clip-path\" clipPathUnits=\"objectBoundingBox\">\n <path\n d=\"M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 M0.78,0.603 H0.22 a0.103,0.103,0,0,1,0,-0.205 H0.78 a0.103,0.103,0,1,1,0,0.205\"\n />\n </clipPath>\n </svg>\n <svg>\n <clipPath id=\"x-status-offline-clip-path\" clipPathUnits=\"objectBoundingBox\">\n <path\n d=\"M0.5,0 a0.5,0.5,0,1,0,0.5,0.5 A0.5,0.5,0,0,0,0.5,0 m0,0.76 A0.26,0.26,0,1,1,0.76,0.5 A0.26,0.26,0,0,1,0.5,0.76\"\n />\n </clipPath>\n </svg>`,\n host: {\n '[class]': 'computedClass()',\n '[style.clip-path]': 'computedStyle()'\n }\n})\nexport class XuiStatusComponent {\n /** The user defined classes */\n readonly class = input<ClassValue>('');\n readonly variant = input.required<StatusVariants['variant']>();\n readonly size = input<StatusVariants['size']>('md');\n\n /** The classes to apply to the component merged with the user defined classes */\n protected readonly computedClass = computed(() =>\n xui(statusVariants({ variant: this.variant(), size: this.size() }), this.class())\n );\n\n protected readonly computedStyle = computed(() => {\n switch (this.variant()) {\n case 'idle':\n return 'url(#x-status-idle-clip-path)';\n case 'dnd':\n return 'url(#x-status-dnd-clip-path)';\n case 'offline':\n return 'url(#x-status-offline-clip-path)';\n }\n\n return null;\n });\n}\n","import { NgModule } from '@angular/core';\nimport { XuiStatusComponent } from './lib/status.component';\nexport * from './lib/status.component';\n\nexport const XuiStatusImports = [XuiStatusComponent] as const;\n\n@NgModule({\n imports: [...XuiStatusImports],\n exports: [...XuiStatusImports]\n})\nexport class XuiStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XuiStatusComponent } from './lib/status.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./lib/status.component";
|
|
4
|
+
export * from './lib/status.component';
|
|
5
|
+
export declare const XuiStatusImports: readonly [typeof XuiStatusComponent];
|
|
6
|
+
export declare class XuiStatusModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XuiStatusModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<XuiStatusModule, never, [typeof i1.XuiStatusComponent], [typeof i1.XuiStatusComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<XuiStatusModule>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import type { ClassValue } from 'clsx';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
declare const statusVariants: (props?: ({
|
|
5
|
+
variant?: "online" | "idle" | "dnd" | "offline" | null | undefined;
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type StatusVariants = VariantProps<typeof statusVariants>;
|
|
9
|
+
export declare class XuiStatusComponent {
|
|
10
|
+
/** The user defined classes */
|
|
11
|
+
readonly class: import("@angular/core").InputSignal<ClassValue>;
|
|
12
|
+
readonly variant: import("@angular/core").InputSignal<"online" | "idle" | "dnd" | "offline" | null | undefined>;
|
|
13
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
14
|
+
/** The classes to apply to the component merged with the user defined classes */
|
|
15
|
+
protected readonly computedClass: import("@angular/core").Signal<string>;
|
|
16
|
+
protected readonly computedStyle: import("@angular/core").Signal<"url(#x-status-idle-clip-path)" | "url(#x-status-dnd-clip-path)" | "url(#x-status-offline-clip-path)" | null>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<XuiStatusComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XuiStatusComponent, "xui-status", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xui/status",
|
|
3
|
+
"version": "2.0.0-alpha.0",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"peerDependencies": {
|
|
9
|
+
"@angular/core": "19",
|
|
10
|
+
"@xui/core": "2",
|
|
11
|
+
"class-variance-authority": "^0.7.1",
|
|
12
|
+
"clsx": "^2.1.1"
|
|
13
|
+
},
|
|
14
|
+
"module": "fesm2022/xui-status.mjs",
|
|
15
|
+
"typings": "index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
"./package.json": {
|
|
18
|
+
"default": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./index.d.ts",
|
|
22
|
+
"default": "./fesm2022/xui-status.mjs"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"tslib": "^2.3.0"
|
|
27
|
+
}
|
|
28
|
+
}
|