@lumaui/angular 0.1.0 → 0.1.1

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
@@ -26,27 +26,37 @@ npm install class-variance-authority
26
26
 
27
27
  ## Setup
28
28
 
29
- ### 1. Import Styles
29
+ ### 1. Configure PostCSS
30
+
31
+ Ensure your project has the Tailwind v4 PostCSS plugin configured:
32
+
33
+ **postcss.config.js:**
34
+
35
+ ```js
36
+ export default {
37
+ plugins: {
38
+ '@tailwindcss/postcss': {},
39
+ },
40
+ };
41
+ ```
42
+
43
+ ### 2. Import Styles
30
44
 
31
45
  Add to your `styles.css`:
32
46
 
33
47
  ```css
48
+ @import 'tailwindcss';
34
49
  @import '@lumaui/tokens/styles.css';
35
50
 
36
51
  /* Optional: Dark theme support */
37
52
  @import '@lumaui/tokens/styles/dark.css';
38
- ```
39
-
40
- ### 2. Configure Tailwind (Required)
41
53
 
42
- Add the library to your Tailwind content paths in `tailwind.config.js`:
43
-
44
- ```js
45
- export default {
46
- content: ['./src/**/*.{html,ts}', './node_modules/@lumaui/**/*.{js,ts,mjs}'],
47
- };
54
+ /* If automatic content detection doesn't pick up node_modules, add: */
55
+ @source "../node_modules/@lumaui";
48
56
  ```
49
57
 
58
+ > **Note:** Tailwind v4 uses CSS-based configuration instead of `tailwind.config.js`. The `@source` directive is only needed if Luma classes aren't being detected automatically.
59
+
50
60
  ## Usage
51
61
 
52
62
  ### Button
