@xui/label 2.0.0-alpha.6 → 2.0.0-alpha.8

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 CHANGED
@@ -4,17 +4,13 @@
4
4
 
5
5
  ---
6
6
 
7
- ![Build Status](https://github.com/rikarin/xui/actions/workflows/continuous-delivery.yaml/badge.svg?branch=master)
7
+ ![Build Status](https://github.com/rikarin/xui/actions/workflows/publish.yaml/badge.svg?branch=develop)
8
8
  [![Demo](https://img.shields.io/badge/demo-online-ed1c46)](https://xuijs.org/)
9
- [![npm](https://img.shields.io/npm/v/%40xui/components.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/org/xui)
10
- [![Downloads](https://img.shields.io/npm/dt/%40xui/components.svg)](https://www.npmjs.com/org/xui)
11
- [![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/components.svg)](https://www.npmjs.com/org/xui)
12
- [![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/components)](https://bundlephobia.com/result?p=xui)
9
+ [![npm](https://img.shields.io/npm/v/%40xui/core.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/org/xui)
13
10
  [![License](https://img.shields.io/npm/l/express.svg?maxAge=2592000)](/LICENSE)
14
- [![Discord](https://img.shields.io/discord/776258487307075594.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/aPkZsFcu)
15
11
  [![Netlify Status](https://api.netlify.com/api/v1/badges/fa0cfd14-97df-47fa-8a7c-152e6d4cfda2/deploy-status)](https://app.netlify.com/sites/xui/deploys)
16
12
 
17
- xUI is a customizable Angular 19 UI Library with full support of TailwindCSS styling based on popular React library ShardCN and its Angular alternative SpartanUI.
13
+ xUI is a customizable Angular 20 UI Library with full support of TailwindCSS styling based on popular React library ShardCN and its Angular alternative SpartanUI.
18
14
 
19
15
  ## Features
20
16
 
@@ -31,9 +27,31 @@ xUI is a customizable Angular 19 UI Library with full support of TailwindCSS sty
31
27
  - [StackBlitz Demo](https://stackblitz.com/fork/xui)
32
28
  - [Documentation](https://xuijs.org)
33
29
  - [Live Demo](https://cord.dj/r)
30
+ - [Packages](#packages)
34
31
  - [Installation](#installation)
35
-
36
- <a name="installation"></a>
32
+ - [Browser Support](#browser-support)
33
+ - [Development](#development)
34
+ - [Issues](#issues)
35
+ - [Roadmap](#roadmap)
36
+
37
+ ## Packages
38
+
39
+ | Package | Usage | Description |
40
+ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
41
+ | Core | [![Downloads](https://img.shields.io/npm/dt/%40xui/core.svg)](https://www.npmjs.com/package/%40xui/core)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/core.svg)](https://www.npmjs.com/package/%40xui/core)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/core)](https://bundlephobia.com/result?p=%40xui/core) | Core package required by all other packages |
42
+ | Badge | [![Downloads](https://img.shields.io/npm/dt/%40xui/badge.svg)](https://www.npmjs.com/package/%40xui/badge)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/badge.svg)](https://www.npmjs.com/package/%40xui/badge)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/badge)](https://bundlephobia.com/result?p=%40xui/badge) | Badge component |
43
+ | Breadcrumb | [![Downloads](https://img.shields.io/npm/dt/%40xui/breadcrumb.svg)](https://www.npmjs.com/package/%40xui/breadcrumb)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/breadcrumb.svg)](https://www.npmjs.com/package/%40xui/breadcrumb)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/breadcrumb)](https://bundlephobia.com/result?p=%40xui/breadcrumb) | Breadcrumb component |
44
+ | Button | [![Downloads](https://img.shields.io/npm/dt/%40xui/button.svg)](https://www.npmjs.com/package/%40xui/button)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/button.svg)](https://www.npmjs.com/package/%40xui/button)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/button)](https://bundlephobia.com/result?p=%40xui/button) | Button component |
45
+ | Button Group | [![Downloads](https://img.shields.io/npm/dt/%40xui/button-group.svg)](https://www.npmjs.com/package/%40xui/button-group)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/button-group.svg)](https://www.npmjs.com/package/%40xui/button-group)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/button-group)](https://bundlephobia.com/result?p=%40xui/button-group) | Button Group component |
46
+ | Checkbox | [![Downloads](https://img.shields.io/npm/dt/%40xui/checkbox.svg)](https://www.npmjs.com/package/%40xui/checkbox)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/checkbox.svg)](https://www.npmjs.com/package/%40xui/checkbox)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/checkbox)](https://bundlephobia.com/result?p=%40xui/checkbox) | Checkbox component |
47
+ | Form Field | [![Downloads](https://img.shields.io/npm/dt/%40xui/form-field.svg)](https://www.npmjs.com/package/%40xui/form-field)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/form-field.svg)](https://www.npmjs.com/package/%40xui/form-field)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/form-field)](https://bundlephobia.com/result?p=%40xui/form-field) | Form Field component |
48
+ | Icon | [![Downloads](https://img.shields.io/npm/dt/%40xui/icon.svg)](https://www.npmjs.com/package/%40xui/icon)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/icon.svg)](https://www.npmjs.com/package/%40xui/icon)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/icon)](https://bundlephobia.com/result?p=%40xui/icon) | Icon component |
49
+ | Input | [![Downloads](https://img.shields.io/npm/dt/%40xui/input.svg)](https://www.npmjs.com/package/%40xui/input)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/input.svg)](https://www.npmjs.com/package/%40xui/input)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/input)](https://bundlephobia.com/result?p=%40xui/input) | Input component |
50
+ | Label | [![Downloads](https://img.shields.io/npm/dt/%40xui/label.svg)](https://www.npmjs.com/package/%40xui/label)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/label.svg)](https://www.npmjs.com/package/%40xui/label)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/label)](https://bundlephobia.com/result?p=%40xui/label) | Label component |
51
+ | Skeleton | [![Downloads](https://img.shields.io/npm/dt/%40xui/skeleton.svg)](https://www.npmjs.com/package/%40xui/skeleton)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/skeleton.svg)](https://www.npmjs.com/package/%40xui/skeleton)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/skeleton)](https://bundlephobia.com/result?p=%40xui/skeleton) | Skeleton component |
52
+ | Sonner | [![Downloads](https://img.shields.io/npm/dt/%40xui/sonner.svg)](https://www.npmjs.com/package/%40xui/sonner)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/sonner.svg)](https://www.npmjs.com/package/%40xui/sonner)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/sonner)](https://bundlephobia.com/result?p=%40xui/sonner) | Sonner component |
53
+ | Status | [![Downloads](https://img.shields.io/npm/dt/%40xui/status.svg)](https://www.npmjs.com/package/%40xui/status)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/status.svg)](https://www.npmjs.com/package/%40xui/status)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/status)](https://bundlephobia.com/result?p=%40xui/status) | Status component |
54
+ | Table | [![Downloads](https://img.shields.io/npm/dt/%40xui/table.svg)](https://www.npmjs.com/package/%40xui/table)<br />[![Monthly Downloads](https://img.shields.io/npm/dm/%40xui/table.svg)](https://www.npmjs.com/package/%40xui/table)<br />[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/%40xui/table)](https://bundlephobia.com/result?p=%40xui/table) | Table component |
37
55
 
38
56
  ## Installation
39
57
 
@@ -67,31 +85,22 @@ pnpm storybook
67
85
 
68
86
  If you find any issues in the library or have and idea for an improvement feel free to open an [issue](https://github.com/Rikarin/xui/issues).
69
87
 
70
- ## Roadmap (12/42)
88
+ ## Roadmap
71
89
 
72
90
  - [ ] Accordion
73
91
  - [ ] Alert
74
92
  - [ ] Alert Dialog
75
93
  - [ ] Avatar
76
- - [x] Badge
77
- - [x] Breadcrumb
78
- - [x] Button
79
- - [x] Button Group
80
94
  - [ ] Calendar
81
95
  - [ ] Card
82
96
  - [ ] Carousel
83
- - [x] Checkbox
84
97
  - [ ] Collapsible
85
98
  - [ ] Combobox
86
99
  - [ ] Command
87
100
  - [ ] Date Picker
88
101
  - [ ] Date Range Picker
89
102
  - [ ] Dialog
90
- - [x] Form Field
91
103
  - [ ] Hover Card
92
- - [x] Icon
93
- - [x] Input
94
- - [x] Label
95
104
  - [ ] Menu
96
105
  - [ ] Pagination
97
106
  - [ ] Popover
@@ -101,17 +110,15 @@ If you find any issues in the library or have and idea for an improvement feel f
101
110
  - [ ] Select
102
111
  - [ ] Separator
103
112
  - [ ] Sheet
104
- - [x] Skeleton
105
113
  - [ ] Slider
106
- - [x] Sonner
107
114
  - [ ] Spinner
108
- - [x] Status
109
115
  - [ ] Switch
110
- - [ ] Table
111
116
  - [ ] Tabs
112
117
  - [ ] Toggle
113
118
  - [ ] Tooltip
114
119
  - [ ] Typography
120
+ - [ ] Input OTP
121
+ - [ ] Toggle Group
115
122
 
116
123
  ### Additional
117
124
 
@@ -149,4 +156,7 @@ Make cli to install the components
149
156
  - data driven component
150
157
 
151
158
  - Sonner
159
+
152
160
  - Colors
161
+
162
+ - adjust generator to generate stories into the apps/storybook
@@ -46,10 +46,10 @@ class XuiLabelDirective {
46
46
  setError(error) {
47
47
  this.state().error.set(error);
48
48
  }
49
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiLabelDirective, isStandalone: true, selector: "[xuiLabel]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, hostDirectives: [{ directive: i1.XLabelDirective, inputs: ["id", "id"] }], ngImport: i0 });
49
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: XuiLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.3", type: XuiLabelDirective, isStandalone: true, selector: "[xuiLabel]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, hostDirectives: [{ directive: i1.XLabelDirective, inputs: ["id", "id"] }], ngImport: i0 });
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiLabelDirective, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: XuiLabelDirective, decorators: [{
53
53
  type: Directive,
54
54
  args: [{
55
55
  selector: '[xuiLabel]',
@@ -1 +1 @@
1
- {"version":3,"file":"xui-label.mjs","sources":["../../../../../../libs/ui/label/xui/src/lib/label.directive.ts","../../../../../../libs/ui/label/xui/src/xui-label.ts"],"sourcesContent":["import { Directive, computed, inject, input, signal } from '@angular/core';\nimport { xui } from '@xui/core';\nimport { XLabelDirective } from '@xui/core/label';\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\n// TODO: theme - disabled, etc.\nexport const labelVariants = cva(\n [\n 'text-sm font-medium leading-none',\n '[&.ng-invalid.ng-touched]:text-error',\n '[&>[xuiInput]]:my-1 [&:has([xuiInput]:disabled)]:cursor-not-allowed [&:has([xuiInput]:disabled)]:opacity-70'\n ],\n {\n variants: {\n variant: {\n default: ''\n },\n error: {\n auto: '[&:has([xuiInput].ng-invalid.ng-touched)]:text-error',\n true: 'text-error'\n },\n disabled: {\n auto: '[&:has([xuiInput]:disabled)]:opacity-70',\n true: 'opacity-70',\n false: ''\n }\n },\n defaultVariants: {\n variant: 'default',\n error: 'auto'\n }\n }\n);\nexport type LabelVariants = VariantProps<typeof labelVariants>;\n\n@Directive({\n selector: '[xuiLabel]',\n hostDirectives: [\n {\n directive: XLabelDirective,\n inputs: ['id']\n }\n ],\n host: {\n '[class]': 'computedClass()'\n }\n})\nexport class XuiLabelDirective {\n private readonly xLabel = inject(XLabelDirective, { host: true });\n\n readonly class = input<ClassValue>('');\n readonly variant = input<LabelVariants['variant']>('default');\n readonly error = input<LabelVariants['error']>('auto');\n\n protected readonly state = computed(() => ({\n error: signal(this.error())\n }));\n\n protected readonly computedClass = computed(() =>\n xui(\n labelVariants({\n variant: this.variant(),\n error: this.state().error(),\n disabled: this.xLabel?.dataDisabled() ?? 'auto'\n }),\n this.class()\n )\n );\n\n setError(error: LabelVariants['error']): void {\n this.state().error.set(error);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xui-label.mjs","sources":["../tmp-esm2022/lib/label.directive.js","../tmp-esm2022/xui-label.js"],"sourcesContent":["import { Directive, computed, inject, input, signal } from '@angular/core';\nimport { xui } from '@xui/core';\nimport { XLabelDirective } from '@xui/core/label';\nimport { cva } from 'class-variance-authority';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@xui/core/label\";\n// TODO: theme - disabled, etc.\nexport const labelVariants = cva([\n 'text-sm font-medium leading-none',\n '[&.ng-invalid.ng-touched]:text-error',\n '[&>[xuiInput]]:my-1 [&:has([xuiInput]:disabled)]:cursor-not-allowed [&:has([xuiInput]:disabled)]:opacity-70'\n], {\n variants: {\n variant: {\n default: ''\n },\n error: {\n auto: '[&:has([xuiInput].ng-invalid.ng-touched)]:text-error',\n true: 'text-error'\n },\n disabled: {\n auto: '[&:has([xuiInput]:disabled)]:opacity-70',\n true: 'opacity-70',\n false: ''\n }\n },\n defaultVariants: {\n variant: 'default',\n error: 'auto'\n }\n});\nexport class XuiLabelDirective {\n xLabel = inject(XLabelDirective, { host: true });\n class = input('');\n variant = input('default');\n error = input('auto');\n state = computed(() => ({\n error: signal(this.error())\n }));\n computedClass = computed(() => xui(labelVariants({\n variant: this.variant(),\n error: this.state().error(),\n disabled: this.xLabel?.dataDisabled() ?? 'auto'\n }), this.class()));\n setError(error) {\n this.state().error.set(error);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: XuiLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: XuiLabelDirective, isStandalone: true, selector: \"[xuiLabel]\", inputs: { class: { classPropertyName: \"class\", publicName: \"class\", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: \"error\", publicName: \"error\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"computedClass()\" } }, hostDirectives: [{ directive: i1.XLabelDirective, inputs: [\"id\", \"id\"] }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: XuiLabelDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[xuiLabel]',\n hostDirectives: [\n {\n directive: XLabelDirective,\n inputs: ['id']\n }\n ],\n host: {\n '[class]': 'computedClass()'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYWJlbC94dWkvc3JjL2xpYi9sYWJlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixHQUFHLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR2xFLCtCQUErQjtBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUM5QjtJQUNFLGtDQUFrQztJQUNsQyxzQ0FBc0M7SUFDdEMsNkdBQTZHO0NBQzlHLEVBQ0Q7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLHNEQUFzRDtZQUM1RCxJQUFJLEVBQUUsWUFBWTtTQUNuQjtRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSx5Q0FBeUM7WUFDL0MsSUFBSSxFQUFFLFlBQVk7WUFDbEIsS0FBSyxFQUFFLEVBQUU7U0FDVjtLQUNGO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsT0FBTyxFQUFFLFNBQVM7UUFDbEIsS0FBSyxFQUFFLE1BQU07S0FDZDtDQUNGLENBQ0YsQ0FBQztBQWVGLE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXpELEtBQUssR0FBRyxLQUFLLENBQWEsRUFBRSxDQUFDLENBQUM7SUFDOUIsT0FBTyxHQUFHLEtBQUssQ0FBMkIsU0FBUyxDQUFDLENBQUM7SUFDckQsS0FBSyxHQUFHLEtBQUssQ0FBeUIsTUFBTSxDQUFDLENBQUM7SUFFcEMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRWUsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDL0MsR0FBRyxDQUNELGFBQWEsQ0FBQztRQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFO1FBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLE1BQU07S0FDaEQsQ0FBQyxFQUNGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FDYixDQUNGLENBQUM7SUFFRixRQUFRLENBQUMsS0FBNkI7UUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzswSEF4QlUsaUJBQWlCOzhHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBWjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGNBQWMsRUFBRTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsZUFBZTs0QkFDMUIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNmO3FCQUNGO29CQUNELElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsaUJBQWlCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgeHVpIH0gZnJvbSAnQHh1aS9jb3JlJztcbmltcG9ydCB7IFhMYWJlbERpcmVjdGl2ZSB9IGZyb20gJ0B4dWkvY29yZS9sYWJlbCc7XG5pbXBvcnQgeyB0eXBlIFZhcmlhbnRQcm9wcywgY3ZhIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NWYWx1ZSB9IGZyb20gJ2Nsc3gnO1xuXG4vLyBUT0RPOiB0aGVtZSAtIGRpc2FibGVkLCBldGMuXG5leHBvcnQgY29uc3QgbGFiZWxWYXJpYW50cyA9IGN2YShcbiAgW1xuICAgICd0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZScsXG4gICAgJ1smLm5nLWludmFsaWQubmctdG91Y2hlZF06dGV4dC1lcnJvcicsXG4gICAgJ1smPlt4dWlJbnB1dF1dOm15LTEgWyY6aGFzKFt4dWlJbnB1dF06ZGlzYWJsZWQpXTpjdXJzb3Itbm90LWFsbG93ZWQgWyY6aGFzKFt4dWlJbnB1dF06ZGlzYWJsZWQpXTpvcGFjaXR5LTcwJ1xuICBdLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgZGVmYXVsdDogJydcbiAgICAgIH0sXG4gICAgICBlcnJvcjoge1xuICAgICAgICBhdXRvOiAnWyY6aGFzKFt4dWlJbnB1dF0ubmctaW52YWxpZC5uZy10b3VjaGVkKV06dGV4dC1lcnJvcicsXG4gICAgICAgIHRydWU6ICd0ZXh0LWVycm9yJ1xuICAgICAgfSxcbiAgICAgIGRpc2FibGVkOiB7XG4gICAgICAgIGF1dG86ICdbJjpoYXMoW3h1aUlucHV0XTpkaXNhYmxlZCldOm9wYWNpdHktNzAnLFxuICAgICAgICB0cnVlOiAnb3BhY2l0eS03MCcsXG4gICAgICAgIGZhbHNlOiAnJ1xuICAgICAgfVxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiAnZGVmYXVsdCcsXG4gICAgICBlcnJvcjogJ2F1dG8nXG4gICAgfVxuICB9XG4pO1xuZXhwb3J0IHR5cGUgTGFiZWxWYXJpYW50cyA9IFZhcmlhbnRQcm9wczx0eXBlb2YgbGFiZWxWYXJpYW50cz47XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t4dWlMYWJlbF0nLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogWExhYmVsRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ2lkJ11cbiAgICB9XG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzKCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgWHVpTGFiZWxEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IHhMYWJlbCA9IGluamVjdChYTGFiZWxEaXJlY3RpdmUsIHsgaG9zdDogdHJ1ZSB9KTtcblxuICByZWFkb25seSBjbGFzcyA9IGlucHV0PENsYXNzVmFsdWU+KCcnKTtcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PExhYmVsVmFyaWFudHNbJ3ZhcmlhbnQnXT4oJ2RlZmF1bHQnKTtcbiAgcmVhZG9ubHkgZXJyb3IgPSBpbnB1dDxMYWJlbFZhcmlhbnRzWydlcnJvciddPignYXV0bycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgZXJyb3I6IHNpZ25hbCh0aGlzLmVycm9yKCkpXG4gIH0pKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcHV0ZWRDbGFzcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgeHVpKFxuICAgICAgbGFiZWxWYXJpYW50cyh7XG4gICAgICAgIHZhcmlhbnQ6IHRoaXMudmFyaWFudCgpLFxuICAgICAgICBlcnJvcjogdGhpcy5zdGF0ZSgpLmVycm9yKCksXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLnhMYWJlbD8uZGF0YURpc2FibGVkKCkgPz8gJ2F1dG8nXG4gICAgICB9KSxcbiAgICAgIHRoaXMuY2xhc3MoKVxuICAgIClcbiAgKTtcblxuICBzZXRFcnJvcihlcnJvcjogTGFiZWxWYXJpYW50c1snZXJyb3InXSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUoKS5lcnJvci5zZXQoZXJyb3IpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHVpLWxhYmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYWJlbC94dWkvc3JjL3h1aS1sYWJlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1 +1,28 @@
1
- export * from './lib/label.directive';
1
+ import * as _angular_core from '@angular/core';
2
+ import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { ClassValue } from 'clsx';
5
+ import * as i1 from '@xui/core/label';
6
+
7
+ declare const labelVariants: (props?: ({
8
+ variant?: "default" | null | undefined;
9
+ error?: boolean | "auto" | null | undefined;
10
+ disabled?: boolean | "auto" | null | undefined;
11
+ } & class_variance_authority_dist_types.ClassProp) | undefined) => string;
12
+ type LabelVariants = VariantProps<typeof labelVariants>;
13
+ declare class XuiLabelDirective {
14
+ private readonly xLabel;
15
+ readonly class: _angular_core.InputSignal<ClassValue>;
16
+ readonly variant: _angular_core.InputSignal<"default" | null | undefined>;
17
+ readonly error: _angular_core.InputSignal<boolean | "auto" | null | undefined>;
18
+ protected readonly state: _angular_core.Signal<{
19
+ error: _angular_core.WritableSignal<boolean | "auto" | null | undefined>;
20
+ }>;
21
+ protected readonly computedClass: _angular_core.Signal<string>;
22
+ setError(error: LabelVariants['error']): void;
23
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<XuiLabelDirective, never>;
24
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<XuiLabelDirective, "[xuiLabel]", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.XLabelDirective; inputs: { "id": "id"; }; outputs: {}; }]>;
25
+ }
26
+
27
+ export { XuiLabelDirective, labelVariants };
28
+ export type { LabelVariants };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xui/label",
3
- "version": "2.0.0-alpha.6",
4
- "description": "Modern Angular 19 UI Library based on TailwindCSS",
3
+ "version": "2.0.0-alpha.8",
4
+ "description": "Modern Angular 20 UI Library based on TailwindCSS",
5
5
  "keywords": [
6
6
  "angular",
7
7
  "ui",
@@ -20,8 +20,8 @@
20
20
  ],
21
21
  "sideEffects": false,
22
22
  "peerDependencies": {
23
- "@angular/core": "19",
24
- "@xui/core": "2",
23
+ "@angular/core": "20",
24
+ "@xui/core": "2.0.0-alpha.8",
25
25
  "class-variance-authority": "^0.7.1",
26
26
  "clsx": "^2.1.1"
27
27
  },
@@ -1,23 +0,0 @@
1
- import { type VariantProps } from 'class-variance-authority';
2
- import type { ClassValue } from 'clsx';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@xui/core/label";
5
- export declare const labelVariants: (props?: ({
6
- variant?: "default" | null | undefined;
7
- error?: boolean | "auto" | null | undefined;
8
- disabled?: boolean | "auto" | null | undefined;
9
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
10
- export type LabelVariants = VariantProps<typeof labelVariants>;
11
- export declare class XuiLabelDirective {
12
- private readonly xLabel;
13
- readonly class: import("@angular/core").InputSignal<ClassValue>;
14
- readonly variant: import("@angular/core").InputSignal<"default" | null | undefined>;
15
- readonly error: import("@angular/core").InputSignal<boolean | "auto" | null | undefined>;
16
- protected readonly state: import("@angular/core").Signal<{
17
- error: import("@angular/core").WritableSignal<boolean | "auto" | null | undefined>;
18
- }>;
19
- protected readonly computedClass: import("@angular/core").Signal<string>;
20
- setError(error: LabelVariants['error']): void;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<XuiLabelDirective, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<XuiLabelDirective, "[xuiLabel]", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.XLabelDirective; inputs: { "id": "id"; }; outputs: {}; }]>;
23
- }