@molecule/app-pricing-table-angular 0.0.0-stage → 0.0.1-stage

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,52 @@
1
+ /**
2
+ * Types for the Angular features × plans pricing comparison table.
3
+ *
4
+ * @module
5
+ */
6
+ import type { TemplateRef } from '@angular/core';
7
+ /** A node-valued field: a template (projected content) or plain text. */
8
+ type NodeContent = TemplateRef<unknown> | string | number;
9
+ /** Describes a single plan column in the pricing table. */
10
+ export interface PricingPlan {
11
+ /** Stable plan id; also the key its feature values are read by. */
12
+ id: string;
13
+ /** Plan name, rendered as the column heading. A template or a plain string. */
14
+ name: NodeContent;
15
+ /** Optional one-line plan description. A template or a plain string. */
16
+ description?: NodeContent;
17
+ /** Plan price (a formatted string or a template). */
18
+ price: NodeContent;
19
+ /** Optional billing interval shown beside the price (e.g. `/mo`). */
20
+ interval?: NodeContent;
21
+ /**
22
+ * Call to action for this column. `onClick` receives the click event, as
23
+ * React's `Button` passes it.
24
+ */
25
+ cta?: {
26
+ label: NodeContent;
27
+ onClick?: (event?: MouseEvent) => void;
28
+ href?: string;
29
+ };
30
+ /** Visually emphasise as recommended / featured. */
31
+ recommended?: boolean;
32
+ }
33
+ /** Describes a single feature row and its per-plan values in the pricing table. */
34
+ export interface PricingFeature {
35
+ /** Row label. A template or a plain string. */
36
+ label: NodeContent;
37
+ /** Per-plan-id values: `true` / `false` / a string / a template. */
38
+ values: Record<string, boolean | string | NodeContent>;
39
+ /** Optional category / group heading rendered above this row. */
40
+ groupHeading?: NodeContent;
41
+ }
42
+ /** Props accepted by {@link PricingTable} — the same props the React package accepts. */
43
+ export interface PricingTableProps {
44
+ /** The plan columns, left to right. */
45
+ plans: PricingPlan[];
46
+ /** The feature rows, top to bottom. */
47
+ features: PricingFeature[];
48
+ /** Extra classes on the outer wrapper. */
49
+ className?: string;
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,yEAAyE;AACzE,KAAK,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAA;IACV,+EAA+E;IAC/E,IAAI,EAAE,WAAW,CAAA;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,qDAAqD;IACrD,KAAK,EAAE,WAAW,CAAA;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;;OAGG;IACH,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnF,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,WAAW,CAAA;IAClB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC,CAAA;IACtD,iEAAiE;IACjE,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,uCAAuC;IACvC,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Types for the Angular features × plans pricing comparison table.
3
+ *
4
+ * @module
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,6 +1,71 @@
1
1
  {
2
2
  "name": "@molecule/app-pricing-table-angular",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.0.1-stage",
4
+ "description": "Features × plans matrix for side-by-side plan comparison",
5
+ "homepage": "https://www.molecule.dev/packages/app-pricing-table-angular",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "ngc",
21
+ "dev": "ngc --watch",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest"
24
+ },
25
+ "keywords": [
26
+ "molecule",
27
+ "pricing-table",
28
+ "angular"
29
+ ],
30
+ "author": "Molecule Dev, Inc. (https://molecule.dev)",
31
+ "license": "Apache-2.0",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/molecule-dev/molecule.git",
35
+ "directory": "packages/app/features/pricing-table-angular"
36
+ },
37
+ "engines": {
38
+ "node": ">=20"
39
+ },
40
+ "bugs": "https://github.com/molecule-dev/molecule/issues",
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "peerDependencies": {
45
+ "@angular/common": "^22.0.0",
46
+ "@angular/core": "^22.0.0",
47
+ "@angular/platform-browser": "^22.0.0",
48
+ "@molecule/app-angular": "^3.5.0",
49
+ "@molecule/app-ui": "^1.0.1",
50
+ "@molecule/app-ui-angular": "^1.1.0"
51
+ },
52
+ "devDependencies": {
53
+ "@angular/common": "22.2.3",
54
+ "@angular/compiler": "22.2.3",
55
+ "@angular/compiler-cli": "22.2.3",
56
+ "@angular/core": "22.2.3",
57
+ "@angular/platform-browser": "22.2.3",
58
+ "@molecule/app-angular": "3.6.0",
59
+ "@molecule/app-framework-conformance": "0.0.0",
60
+ "@molecule/app-i18n": "1.2.1",
61
+ "@molecule/app-icons": "1.0.4",
62
+ "@molecule/app-ui": "1.3.11",
63
+ "@molecule/app-ui-angular": "1.1.2",
64
+ "@types/node": "26.6.5",
65
+ "jsdom": "30.1.3",
66
+ "rxjs": "7.8.2",
67
+ "typescript": "6.0.3",
68
+ "vitest": "4.1.12",
69
+ "zone.js": "0.16.3"
70
+ }
71
+ }