diff --git a/apps/ng-primitives-docs/src/app/examples/card/card.example.ts b/apps/ng-primitives-docs/src/app/examples/card/card.example.ts new file mode 100644 index 0000000..e34f8d7 --- /dev/null +++ b/apps/ng-primitives-docs/src/app/examples/card/card.example.ts @@ -0,0 +1,16 @@ +import { MgnpCard } from '@mgremy/ng-primitives-extended/card'; + +import { Component } from '@angular/core'; + +@Component({ + imports: [MgnpCard], + template: ` + + + + `, + host: { + class: 'flex! flex-wrap gap-4 items-center', + }, +}) +export default class CardExample {} diff --git a/apps/ng-primitives-docs/src/app/pages/(documentation)/extended/card.md b/apps/ng-primitives-docs/src/app/pages/(documentation)/extended/card.md new file mode 100644 index 0000000..7ffb491 --- /dev/null +++ b/apps/ng-primitives-docs/src/app/pages/(documentation)/extended/card.md @@ -0,0 +1,16 @@ +--- +name: 'Card' +sourceUrl: 'https://github.com/mgremy/nx_source/tree/main/libs/ng-primitives-extended/card' +--- + +# Card + +Display a card component + +## Usage + + + +## Theme + + diff --git a/libs/ng-primitives-extended/card/README.md b/libs/ng-primitives-extended/card/README.md new file mode 100644 index 0000000..1ff9794 --- /dev/null +++ b/libs/ng-primitives-extended/card/README.md @@ -0,0 +1,4 @@ +# @mgremy/ng-primitives/src/lib/card + +Secondary entry point of `@mgremy/ng-primitives-extended`. It can be used by importing from +`@mgremy/ng-primitives-extended/card`. diff --git a/libs/ng-primitives-extended/card/ng-package.json b/libs/ng-primitives-extended/card/ng-package.json new file mode 100644 index 0000000..c781f0d --- /dev/null +++ b/libs/ng-primitives-extended/card/ng-package.json @@ -0,0 +1,5 @@ +{ + "lib": { + "entryFile": "src/index.ts" + } +} diff --git a/libs/ng-primitives-extended/card/src/index.ts b/libs/ng-primitives-extended/card/src/index.ts new file mode 100644 index 0000000..022a1d0 --- /dev/null +++ b/libs/ng-primitives-extended/card/src/index.ts @@ -0,0 +1 @@ +export * from './lib/mgnp-card/mgnp-card.component'; diff --git a/libs/ng-primitives-extended/card/src/lib/mgnp-card/mgnp-card.component.ts b/libs/ng-primitives-extended/card/src/lib/mgnp-card/mgnp-card.component.ts new file mode 100644 index 0000000..7d3861c --- /dev/null +++ b/libs/ng-primitives-extended/card/src/lib/mgnp-card/mgnp-card.component.ts @@ -0,0 +1,21 @@ +import { PropertyType } from '@mgremy/ng-primitives-extended'; + +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; + +export type MgnpCardOrientation = PropertyType<'vertical' | 'horizontal'>; + +@Component({ + selector: 'mgnp-card', + imports: [], + standalone: true, + template: ``, + providers: [], + changeDetection: ChangeDetectionStrategy.OnPush, + host: { + 'data-mgnp-component': 'mgnp-card', + '[attr.data-mgnp-orientation]': 'orientation()', + }, +}) +export class MgnpCard { + readonly orientation = input('vertical'); +} diff --git a/libs/ng-primitives-extended/src/index.ts b/libs/ng-primitives-extended/src/index.ts index 7646bbd..7db3f96 100644 --- a/libs/ng-primitives-extended/src/index.ts +++ b/libs/ng-primitives-extended/src/index.ts @@ -1 +1 @@ -export default null; +export * from './lib/property-type'; diff --git a/libs/ng-primitives-extended/src/lib/property-type.ts b/libs/ng-primitives-extended/src/lib/property-type.ts new file mode 100644 index 0000000..7ed048b --- /dev/null +++ b/libs/ng-primitives-extended/src/lib/property-type.ts @@ -0,0 +1 @@ +export type PropertyType = T | (string & {}); diff --git a/libs/ng-primitives-extended/theme/components/card.css b/libs/ng-primitives-extended/theme/components/card.css new file mode 100644 index 0000000..ddac83d --- /dev/null +++ b/libs/ng-primitives-extended/theme/components/card.css @@ -0,0 +1,40 @@ +@utility mgnp-card { + display: flex; + gap: --spacing(4); + + @variant data-[mgnp-direction=vertical] { + flex-direction: row; + } + + @variant data-[mgnp-direction=horizontal] { + flex-direction: column; + } +} + +@utility mgnp-card-header { + +} + +@utility mgnp-card-content { +} + +@utility mgnp-card-footer { +} + +@layer base { + [data-mgnp-component='mgnp-card'] { + @apply mgnp-card transition; + } + + [data-mgnp-component='mgnp-card-header'] { + @apply mgnp-card-header transition; + } + + [data-mgnp-component='mgnp-card-content'] { + @apply mgnp-card-content transition; + } + + [data-mgnp-component='mgnp-card-footer'] { + @apply mgnp-card-footer transition; + } +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 19371cf..2f701e3 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -26,6 +26,7 @@ "@mgremy/ng-primitives/toast": ["libs/ng-primitives/toast/src/index.ts"], "@mgremy/ng-primitives/tooltip": ["libs/ng-primitives/tooltip/src/index.ts"], "@mgremy/ng-primitives-extended": ["libs/ng-primitives-extended/src/index.ts"], + "@mgremy/ng-primitives-extended/card": ["libs/ng-primitives-extended/card/src/index.ts"], "@mgremy/ng-primitives-extended/loader": ["libs/ng-primitives-extended/loader/src/index.ts"], "@mgremy/ng-primitives-extended/table": ["libs/ng-primitives-extended/table/src/index.ts"], "@mgremy/core": ["libs/core/src/index.ts"]