@kanso-protocol/grid 0.1.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.
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Kanso Protocol — Grid
|
|
6
|
+
*
|
|
7
|
+
* Responsive `display: grid` wrapper. Equal-width columns, preset
|
|
8
|
+
* gap scale. Independent row-gap via `gapRow` when columns need
|
|
9
|
+
* tighter vertical rhythm than horizontal.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <kp-grid [columns]="3" gap="md">
|
|
13
|
+
* <kp-card/><kp-card/><kp-card/>
|
|
14
|
+
* </kp-grid>
|
|
15
|
+
*/
|
|
16
|
+
class KpGridComponent {
|
|
17
|
+
columns = 3;
|
|
18
|
+
gap = 'md';
|
|
19
|
+
/** Optional independent row gap; if null, matches `gap`. */
|
|
20
|
+
gapRow = null;
|
|
21
|
+
get hostClasses() {
|
|
22
|
+
const c = [
|
|
23
|
+
'kp-grid',
|
|
24
|
+
`kp-grid--cols-${this.columns}`,
|
|
25
|
+
`kp-grid--gap-${this.gap}`,
|
|
26
|
+
];
|
|
27
|
+
if (this.gapRow)
|
|
28
|
+
c.push(`kp-grid--rgap-${this.gapRow}`);
|
|
29
|
+
return c.join(' ');
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KpGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: KpGridComponent, isStandalone: true, selector: "kp-grid", inputs: { columns: "columns", gap: "gap", gapRow: "gapRow" }, host: { properties: { "class": "hostClasses" } }, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:grid;grid-template-columns:repeat(var(--kp-grid-cols, 3),minmax(0,1fr));column-gap:var(--kp-grid-col-gap, 16px);row-gap:var(--kp-grid-row-gap, var(--kp-grid-col-gap, 16px))}:host(.kp-grid--cols-2){--kp-grid-cols: 2}:host(.kp-grid--cols-3){--kp-grid-cols: 3}:host(.kp-grid--cols-4){--kp-grid-cols: 4}:host(.kp-grid--cols-6){--kp-grid-cols: 6}:host(.kp-grid--cols-12){--kp-grid-cols: 12}:host(.kp-grid--gap-xs){--kp-grid-col-gap: var(--kp-spacing-xs, 12px)}:host(.kp-grid--gap-sm){--kp-grid-col-gap: var(--kp-spacing-sm, 16px)}:host(.kp-grid--gap-md){--kp-grid-col-gap: var(--kp-spacing-md, 20px)}:host(.kp-grid--gap-lg){--kp-grid-col-gap: var(--kp-spacing-lg, 24px)}:host(.kp-grid--gap-xl){--kp-grid-col-gap: var(--kp-spacing-xl, 32px)}:host(.kp-grid--rgap-xs){--kp-grid-row-gap: var(--kp-spacing-xs, 12px)}:host(.kp-grid--rgap-sm){--kp-grid-row-gap: var(--kp-spacing-sm, 16px)}:host(.kp-grid--rgap-md){--kp-grid-row-gap: var(--kp-spacing-md, 20px)}:host(.kp-grid--rgap-lg){--kp-grid-row-gap: var(--kp-spacing-lg, 24px)}:host(.kp-grid--rgap-xl){--kp-grid-row-gap: var(--kp-spacing-xl, 32px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KpGridComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'kp-grid', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class]': 'hostClasses' }, template: `<ng-content/>`, styles: [":host{display:grid;grid-template-columns:repeat(var(--kp-grid-cols, 3),minmax(0,1fr));column-gap:var(--kp-grid-col-gap, 16px);row-gap:var(--kp-grid-row-gap, var(--kp-grid-col-gap, 16px))}:host(.kp-grid--cols-2){--kp-grid-cols: 2}:host(.kp-grid--cols-3){--kp-grid-cols: 3}:host(.kp-grid--cols-4){--kp-grid-cols: 4}:host(.kp-grid--cols-6){--kp-grid-cols: 6}:host(.kp-grid--cols-12){--kp-grid-cols: 12}:host(.kp-grid--gap-xs){--kp-grid-col-gap: var(--kp-spacing-xs, 12px)}:host(.kp-grid--gap-sm){--kp-grid-col-gap: var(--kp-spacing-sm, 16px)}:host(.kp-grid--gap-md){--kp-grid-col-gap: var(--kp-spacing-md, 20px)}:host(.kp-grid--gap-lg){--kp-grid-col-gap: var(--kp-spacing-lg, 24px)}:host(.kp-grid--gap-xl){--kp-grid-col-gap: var(--kp-spacing-xl, 32px)}:host(.kp-grid--rgap-xs){--kp-grid-row-gap: var(--kp-spacing-xs, 12px)}:host(.kp-grid--rgap-sm){--kp-grid-row-gap: var(--kp-spacing-sm, 16px)}:host(.kp-grid--rgap-md){--kp-grid-row-gap: var(--kp-spacing-md, 20px)}:host(.kp-grid--rgap-lg){--kp-grid-row-gap: var(--kp-spacing-lg, 24px)}:host(.kp-grid--rgap-xl){--kp-grid-row-gap: var(--kp-spacing-xl, 32px)}\n"] }]
|
|
37
|
+
}], propDecorators: { columns: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], gap: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], gapRow: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}] } });
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Generated bundle index. Do not edit.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export { KpGridComponent };
|
|
50
|
+
//# sourceMappingURL=kanso-protocol-grid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanso-protocol-grid.mjs","sources":["../../../../../packages/patterns/grid/src/grid.component.ts","../../../../../packages/patterns/grid/src/kanso-protocol-grid.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\n\nexport type KpGridColumns = 2 | 3 | 4 | 6 | 12;\nexport type KpGridGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Kanso Protocol — Grid\n *\n * Responsive `display: grid` wrapper. Equal-width columns, preset\n * gap scale. Independent row-gap via `gapRow` when columns need\n * tighter vertical rhythm than horizontal.\n *\n * @example\n * <kp-grid [columns]=\"3\" gap=\"md\">\n * <kp-card/><kp-card/><kp-card/>\n * </kp-grid>\n */\n@Component({\n selector: 'kp-grid',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'hostClasses' },\n template: `<ng-content/>`,\n styles: [`\n :host {\n display: grid;\n grid-template-columns: repeat(var(--kp-grid-cols, 3), minmax(0, 1fr));\n column-gap: var(--kp-grid-col-gap, 16px);\n row-gap: var(--kp-grid-row-gap, var(--kp-grid-col-gap, 16px));\n }\n\n :host(.kp-grid--cols-2) { --kp-grid-cols: 2; }\n :host(.kp-grid--cols-3) { --kp-grid-cols: 3; }\n :host(.kp-grid--cols-4) { --kp-grid-cols: 4; }\n :host(.kp-grid--cols-6) { --kp-grid-cols: 6; }\n :host(.kp-grid--cols-12) { --kp-grid-cols: 12; }\n\n :host(.kp-grid--gap-xs) { --kp-grid-col-gap: var(--kp-spacing-xs, 12px); }\n :host(.kp-grid--gap-sm) { --kp-grid-col-gap: var(--kp-spacing-sm, 16px); }\n :host(.kp-grid--gap-md) { --kp-grid-col-gap: var(--kp-spacing-md, 20px); }\n :host(.kp-grid--gap-lg) { --kp-grid-col-gap: var(--kp-spacing-lg, 24px); }\n :host(.kp-grid--gap-xl) { --kp-grid-col-gap: var(--kp-spacing-xl, 32px); }\n\n :host(.kp-grid--rgap-xs) { --kp-grid-row-gap: var(--kp-spacing-xs, 12px); }\n :host(.kp-grid--rgap-sm) { --kp-grid-row-gap: var(--kp-spacing-sm, 16px); }\n :host(.kp-grid--rgap-md) { --kp-grid-row-gap: var(--kp-spacing-md, 20px); }\n :host(.kp-grid--rgap-lg) { --kp-grid-row-gap: var(--kp-spacing-lg, 24px); }\n :host(.kp-grid--rgap-xl) { --kp-grid-row-gap: var(--kp-spacing-xl, 32px); }\n `],\n})\nexport class KpGridComponent {\n @Input() columns: KpGridColumns = 3;\n @Input() gap: KpGridGap = 'md';\n /** Optional independent row gap; if null, matches `gap`. */\n @Input() gapRow: KpGridGap | null = null;\n\n get hostClasses(): string {\n const c = [\n 'kp-grid',\n `kp-grid--cols-${this.columns}`,\n `kp-grid--gap-${this.gap}`,\n ];\n if (this.gapRow) c.push(`kp-grid--rgap-${this.gapRow}`);\n return c.join(' ');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AASA;;;;;;;;;;;AAWG;MAkCU,eAAe,CAAA;IACjB,OAAO,GAAkB,CAAC;IAC1B,GAAG,GAAc,IAAI;;IAErB,MAAM,GAAqB,IAAI;AAExC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,MAAM,CAAC,GAAG;YACR,SAAS;YACT,CAAA,cAAA,EAAiB,IAAI,CAAC,OAAO,CAAA,CAAE;YAC/B,CAAA,aAAA,EAAgB,IAAI,CAAC,GAAG,CAAA,CAAE;SAC3B;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;AACvD,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACpB;uGAdW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mLA5BhB,CAAA,aAAA,CAAe,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,olCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA4Bd,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjC3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EACV,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,SAAS,EAAE,aAAa,EAAE,YACxB,CAAA,aAAA,CAAe,EAAA,MAAA,EAAA,CAAA,olCAAA,CAAA,EAAA;;sBA6BxB;;sBACA;;sBAEA;;;AC1DH;;AAEG;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kanso-protocol/grid",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/core": "^18.0.0",
|
|
7
|
+
"@angular/common": "^18.0.0",
|
|
8
|
+
"@kanso-protocol/core": "^0.0.1"
|
|
9
|
+
},
|
|
10
|
+
"description": "Kanso Protocol — grid (pattern).",
|
|
11
|
+
"author": "GregNBlack",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/GregNBlack/kanso-protocol.git",
|
|
15
|
+
"directory": "packages/patterns/grid"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://gregnblack.github.io/kanso-protocol/?path=/docs/patterns-grid--docs",
|
|
18
|
+
"bugs": "https://github.com/GregNBlack/kanso-protocol/issues",
|
|
19
|
+
"keywords": [
|
|
20
|
+
"design-system",
|
|
21
|
+
"angular",
|
|
22
|
+
"kanso",
|
|
23
|
+
"grid"
|
|
24
|
+
],
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"module": "fesm2022/kanso-protocol-grid.mjs",
|
|
27
|
+
"typings": "types/kanso-protocol-grid.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
"./package.json": {
|
|
30
|
+
"default": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./types/kanso-protocol-grid.d.ts",
|
|
34
|
+
"default": "./fesm2022/kanso-protocol-grid.mjs"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"type": "module",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"tslib": "^2.3.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type KpGridColumns = 2 | 3 | 4 | 6 | 12;
|
|
4
|
+
type KpGridGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
5
|
+
/**
|
|
6
|
+
* Kanso Protocol — Grid
|
|
7
|
+
*
|
|
8
|
+
* Responsive `display: grid` wrapper. Equal-width columns, preset
|
|
9
|
+
* gap scale. Independent row-gap via `gapRow` when columns need
|
|
10
|
+
* tighter vertical rhythm than horizontal.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <kp-grid [columns]="3" gap="md">
|
|
14
|
+
* <kp-card/><kp-card/><kp-card/>
|
|
15
|
+
* </kp-grid>
|
|
16
|
+
*/
|
|
17
|
+
declare class KpGridComponent {
|
|
18
|
+
columns: KpGridColumns;
|
|
19
|
+
gap: KpGridGap;
|
|
20
|
+
/** Optional independent row gap; if null, matches `gap`. */
|
|
21
|
+
gapRow: KpGridGap | null;
|
|
22
|
+
get hostClasses(): string;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KpGridComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KpGridComponent, "kp-grid", never, { "columns": { "alias": "columns"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "gapRow": { "alias": "gapRow"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { KpGridComponent };
|
|
28
|
+
export type { KpGridColumns, KpGridGap };
|