@@ -0,0 +1,127 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, HostBinding, Directive, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { buttonVariants, cardVariants, cardContentVariants, cardTitleVariants, cardDescriptionVariants } from '@lumaui/core';
4
+
5
+ class ButtonDirective {
6
+ // Signal-based inputs with lm prefix (Angular 20+)
7
+ lmVariant = input('primary', ...(ngDevMode ? [{ debugName: "lmVariant" }] : []));
8
+ lmSize = input('md', ...(ngDevMode ? [{ debugName: "lmSize" }] : []));
9
+ lmDisabled = input(false, ...(ngDevMode ? [{ debugName: "lmDisabled" }] : []));
10
+ lmType = input('button', ...(ngDevMode ? [{ debugName: "lmType" }] : []));
11
+ // Computed class string
12
+ classes = computed(() => buttonVariants({
13
+ variant: this.lmVariant(),
14
+ size: this.lmSize(),
15
+ }), ...(ngDevMode ? [{ debugName: "classes" }] : []));
16
+ get hostClasses() {
17
+ return this.classes();
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: ButtonDirective, isStandalone: true, selector: "button[lumaButton], a[lumaButton]", inputs: { lmVariant: { classPropertyName: "lmVariant", publicName: "lmVariant", isSignal: true, isRequired: false, transformFunction: null }, lmSize: { classPropertyName: "lmSize", publicName: "lmSize", isSignal: true, isRequired: false, transformFunction: null }, lmDisabled: { classPropertyName: "lmDisabled", publicName: "lmDisabled", isSignal: true, isRequired: false, transformFunction: null }, lmType: { classPropertyName: "lmType", publicName: "lmType", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.type": "lmType()", "attr.disabled": "lmDisabled() ? \"\" : null", "class": "this.hostClasses" } }, ngImport: i0 });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ButtonDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: 'button[lumaButton], a[lumaButton]',
26
+ host: {
27
+ '[attr.type]': 'lmType()',
28
+ '[attr.disabled]': 'lmDisabled() ? "" : null',
29
+ },
30
+ }]
31
+ }], propDecorators: { lmVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmVariant", required: false }] }], lmSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmSize", required: false }] }], lmDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmDisabled", required: false }] }], lmType: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmType", required: false }] }], hostClasses: [{
32
+ type: HostBinding,
33
+ args: ['class']
34
+ }] } });
35
+
36
+ class CardComponent {
37
+ /**
38
+ * Card visual style variant
39
+ * - default: Gradient border wrapper style (default)
40
+ * - shadow: Elevated card with shadow for primary content
41
+ * - nested: Subtle background for sections within cards
42
+ * - preview: For documentation examples
43
+ */
44
+ lmVariant = input('default', ...(ngDevMode ? [{ debugName: "lmVariant" }] : []));
45
+ // Computed class strings based on variant
46
+ wrapperClasses = computed(() => cardVariants({ variant: this.lmVariant() }), ...(ngDevMode ? [{ debugName: "wrapperClasses" }] : []));
47
+ contentClasses = computed(() => cardContentVariants({ variant: this.lmVariant() }), ...(ngDevMode ? [{ debugName: "contentClasses" }] : []));
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.9", type: CardComponent, isStandalone: true, selector: "luma-card", inputs: { lmVariant: { classPropertyName: "lmVariant", publicName: "lmVariant", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"wrapperClasses()\">\n <div [class]=\"contentClasses()\">\n <ng-content></ng-content>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'luma-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"wrapperClasses()\">\n <div [class]=\"contentClasses()\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
54
+ }], propDecorators: { lmVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmVariant", required: false }] }] } });
55
+
56
+ class CardTitleDirective {
57
+ // Signal-based inputs with lm prefix (Angular 20+)
58
+ lmSize = input('normal', ...(ngDevMode ? [{ debugName: "lmSize" }] : []));
59
+ // Computed class string
60
+ classes = computed(() => cardTitleVariants({ size: this.lmSize() }), ...(ngDevMode ? [{ debugName: "classes" }] : []));
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
62
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: CardTitleDirective, isStandalone: true, selector: "[lumaCardTitle]", inputs: { lmSize: { classPropertyName: "lmSize", publicName: "lmSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardTitleDirective, decorators: [{
65
+ type: Directive,
66
+ args: [{
67
+ selector: '[lumaCardTitle]',
68
+ host: {
69
+ '[class]': 'classes()',
70
+ },
71
+ }]
72
+ }], propDecorators: { lmSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmSize", required: false }] }] } });
73
+
74
+ class CardDescriptionDirective {
75
+ // Signal-based inputs with lm prefix (Angular 20+)
76
+ lmSize = input('normal', ...(ngDevMode ? [{ debugName: "lmSize" }] : []));
77
+ // Computed class string
78
+ classes = computed(() => cardDescriptionVariants({ size: this.lmSize() }), ...(ngDevMode ? [{ debugName: "classes" }] : []));
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardDescriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
80
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: CardDescriptionDirective, isStandalone: true, selector: "[lumaCardDescription]", inputs: { lmSize: { classPropertyName: "lmSize", publicName: "lmSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0 });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardDescriptionDirective, decorators: [{
83
+ type: Directive,
84
+ args: [{
85
+ selector: '[lumaCardDescription]',
86
+ host: {
87
+ '[class]': 'classes()',
88
+ },
89
+ }]
90
+ }], propDecorators: { lmSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "lmSize", required: false }] }] } });
91
+
92
+ class CardHeaderDirective {
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
94
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: CardHeaderDirective, isStandalone: true, selector: "[lumaCardHeader]", host: { classAttribute: "mb-4" }, ngImport: i0 });
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardHeaderDirective, decorators: [{
97
+ type: Directive,
98
+ args: [{
99
+ selector: '[lumaCardHeader]',
100
+ host: {
101
+ class: 'mb-4',
102
+ },
103
+ }]
104
+ }] });
105
+
106
+ class CardContentDirective {
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: CardContentDirective, isStandalone: true, selector: "[lumaCardContent]", ngImport: i0 });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CardContentDirective, decorators: [{
111
+ type: Directive,
112
+ args: [{
113
+ selector: '[lumaCardContent]',
114
+ host: {
115
+ class: '',
116
+ },
117
+ }]
118
+ }] });
119
+
120
+ // Button exports
121
+
122
+ /**
123
+ * Generated bundle index. Do not edit.
124
+ */
125
+
126
+ export { ButtonDirective, CardComponent, CardContentDirective, CardDescriptionDirective, CardHeaderDirective, CardTitleDirective };
127
+ //# sourceMappingURL=lumaui-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumaui-angular.mjs","sources":["../../src/lib/button/button.directive.ts","../../src/lib/card/card.component.ts","../../src/lib/card/card.component.html","../../src/lib/card/card-title.directive.ts","../../src/lib/card/card-description.directive.ts","../../src/lib/card/card-header.directive.ts","../../src/lib/card/card-content.directive.ts","../../src/index.ts","../../src/lumaui-angular.ts"],"sourcesContent":["import { Directive, input, computed, HostBinding } from '@angular/core';\nimport {\n buttonVariants,\n type ButtonVariant,\n type ButtonSize,\n} from '@lumaui/core';\n\n@Directive({\n selector: 'button[lumaButton], a[lumaButton]',\n host: {\n '[attr.type]': 'lmType()',\n '[attr.disabled]': 'lmDisabled() ? \"\" : null',\n },\n})\nexport class ButtonDirective {\n // Signal-based inputs with lm prefix (Angular 20+)\n lmVariant = input<ButtonVariant>('primary');\n lmSize = input<ButtonSize>('md');\n lmDisabled = input<boolean>(false);\n lmType = input<'button' | 'submit' | 'reset'>('button');\n\n // Computed class string\n classes = computed(() =>\n buttonVariants({\n variant: this.lmVariant(),\n size: this.lmSize(),\n }),\n );\n\n @HostBinding('class')\n get hostClasses(): string {\n return this.classes();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\nimport {\n cardVariants,\n cardContentVariants,\n type CardVariant,\n} from '@lumaui/core';\n\n@Component({\n selector: 'luma-card',\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n /**\n * Card visual style variant\n * - default: Gradient border wrapper style (default)\n * - shadow: Elevated card with shadow for primary content\n * - nested: Subtle background for sections within cards\n * - preview: For documentation examples\n */\n lmVariant = input<CardVariant>('default');\n\n // Computed class strings based on variant\n wrapperClasses = computed(() => cardVariants({ variant: this.lmVariant() }));\n contentClasses = computed(() =>\n cardContentVariants({ variant: this.lmVariant() }),\n );\n}\n","<div [class]=\"wrapperClasses()\">\n <div [class]=\"contentClasses()\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, input, computed } from '@angular/core';\nimport { cardTitleVariants, type CardTitleSize } from '@lumaui/core';\n\n@Directive({\n selector: '[lumaCardTitle]',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class CardTitleDirective {\n // Signal-based inputs with lm prefix (Angular 20+)\n lmSize = input<CardTitleSize>('normal');\n\n // Computed class string\n classes = computed(() => cardTitleVariants({ size: this.lmSize() }));\n}\n","import { Directive, input, computed } from '@angular/core';\nimport {\n cardDescriptionVariants,\n type CardDescriptionSize,\n} from '@lumaui/core';\n\n@Directive({\n selector: '[lumaCardDescription]',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class CardDescriptionDirective {\n // Signal-based inputs with lm prefix (Angular 20+)\n lmSize = input<CardDescriptionSize>('normal');\n\n // Computed class string\n classes = computed(() => cardDescriptionVariants({ size: this.lmSize() }));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[lumaCardHeader]',\n host: {\n class: 'mb-4',\n },\n})\nexport class CardHeaderDirective {\n // Structural directive for semantic card header region\n // Provides bottom margin for spacing between header and content\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[lumaCardContent]',\n host: {\n class: '',\n },\n})\nexport class CardContentDirective {\n // Semantic marker for card content region\n // No styles applied to preserve maximum flexibility\n // Maintained for backward compatibility and semantic HTML structure\n}\n","// Button exports\nexport * from './lib/button/button.directive';\n\n// Card exports\nexport * from './lib/card/card.component';\nexport * from './lib/card/card-title.directive';\nexport * from './lib/card/card-description.directive';\nexport * from './lib/card/card-header.directive';\nexport * from './lib/card/card-content.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,28 +1,20 @@
1
1
  {
2
2
  "name": "@lumaui/angular",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Angular components for Luma UI - Neo-Minimal design system",
5
- "type": "module",
6
- "main": "./src/index.ts",
7
- "types": "./src/index.ts",
8
- "exports": {
9
- ".": "./src/index.ts",
10
- "./button": "./src/lib/button/index.ts",
11
- "./card": "./src/lib/card/index.ts"
5
+ "dependencies": {
6
+ "@lumaui/core": "*",
7
+ "tslib": "^2.3.0"
12
8
  },
13
- "files": [
14
- "src/",
15
- "README.md"
16
- ],
17
9
  "peerDependencies": {
18
10
  "@angular/common": ">=19.0.0",
19
11
  "@angular/core": ">=19.0.0",
20
- "@lumaui/core": "^0.1.0",
21
12
  "class-variance-authority": "^0.7.1"
22
13
  },
23
14
  "publishConfig": {
24
15
  "access": "public"
25
16
  },
17
+ "sideEffects": false,
26
18
  "keywords": [
27
19
  "angular",
28
20
  "components",
@@ -42,5 +34,16 @@
42
34
  "homepage": "https://github.com/pureartisan/lumo#readme",
43
35
  "bugs": {
44
36
  "url": "https://github.com/pureartisan/lumo/issues"
37
+ },
38
+ "module": "fesm2022/lumaui-angular.mjs",
39
+ "typings": "types/lumaui-angular.d.ts",
40
+ "exports": {
41
+ "./package.json": {
42
+ "default": "./package.json"
43
+ },
44
+ ".": {
45
+ "types": "./types/lumaui-angular.d.ts",
46
+ "default": "./fesm2022/lumaui-angular.mjs"
47
+ }
45
48
  }
46
- }
49
+ }
@@ -0,0 +1,54 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ButtonVariant, ButtonSize, CardVariant, CardTitleSize, CardDescriptionSize } from '@lumaui/core';
3
+
4
+ declare class ButtonDirective {
5
+ lmVariant: _angular_core.InputSignal<ButtonVariant>;
6
+ lmSize: _angular_core.InputSignal<ButtonSize>;
7
+ lmDisabled: _angular_core.InputSignal<boolean>;
8
+ lmType: _angular_core.InputSignal<"button" | "submit" | "reset">;
9
+ classes: _angular_core.Signal<string>;
10
+ get hostClasses(): string;
11
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonDirective, never>;
12
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "button[lumaButton], a[lumaButton]", never, { "lmVariant": { "alias": "lmVariant"; "required": false; "isSignal": true; }; "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmType": { "alias": "lmType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
+ }
14
+
15
+ declare class CardComponent {
16
+ /**
17
+ * Card visual style variant
18
+ * - default: Gradient border wrapper style (default)
19
+ * - shadow: Elevated card with shadow for primary content
20
+ * - nested: Subtle background for sections within cards
21
+ * - preview: For documentation examples
22
+ */
23
+ lmVariant: _angular_core.InputSignal<CardVariant>;
24
+ wrapperClasses: _angular_core.Signal<string>;
25
+ contentClasses: _angular_core.Signal<string>;
26
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
27
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "luma-card", never, { "lmVariant": { "alias": "lmVariant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
28
+ }
29
+
30
+ declare class CardTitleDirective {
31
+ lmSize: _angular_core.InputSignal<CardTitleSize>;
32
+ classes: _angular_core.Signal<string>;
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardTitleDirective, never>;
34
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardTitleDirective, "[lumaCardTitle]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
+ }
36
+
37
+ declare class CardDescriptionDirective {
38
+ lmSize: _angular_core.InputSignal<CardDescriptionSize>;
39
+ classes: _angular_core.Signal<string>;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardDescriptionDirective, never>;
41
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardDescriptionDirective, "[lumaCardDescription]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
+ }
43
+
44
+ declare class CardHeaderDirective {
45
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardHeaderDirective, never>;
46
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardHeaderDirective, "[lumaCardHeader]", never, {}, {}, never, never, true, never>;
47
+ }
48
+
49
+ declare class CardContentDirective {
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardContentDirective, never>;
51
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardContentDirective, "[lumaCardContent]", never, {}, {}, never, never, true, never>;
52
+ }
53
+
54
+ export { ButtonDirective, CardComponent, CardContentDirective, CardDescriptionDirective, CardHeaderDirective, CardTitleDirective };
package/src/index.ts DELETED
@@ -1,9 +0,0 @@
1
- // Button exports
2
- export * from './lib/button/button.directive';
3
-
4
- // Card exports
5
- export * from './lib/card/card.component';
6
- export * from './lib/card/card-title.directive';
7
- export * from './lib/card/card-description.directive';
8
- export * from './lib/card/card-header.directive';
9
- export * from './lib/card/card-content.directive';