@appcorp/app-corp-vista 0.2.8 → 0.2.9

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.
@@ -1,2 +1,3 @@
1
- import React from 'react';
2
- export declare const VistaProductOverviewV3: () => React.JSX.Element;
1
+ import { FC } from 'react';
2
+ import { VistaProductOverviewV3Props } from '../../type/vista-product-overview-type';
3
+ export declare const VistaProductOverviewV3: FC<VistaProductOverviewV3Props>;
@@ -57,23 +57,27 @@ var product = {
57
57
  ],
58
58
  };
59
59
  var reviews = { average: 4, totalCount: 1624 };
60
- var VistaProductOverviewV3 = function () {
61
- var _a = (0, react_1.useState)(product.sizes[0]), selectedSize = _a[0], setSelectedSize = _a[1];
60
+ var VistaProductOverviewV3 = function (_a) {
61
+ var breadcrumbs = _a.breadcrumbs, name = _a.name, price = _a.price, variants = _a.variants;
62
+ var _b = (0, react_1.useState)(variants.items[0]), selectedSize = _b[0], setSelectedSize = _b[1];
62
63
  return (react_1.default.createElement("div", { className: "bg-white" },
63
64
  react_1.default.createElement("div", { className: "mx-auto max-w-2xl px-4 py-16 sm:px-6 sm:py-24 lg:grid lg:max-w-7xl lg:grid-cols-2 lg:gap-x-8 lg:px-8" },
64
65
  react_1.default.createElement("div", { className: "lg:max-w-lg lg:self-end" },
65
66
  react_1.default.createElement("nav", { "aria-label": "Breadcrumb" },
66
- react_1.default.createElement("ol", { role: "list", className: "flex items-center space-x-2" }, product.breadcrumbs.map(function (breadcrumb, breadcrumbIdx) { return (react_1.default.createElement("li", { key: breadcrumb.id },
67
- react_1.default.createElement("div", { className: "flex items-center text-sm" },
68
- react_1.default.createElement("a", { href: breadcrumb.href, className: "font-medium text-gray-500 hover:text-gray-900" }, breadcrumb.name),
69
- breadcrumbIdx !== product.breadcrumbs.length - 1 ? (react_1.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 20 20", "aria-hidden": "true", className: "ml-2 size-5 shrink-0 text-gray-300" },
70
- react_1.default.createElement("path", { d: "M5.555 17.776l8-16 .894.448-8 16-.894-.448z" }))) : null))); }))),
67
+ react_1.default.createElement("ol", { role: "list", className: "flex items-center space-x-2" }, breadcrumbs.map(function (_a, breadcrumbIdx) {
68
+ var id = _a.id, label = _a.label, route = _a.route;
69
+ return (react_1.default.createElement("li", { key: id },
70
+ react_1.default.createElement("div", { className: "flex items-center text-sm" },
71
+ react_1.default.createElement("a", { href: route, className: "font-medium text-gray-500 hover:text-gray-900" }, label),
72
+ breadcrumbIdx !== product.breadcrumbs.length - 1 ? (react_1.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 20 20", "aria-hidden": "true", className: "ml-2 size-5 shrink-0 text-gray-300" },
73
+ react_1.default.createElement("path", { d: "M5.555 17.776l8-16 .894.448-8 16-.894-.448z" }))) : null)));
74
+ }))),
71
75
  react_1.default.createElement("div", { className: "mt-4" },
72
- react_1.default.createElement("h1", { className: "text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl" }, product.name)),
76
+ react_1.default.createElement("h1", { className: "text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl" }, name)),
73
77
  react_1.default.createElement("section", { "aria-labelledby": "information-heading", className: "mt-4" },
74
78
  react_1.default.createElement("h2", { id: "information-heading", className: "sr-only" }, "Product information"),
75
79
  react_1.default.createElement("div", { className: "flex items-center" },
76
- react_1.default.createElement("p", { className: "text-lg text-gray-900 sm:text-xl" }, product.price),
80
+ react_1.default.createElement("p", { className: "text-lg text-gray-900 sm:text-xl" }, price),
77
81
  react_1.default.createElement("div", { className: "ml-4 border-l border-gray-300 pl-4" },
78
82
  react_1.default.createElement("h2", { className: "sr-only" }, "Reviews"),
79
83
  react_1.default.createElement("div", { className: "flex items-center" },
@@ -98,17 +102,17 @@ var VistaProductOverviewV3 = function () {
98
102
  react_1.default.createElement("form", null,
99
103
  react_1.default.createElement("div", { className: "sm:flex sm:justify-between" },
100
104
  react_1.default.createElement("fieldset", null,
101
- react_1.default.createElement("legend", { className: "block text-sm font-medium text-gray-700" }, "Size"),
102
- react_1.default.createElement(react_2.RadioGroup, { value: selectedSize, onChange: setSelectedSize, className: "mt-1 grid grid-cols-1 gap-4 sm:grid-cols-2" }, product.sizes.map(function (size) { return (react_1.default.createElement(react_2.Radio, { key: size.name, as: "div", value: size, "aria-label": size.name, "aria-description": size.description, className: "group relative block cursor-pointer rounded-lg border border-gray-300 p-4 focus:outline-hidden data-focus:ring-2 data-focus:ring-indigo-500" },
103
- react_1.default.createElement("p", { className: "text-base font-medium text-gray-900" }, size.name),
104
- react_1.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, size.description),
105
- react_1.default.createElement("div", { "aria-hidden": "true", className: "pointer-events-none absolute -inset-px rounded-lg border-2 border-transparent group-data-checked:border-indigo-500 group-data-focus:border" }))); })))),
105
+ react_1.default.createElement("legend", { className: "block text-sm font-medium text-gray-700" }, variants.title),
106
+ react_1.default.createElement(react_2.RadioGroup, { value: selectedSize, onChange: setSelectedSize, className: "mt-1 grid grid-cols-1 gap-4 sm:grid-cols-2" }, variants.items.map(function (item) { return (react_1.default.createElement(react_2.Radio, { key: item.title, as: "div", value: item, "aria-label": item.title, "aria-description": item.description, className: "group relative block cursor-pointer rounded-lg border border-gray-300 p-4 focus:outline-hidden data-focus:ring-2 data-focus:ring-primary" },
107
+ react_1.default.createElement("p", { className: "text-base font-medium text-gray-900" }, item.title),
108
+ react_1.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, item.description),
109
+ react_1.default.createElement("div", { "aria-hidden": "true", className: "pointer-events-none absolute -inset-px rounded-lg border-2 border-transparent group-data-checked:border-primary group-data-focus:border" }))); })))),
106
110
  react_1.default.createElement("div", { className: "mt-4" },
107
111
  react_1.default.createElement("a", { href: "#", className: "group inline-flex text-sm text-gray-500 hover:text-gray-700" },
108
112
  react_1.default.createElement("span", null, "What size should I buy?"),
109
113
  react_1.default.createElement(solid_1.QuestionMarkCircleIcon, { "aria-hidden": "true", className: "ml-2 size-5 shrink-0 text-gray-400 group-hover:text-gray-500" }))),
110
114
  react_1.default.createElement("div", { className: "mt-10" },
111
- react_1.default.createElement("button", { type: "submit", className: "flex w-full items-center justify-center rounded-md border border-transparent bg-indigo-600 px-8 py-3 text-base font-medium text-white hover:bg-indigo-700 focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 focus:ring-offset-gray-50 focus:outline-hidden" }, "Add to bag")),
115
+ react_1.default.createElement("button", { type: "submit", className: "flex w-full items-center justify-center rounded-md border border-transparent bg-primary px-8 py-3 text-base font-medium text-white hover:bg-indigo-700 focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 focus:ring-offset-gray-50 focus:outline-hidden" }, "Add to bag")),
112
116
  react_1.default.createElement("div", { className: "mt-6 text-center" },
113
117
  react_1.default.createElement("a", { href: "#", className: "group inline-flex text-base font-medium" },
114
118
  react_1.default.createElement(outline_1.ShieldCheckIcon, { "aria-hidden": "true", className: "mr-2 size-6 shrink-0 text-gray-400 group-hover:text-gray-500" }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appcorp/app-corp-vista",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "scripts": {
5
5
  "build": "yarn clean && yarn build:ts && cp package.json lib && cp README.md lib",
6
6
  "build:next": "next build",
@@ -4,8 +4,28 @@ export interface VistaProductOverviewV1Props {
4
4
  export interface VistaProductOverviewV2Props {
5
5
  id: string;
6
6
  }
7
- export interface VistaProductOverviewV3Props {
7
+ export interface VistaProductOverviewV3BreadcrumbItem {
8
8
  id: string;
9
+ label: string;
10
+ route: string;
11
+ }
12
+ export interface VistaProductOverviewV3Variant {
13
+ enabled: boolean;
14
+ order: number;
15
+ title: string;
16
+ items: VistaProductOverviewV3VariantItem[];
17
+ }
18
+ export interface VistaProductOverviewV3VariantItem {
19
+ description: string;
20
+ enabled: boolean;
21
+ order: number;
22
+ title: string;
23
+ }
24
+ export interface VistaProductOverviewV3Props {
25
+ breadcrumbs: VistaProductOverviewV3BreadcrumbItem[];
26
+ name: string;
27
+ price: string;
28
+ variants: VistaProductOverviewV3Variant;
9
29
  }
10
30
  export interface VistaProductOverviewV4Props {
11
31
  id: string;