@ikas/component-cli 0.116.0 → 0.117.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.
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +12 -12
- package/dist/commands/build.js.map +1 -1
- package/dist/utils/compile.d.ts.map +1 -1
- package/dist/utils/compile.js +11 -9
- package/dist/utils/compile.js.map +1 -1
- package/package.json +1 -1
- package/templates/create-full/ikas.config.json +983 -983
- package/templates/create-full/src/components/AccountAddresses/components/AddressModal/index.tsx +6 -9
- package/templates/create-full/src/components/AccountAddresses/components/AddressModal/styles.css +1 -0
- package/templates/create-full/src/components/AccountAddresses/index.tsx +12 -12
- package/templates/create-full/src/components/AccountFavorites/index.tsx +3 -3
- package/templates/create-full/src/components/AccountInfo/index.tsx +5 -5
- package/templates/create-full/src/components/AccountInfoContent/index.tsx +5 -5
- package/templates/create-full/src/components/AccountOrderDetail/index.tsx +29 -29
- package/templates/create-full/src/components/AccountOrders/index.tsx +8 -8
- package/templates/create-full/src/components/BlogHome/index.tsx +3 -3
- package/templates/create-full/src/components/BlogPost/index.tsx +3 -3
- package/templates/create-full/src/components/CartPage/index.tsx +13 -13
- package/templates/create-full/src/components/CategoryList/components/CategoryListControls/index.tsx +1 -1
- package/templates/create-full/src/components/CategoryList/index.tsx +13 -13
- package/templates/create-full/src/components/CustomerEmailVerification/index.tsx +14 -14
- package/templates/create-full/src/components/Footer/index.tsx +3 -3
- package/templates/create-full/src/components/ForgotPassword/components/ForgotPasswordForm/index.tsx +10 -10
- package/templates/create-full/src/components/Login/components/LoginForm/index.tsx +13 -13
- package/templates/create-full/src/components/Navbar/components/MobileMenu/index.tsx +1 -1
- package/templates/create-full/src/components/Navbar/index.tsx +19 -19
- package/templates/create-full/src/components/ProductDetail/index.tsx +1 -1
- package/templates/create-full/src/components/ProductDetailAddToCart/index.tsx +7 -7
- package/templates/create-full/src/components/ProductDetailBundleFurniture/index.tsx +8 -8
- package/templates/create-full/src/components/ProductDetailBundleProduct/index.tsx +3 -3
- package/templates/create-full/src/components/ProductDetailDescription/index.tsx +1 -1
- package/templates/create-full/src/components/ProductDetailOffer/components/OfferCard/index.tsx +2 -2
- package/templates/create-full/src/components/ProductDetailOffer/index.tsx +9 -9
- package/templates/create-full/src/components/ProductDetailOptionSet/index.tsx +7 -7
- package/templates/create-full/src/components/ProductDetailSku/index.tsx +1 -1
- package/templates/create-full/src/components/ProductDetailVariant/types.ts +1 -1
- package/templates/create-full/src/components/ProductSlider/index.tsx +4 -4
- package/templates/create-full/src/components/RecoverPassword/components/RecoverPasswordForm/index.tsx +10 -10
- package/templates/create-full/src/components/Register/components/RegisterForm/index.tsx +15 -15
- package/templates/create-full/src/global-types.ts +0 -2
- package/templates/create-full/src/global.css +4 -0
- package/templates/create-full/src/hooks/useScrollLock.ts +0 -4
- package/templates/create-full/src/sub-components/CartItem/components/BundleProducts/index.tsx +1 -1
- package/templates/create-full/src/sub-components/Modal/index.tsx +4 -2
- package/templates/create-full/src/sub-components/ProductCard/index.tsx +4 -4
- package/templates/create-full/claude-md +0 -737
package/templates/create-full/src/components/AccountAddresses/components/AddressModal/index.tsx
CHANGED
|
@@ -101,10 +101,11 @@ const AddressModal = observer(function AddressModal({
|
|
|
101
101
|
id: string,
|
|
102
102
|
type?: string,
|
|
103
103
|
) => {
|
|
104
|
-
if (!field
|
|
104
|
+
if (!field) return null;
|
|
105
|
+
|
|
105
106
|
return (
|
|
106
107
|
<FormItem
|
|
107
|
-
label={field.label}
|
|
108
|
+
label={field.label ?? ""}
|
|
108
109
|
htmlFor={id}
|
|
109
110
|
status={getFieldStatus(field)}
|
|
110
111
|
helper={getFieldHelper(field)}
|
|
@@ -128,7 +129,7 @@ const AddressModal = observer(function AddressModal({
|
|
|
128
129
|
setter: FormFieldSetter,
|
|
129
130
|
id: string,
|
|
130
131
|
) => {
|
|
131
|
-
if (!field
|
|
132
|
+
if (!field) return null;
|
|
132
133
|
|
|
133
134
|
if (field.isFreeText || !options?.length) {
|
|
134
135
|
return renderInput(field, setter, id);
|
|
@@ -136,7 +137,7 @@ const AddressModal = observer(function AddressModal({
|
|
|
136
137
|
|
|
137
138
|
return (
|
|
138
139
|
<FormItem
|
|
139
|
-
label={field.label}
|
|
140
|
+
label={field.label ?? ""}
|
|
140
141
|
htmlFor={id}
|
|
141
142
|
status={getFieldStatus(field)}
|
|
142
143
|
helper={getFieldHelper(field)}
|
|
@@ -286,11 +287,7 @@ const AddressModal = observer(function AddressModal({
|
|
|
286
287
|
className="kombos-address-modal__form"
|
|
287
288
|
onSubmit={handleSubmit}
|
|
288
289
|
>
|
|
289
|
-
{renderInput(
|
|
290
|
-
addressForm.title,
|
|
291
|
-
setAddressFormTitle,
|
|
292
|
-
"addr-title",
|
|
293
|
-
)}
|
|
290
|
+
{renderInput(addressForm.title, setAddressFormTitle, "addr-title")}
|
|
294
291
|
{renderRowLayout(addressForm.addressFormat ?? [], renderFormField)}
|
|
295
292
|
</form>
|
|
296
293
|
)}
|
|
@@ -11,18 +11,18 @@ import ConfirmModal from "../../sub-components/ConfirmModal";
|
|
|
11
11
|
import { Props } from "./types";
|
|
12
12
|
|
|
13
13
|
export function AccountAddresses({
|
|
14
|
-
title = "
|
|
15
|
-
addButtonText = "
|
|
16
|
-
emptyMessage = "
|
|
17
|
-
editButtonText = "
|
|
18
|
-
deleteButtonText = "
|
|
19
|
-
saveButtonText = "
|
|
20
|
-
savingButtonText = "
|
|
21
|
-
cancelButtonText = "
|
|
22
|
-
modalTitleAdd = "
|
|
23
|
-
modalTitleEdit = "
|
|
24
|
-
deleteConfirmMessage = "
|
|
25
|
-
deleteConfirmTitle = "
|
|
14
|
+
title = "My Addresses",
|
|
15
|
+
addButtonText = "Add Address",
|
|
16
|
+
emptyMessage = "No addresses added yet.",
|
|
17
|
+
editButtonText = "Edit",
|
|
18
|
+
deleteButtonText = "Delete",
|
|
19
|
+
saveButtonText = "Save",
|
|
20
|
+
savingButtonText = "Saving...",
|
|
21
|
+
cancelButtonText = "Cancel",
|
|
22
|
+
modalTitleAdd = "Add Address",
|
|
23
|
+
modalTitleEdit = "Edit Address",
|
|
24
|
+
deleteConfirmMessage = "Are you sure you want to delete this address?",
|
|
25
|
+
deleteConfirmTitle = "Delete Address",
|
|
26
26
|
}: Props) {
|
|
27
27
|
const [modalOpen, setModalOpen] = useState(false);
|
|
28
28
|
const [editingAddress, setEditingAddress] = useState<
|
|
@@ -12,9 +12,9 @@ import { Props } from "./types";
|
|
|
12
12
|
|
|
13
13
|
export function AccountFavorites(props: Props) {
|
|
14
14
|
const {
|
|
15
|
-
favoritesLabel = "
|
|
16
|
-
emptyFavoritesText = "
|
|
17
|
-
addToCartText = "
|
|
15
|
+
favoritesLabel = "My Favorites",
|
|
16
|
+
emptyFavoritesText = "You haven't added any favorites yet.",
|
|
17
|
+
addToCartText = "Add to Cart",
|
|
18
18
|
components,
|
|
19
19
|
} = props;
|
|
20
20
|
const [favorites, setFavorites] = useState<IkasProduct[]>([]);
|
|
@@ -41,11 +41,11 @@ export function AccountInfo(props: Props) {
|
|
|
41
41
|
}, []);
|
|
42
42
|
|
|
43
43
|
const {
|
|
44
|
-
accountInfoLabel = "
|
|
45
|
-
ordersLabel = "
|
|
46
|
-
addressesLabel = "
|
|
47
|
-
favoritesLabel = "
|
|
48
|
-
logoutLabel = "
|
|
44
|
+
accountInfoLabel = "My Account",
|
|
45
|
+
ordersLabel = "My Orders",
|
|
46
|
+
addressesLabel = "My Addresses",
|
|
47
|
+
favoritesLabel = "My Favorites",
|
|
48
|
+
logoutLabel = "Sign Out",
|
|
49
49
|
components,
|
|
50
50
|
} = props;
|
|
51
51
|
const activeTab = getActiveTabFromPath();
|
|
@@ -15,11 +15,11 @@ import SkeletonField from "../../sub-components/SkeletonField";
|
|
|
15
15
|
import { Props } from "./types";
|
|
16
16
|
|
|
17
17
|
export function AccountInfoContent({
|
|
18
|
-
title = "
|
|
19
|
-
successMessage = "
|
|
20
|
-
submitButtonText = "
|
|
21
|
-
submittingButtonText = "
|
|
22
|
-
emailLabel = "
|
|
18
|
+
title = "My Account",
|
|
19
|
+
successMessage = "Your information has been updated.",
|
|
20
|
+
submitButtonText = "Save",
|
|
21
|
+
submittingButtonText = "Saving...",
|
|
22
|
+
emailLabel = "Email",
|
|
23
23
|
}: Props) {
|
|
24
24
|
const accountForm = getAccountInfoForm(customerStore);
|
|
25
25
|
const [isLoading, setIsLoading] = useState(true);
|
|
@@ -25,35 +25,35 @@ import ReturnView from "./components/ReturnView";
|
|
|
25
25
|
import { Props } from "./types";
|
|
26
26
|
|
|
27
27
|
export function AccountOrderDetail({
|
|
28
|
-
breadcrumbOrdersLabel = "
|
|
29
|
-
breadcrumbOrderLabel = "
|
|
30
|
-
orderNoLabel = "
|
|
31
|
-
orderStatusLabel = "
|
|
32
|
-
orderDateLabel = "
|
|
33
|
-
returnButtonText = "
|
|
34
|
-
returningButtonText = "
|
|
35
|
-
returnRequestTitle = "
|
|
36
|
-
returnSubmitText = "
|
|
37
|
-
deliveryAddressLabel = "
|
|
38
|
-
billingAddressLabel = "
|
|
39
|
-
paymentInfoLabel = "
|
|
40
|
-
summaryLabel = "
|
|
41
|
-
subtotalLabel = "
|
|
42
|
-
shippingLabel = "
|
|
43
|
-
totalLabel = "
|
|
44
|
-
taxIncludedText = "*
|
|
45
|
-
installmentText = "
|
|
46
|
-
singlePaymentText = "
|
|
47
|
-
cargoCompanyLabel = "
|
|
48
|
-
trackingNumberLabel = "
|
|
49
|
-
quantityLabel = "
|
|
50
|
-
errorText = "
|
|
51
|
-
backToOrdersText = "
|
|
52
|
-
returnSuccessText = "
|
|
53
|
-
returnErrorText = "
|
|
54
|
-
copiedText = "
|
|
55
|
-
downloadSectionTitle = "
|
|
56
|
-
downloadButtonText = "
|
|
28
|
+
breadcrumbOrdersLabel = "My Orders",
|
|
29
|
+
breadcrumbOrderLabel = "Order",
|
|
30
|
+
orderNoLabel = "Order No:",
|
|
31
|
+
orderStatusLabel = "Order Status:",
|
|
32
|
+
orderDateLabel = "Order Date:",
|
|
33
|
+
returnButtonText = "Return",
|
|
34
|
+
returningButtonText = "Submitting return request...",
|
|
35
|
+
returnRequestTitle = "Return Request",
|
|
36
|
+
returnSubmitText = "Return",
|
|
37
|
+
deliveryAddressLabel = "Delivery Address",
|
|
38
|
+
billingAddressLabel = "Billing Address",
|
|
39
|
+
paymentInfoLabel = "Payment Information",
|
|
40
|
+
summaryLabel = "Summary",
|
|
41
|
+
subtotalLabel = "Subtotal",
|
|
42
|
+
shippingLabel = "Shipping",
|
|
43
|
+
totalLabel = "Total",
|
|
44
|
+
taxIncludedText = "*taxes included",
|
|
45
|
+
installmentText = "Installment",
|
|
46
|
+
singlePaymentText = "Single Payment",
|
|
47
|
+
cargoCompanyLabel = "Shipping Company:",
|
|
48
|
+
trackingNumberLabel = "Tracking Number:",
|
|
49
|
+
quantityLabel = "items",
|
|
50
|
+
errorText = "Order not found.",
|
|
51
|
+
backToOrdersText = "Back to Orders",
|
|
52
|
+
returnSuccessText = "Your return request has been successfully created.",
|
|
53
|
+
returnErrorText = "An error occurred while creating the return request.",
|
|
54
|
+
copiedText = "Copied!",
|
|
55
|
+
downloadSectionTitle = "Downloadable Files",
|
|
56
|
+
downloadButtonText = "Download",
|
|
57
57
|
}: Props) {
|
|
58
58
|
const [order, setOrder] = useState<IkasOrder | null>(null);
|
|
59
59
|
const [loading, setLoading] = useState(true);
|
|
@@ -11,14 +11,14 @@ import OrderCard from "./components/OrderCard";
|
|
|
11
11
|
import { Props } from "./types";
|
|
12
12
|
|
|
13
13
|
export function AccountOrders({
|
|
14
|
-
ordersLabel = "
|
|
15
|
-
emptyText = "
|
|
16
|
-
detailButtonText = "
|
|
17
|
-
orderNoText = "
|
|
18
|
-
itemsText = "
|
|
19
|
-
shopButtonText = "
|
|
20
|
-
errorText = "
|
|
21
|
-
retryButtonText = "
|
|
14
|
+
ordersLabel = "My Orders",
|
|
15
|
+
emptyText = "You don't have any orders yet.",
|
|
16
|
+
detailButtonText = "View Details",
|
|
17
|
+
orderNoText = "Order No:",
|
|
18
|
+
itemsText = "Product",
|
|
19
|
+
shopButtonText = "Start Shopping",
|
|
20
|
+
errorText = "An error occurred while loading orders.",
|
|
21
|
+
retryButtonText = "Try Again",
|
|
22
22
|
}: Props) {
|
|
23
23
|
const [orders, setOrders] = useState<IkasOrder[]>([]);
|
|
24
24
|
const [loading, setLoading] = useState(true);
|
|
@@ -18,9 +18,9 @@ export function BlogHome({
|
|
|
18
18
|
blogCategoryList,
|
|
19
19
|
title = "Blog",
|
|
20
20
|
description,
|
|
21
|
-
allCategoriesText = "
|
|
22
|
-
readMoreText = "
|
|
23
|
-
emptyMessage = "
|
|
21
|
+
allCategoriesText = "View All",
|
|
22
|
+
readMoreText = "Read More",
|
|
23
|
+
emptyMessage = "No blog posts found yet.",
|
|
24
24
|
aspectRatio,
|
|
25
25
|
objectFit,
|
|
26
26
|
}: Props) {
|
|
@@ -11,9 +11,9 @@ import { getFullName } from "../../utils/fullName";
|
|
|
11
11
|
|
|
12
12
|
export function BlogPost({
|
|
13
13
|
blogPost,
|
|
14
|
-
homeText = "
|
|
15
|
-
blogText = "Blog
|
|
16
|
-
tagsTitle = "
|
|
14
|
+
homeText = "Home",
|
|
15
|
+
blogText = "Blog Posts",
|
|
16
|
+
tagsTitle = "Tags",
|
|
17
17
|
aspectRatio,
|
|
18
18
|
objectFit,
|
|
19
19
|
}: Props) {
|
|
@@ -12,19 +12,19 @@ import OrderSummary from "./components/OrderSummary";
|
|
|
12
12
|
import EmptyState from "./components/EmptyState";
|
|
13
13
|
|
|
14
14
|
export function CartPage({
|
|
15
|
-
title = "
|
|
16
|
-
emptyCartText = "
|
|
17
|
-
subtotalLabel = "
|
|
18
|
-
totalLabel = "
|
|
19
|
-
checkoutButtonText = "
|
|
20
|
-
itemsText = "
|
|
21
|
-
couponToggleText = "
|
|
22
|
-
couponPlaceholder = "
|
|
23
|
-
couponApplyText = "
|
|
24
|
-
couponRemoveText = "
|
|
25
|
-
couponApplyingText = "
|
|
26
|
-
orderSummaryTitle = "
|
|
27
|
-
continueShoppingText = "
|
|
15
|
+
title = "Cart",
|
|
16
|
+
emptyCartText = "Your cart is empty",
|
|
17
|
+
subtotalLabel = "Subtotal",
|
|
18
|
+
totalLabel = "Total",
|
|
19
|
+
checkoutButtonText = "Complete Order",
|
|
20
|
+
itemsText = "product",
|
|
21
|
+
couponToggleText = "Use Gift Code!",
|
|
22
|
+
couponPlaceholder = "Enter coupon code",
|
|
23
|
+
couponApplyText = "Apply",
|
|
24
|
+
couponRemoveText = "Remove",
|
|
25
|
+
couponApplyingText = "Applying...",
|
|
26
|
+
orderSummaryTitle = "Order Summary",
|
|
27
|
+
continueShoppingText = "Start Shopping",
|
|
28
28
|
}: Props) {
|
|
29
29
|
const cart = cartStore.cart;
|
|
30
30
|
const isLoading = cartStore.isCartLoading;
|
package/templates/create-full/src/components/CategoryList/components/CategoryListControls/index.tsx
CHANGED
|
@@ -78,7 +78,7 @@ const CategoryListControls = observer(function CategoryListControls({
|
|
|
78
78
|
size="xs"
|
|
79
79
|
className="kombos-category-list-controls__col-btn"
|
|
80
80
|
onClick={onToggleColumns}
|
|
81
|
-
aria-label={`${columns === 4 ? 3 : 4}
|
|
81
|
+
aria-label={`${columns === 4 ? 3 : 4} columns`}
|
|
82
82
|
icon={columns === 3 ? <Column3SVG /> : <Column4SVG />}
|
|
83
83
|
>
|
|
84
84
|
{columnText}
|
|
@@ -39,25 +39,25 @@ import { usePageTracking } from "../../hooks/usePageTracking";
|
|
|
39
39
|
export function CategoryList(props: Props) {
|
|
40
40
|
const {
|
|
41
41
|
productList,
|
|
42
|
-
emptyMessage = "
|
|
43
|
-
searchPlaceholder = "
|
|
44
|
-
clearFiltersText = "
|
|
45
|
-
addToCartText = "
|
|
46
|
-
addedToCartText = "
|
|
47
|
-
outOfStockText = "
|
|
48
|
-
showProductsText = "
|
|
49
|
-
filtersText = "
|
|
50
|
-
columnText = "
|
|
42
|
+
emptyMessage = "No products found.",
|
|
43
|
+
searchPlaceholder = "Search",
|
|
44
|
+
clearFiltersText = "Clear Filters",
|
|
45
|
+
addToCartText = "Add to Cart",
|
|
46
|
+
addedToCartText = "Added",
|
|
47
|
+
outOfStockText = "Sold Out",
|
|
48
|
+
showProductsText = "VIEW PRODUCT",
|
|
49
|
+
filtersText = "Filters",
|
|
50
|
+
columnText = "Column",
|
|
51
51
|
badgeText,
|
|
52
|
-
homepageText = "
|
|
52
|
+
homepageText = "Home",
|
|
53
53
|
showFilters = false,
|
|
54
54
|
showSearch = false,
|
|
55
55
|
aspectRatio,
|
|
56
56
|
objectFit,
|
|
57
57
|
isInfinity = false,
|
|
58
|
-
loadPrevPageText = "
|
|
58
|
+
loadPrevPageText = "Load previous page",
|
|
59
59
|
pageTitle: pageTitleProp,
|
|
60
|
-
productCountText = "
|
|
60
|
+
productCountText = "product",
|
|
61
61
|
hideAddToCartButton,
|
|
62
62
|
hideBreadcrumb = false,
|
|
63
63
|
isBrandPage = false,
|
|
@@ -259,7 +259,7 @@ export function CategoryList(props: Props) {
|
|
|
259
259
|
|
|
260
260
|
return (
|
|
261
261
|
<div
|
|
262
|
-
key={
|
|
262
|
+
key={product.id}
|
|
263
263
|
className="kombos-category-list__card"
|
|
264
264
|
>
|
|
265
265
|
<ProductCard
|
|
@@ -18,20 +18,20 @@ type Status = "loading" | "success" | "error";
|
|
|
18
18
|
type ResendStatus = "idle" | "sending" | "success" | "error";
|
|
19
19
|
|
|
20
20
|
export function CustomerEmailVerification({
|
|
21
|
-
title = "
|
|
22
|
-
successTitle = "
|
|
23
|
-
successMessage = "
|
|
24
|
-
errorTitle = "
|
|
25
|
-
errorMessage = "
|
|
26
|
-
loadingMessage = "
|
|
27
|
-
loginButtonText = "
|
|
28
|
-
resendTitle = "
|
|
29
|
-
emailLabel = "
|
|
30
|
-
emailPlaceholder = "
|
|
31
|
-
resendButtonText = "
|
|
32
|
-
resendingButtonText = "
|
|
33
|
-
resendSuccessMessage = "
|
|
34
|
-
resendErrorMessage = "
|
|
21
|
+
title = "Account Activation",
|
|
22
|
+
successTitle = "Your Account Has Been Activated!",
|
|
23
|
+
successMessage = "Your account has been successfully activated. You can sign in and start shopping.",
|
|
24
|
+
errorTitle = "Activation Failed",
|
|
25
|
+
errorMessage = "Your activation link may be invalid or expired.",
|
|
26
|
+
loadingMessage = "Activating your account...",
|
|
27
|
+
loginButtonText = "Sign In",
|
|
28
|
+
resendTitle = "Resend Activation Email",
|
|
29
|
+
emailLabel = "Email",
|
|
30
|
+
emailPlaceholder = "example@email.com",
|
|
31
|
+
resendButtonText = "Resend",
|
|
32
|
+
resendingButtonText = "Sending...",
|
|
33
|
+
resendSuccessMessage = "Activation email has been resent. Please check your inbox.",
|
|
34
|
+
resendErrorMessage = "Failed to send email. Please try again.",
|
|
35
35
|
}: Props) {
|
|
36
36
|
const [status, setStatus] = useState<Status>("loading");
|
|
37
37
|
const [email, setEmail] = useState("");
|
|
@@ -11,10 +11,10 @@ export function Footer(props: Props) {
|
|
|
11
11
|
const {
|
|
12
12
|
logo,
|
|
13
13
|
description,
|
|
14
|
-
copyrightText = "© 2026 ikas
|
|
14
|
+
copyrightText = "© 2026 ikas Store. All Rights Reserved",
|
|
15
15
|
linkColor,
|
|
16
16
|
linkHoverColor,
|
|
17
|
-
contactTitle = "
|
|
17
|
+
contactTitle = "Contact Information",
|
|
18
18
|
contactEmail,
|
|
19
19
|
contactPhone,
|
|
20
20
|
footerLinks,
|
|
@@ -142,7 +142,7 @@ export function Footer(props: Props) {
|
|
|
142
142
|
<div className="kombos-footer__badge">
|
|
143
143
|
<IkasLogoSVG className="kombos-footer__badge-logo" />
|
|
144
144
|
<span className="kombos-footer__badge-text text-xs-medium">
|
|
145
|
-
|
|
145
|
+
Powered by ikas E-Commerce.
|
|
146
146
|
</span>
|
|
147
147
|
</div>
|
|
148
148
|
</div>
|
package/templates/create-full/src/components/ForgotPassword/components/ForgotPasswordForm/index.tsx
CHANGED
|
@@ -17,16 +17,16 @@ interface ForgotPasswordFormProps extends Props {
|
|
|
17
17
|
|
|
18
18
|
const ForgotPasswordForm = observer(function ForgotPasswordForm({
|
|
19
19
|
forgotForm,
|
|
20
|
-
title = "
|
|
21
|
-
subtitle = "
|
|
22
|
-
emailLabel = "
|
|
23
|
-
emailPlaceholder = "
|
|
24
|
-
submitButtonText = "
|
|
25
|
-
submittingButtonText = "
|
|
26
|
-
successTitle = "
|
|
27
|
-
successMessage = "
|
|
28
|
-
successButtonText = "
|
|
29
|
-
backToLoginText = "
|
|
20
|
+
title = "Forgot Password",
|
|
21
|
+
subtitle = "We'll send you an email to reset your password",
|
|
22
|
+
emailLabel = "Email",
|
|
23
|
+
emailPlaceholder = "example@email.com",
|
|
24
|
+
submitButtonText = "Send",
|
|
25
|
+
submittingButtonText = "Sending...",
|
|
26
|
+
successTitle = "Forgot Password",
|
|
27
|
+
successMessage = "We've sent you an email.",
|
|
28
|
+
successButtonText = "Start Shopping",
|
|
29
|
+
backToLoginText = "Back to Login",
|
|
30
30
|
}: ForgotPasswordFormProps) {
|
|
31
31
|
const handleSubmit = async (e: Event) => {
|
|
32
32
|
e.preventDefault();
|
|
@@ -22,21 +22,21 @@ interface LoginFormProps extends Props {
|
|
|
22
22
|
|
|
23
23
|
const LoginForm = observer(function LoginForm({
|
|
24
24
|
loginForm,
|
|
25
|
-
title = "
|
|
26
|
-
subtitle = "
|
|
27
|
-
emailLabel = "
|
|
28
|
-
emailPlaceholder = "
|
|
29
|
-
passwordLabel = "
|
|
30
|
-
passwordPlaceholder = "
|
|
31
|
-
forgotPasswordText = "
|
|
32
|
-
submitButtonText = "
|
|
33
|
-
submittingButtonText = "
|
|
34
|
-
createAccountText = "
|
|
25
|
+
title = "Sign In",
|
|
26
|
+
subtitle = "Sign in to your account to track your orders\nand continue shopping.",
|
|
27
|
+
emailLabel = "Email",
|
|
28
|
+
emailPlaceholder = "example@email.com",
|
|
29
|
+
passwordLabel = "Password",
|
|
30
|
+
passwordPlaceholder = "Enter your password",
|
|
31
|
+
forgotPasswordText = "Forgot my password",
|
|
32
|
+
submitButtonText = "Sign In",
|
|
33
|
+
submittingButtonText = "Signing in...",
|
|
34
|
+
createAccountText = "Create new account",
|
|
35
35
|
showGoogleLogin = false,
|
|
36
36
|
showFacebookLogin = false,
|
|
37
|
-
googleButtonText = "
|
|
38
|
-
facebookButtonText = "
|
|
39
|
-
dividerText = "
|
|
37
|
+
googleButtonText = "Sign in with Google",
|
|
38
|
+
facebookButtonText = "Sign in with Facebook",
|
|
39
|
+
dividerText = "or",
|
|
40
40
|
}: LoginFormProps) {
|
|
41
41
|
const showSocialLogin = showGoogleLogin || showFacebookLogin;
|
|
42
42
|
|
|
@@ -26,28 +26,28 @@ export function Navbar(props: Props) {
|
|
|
26
26
|
navigationLinks,
|
|
27
27
|
logoSizeDesktop: rawLogoSizeDesktop,
|
|
28
28
|
logoSizeMobile: rawLogoSizeMobile,
|
|
29
|
-
cartTitle = "
|
|
30
|
-
emptyCartText = "
|
|
31
|
-
checkoutButtonText = "
|
|
32
|
-
totalText = "
|
|
29
|
+
cartTitle = "My Cart",
|
|
30
|
+
emptyCartText = "Your cart is empty",
|
|
31
|
+
checkoutButtonText = "Proceed to Checkout",
|
|
32
|
+
totalText = "Total",
|
|
33
33
|
navigationLinkColor,
|
|
34
34
|
coloredLinks,
|
|
35
35
|
coloredLinkColor,
|
|
36
|
-
registerButtonText = "
|
|
37
|
-
loginButtonText = "
|
|
38
|
-
logoutButtonText = "
|
|
39
|
-
freeShippingText = "
|
|
40
|
-
emptyCartButtonText = "
|
|
41
|
-
searchPlaceholder = "
|
|
42
|
-
searchingText = "
|
|
43
|
-
noResultsText = "
|
|
44
|
-
resultCountText = "
|
|
45
|
-
addToCartText = "
|
|
46
|
-
addedToCartText = "
|
|
47
|
-
outOfStockText = "
|
|
48
|
-
goToProductText = "
|
|
49
|
-
viewAllText = "
|
|
50
|
-
viewCartButtonText = "
|
|
36
|
+
registerButtonText = "Sign Up",
|
|
37
|
+
loginButtonText = "Sign In",
|
|
38
|
+
logoutButtonText = "Sign Out",
|
|
39
|
+
freeShippingText = "Free shipping on orders over $150",
|
|
40
|
+
emptyCartButtonText = "Start Shopping",
|
|
41
|
+
searchPlaceholder = "What are you looking for?",
|
|
42
|
+
searchingText = "Searching...",
|
|
43
|
+
noResultsText = "No products found",
|
|
44
|
+
resultCountText = "Result",
|
|
45
|
+
addToCartText = "Add to Cart",
|
|
46
|
+
addedToCartText = "Added to Cart",
|
|
47
|
+
outOfStockText = "Sold Out",
|
|
48
|
+
goToProductText = "View Product",
|
|
49
|
+
viewAllText = "View All",
|
|
50
|
+
viewCartButtonText = "View Cart",
|
|
51
51
|
searchProductList,
|
|
52
52
|
hideAddToCartButton,
|
|
53
53
|
imageAspectRatio,
|
|
@@ -21,13 +21,13 @@ import { showToast } from "../../utils/toast";
|
|
|
21
21
|
|
|
22
22
|
export function ProductDetailAddToCart({
|
|
23
23
|
product,
|
|
24
|
-
addToCartButtonText = "
|
|
25
|
-
addingToCartText = "
|
|
26
|
-
outOfStockText = "
|
|
27
|
-
errorMessage = "
|
|
28
|
-
optionSetErrorMessage = "
|
|
29
|
-
updateCartButtonText = "
|
|
30
|
-
updatingCartText = "
|
|
24
|
+
addToCartButtonText = "Add to Cart",
|
|
25
|
+
addingToCartText = "Adding...",
|
|
26
|
+
outOfStockText = "Sold Out",
|
|
27
|
+
errorMessage = "Failed to add product to cart",
|
|
28
|
+
optionSetErrorMessage = "Please fill in the required options",
|
|
29
|
+
updateCartButtonText = "Update",
|
|
30
|
+
updatingCartText = "Updating...",
|
|
31
31
|
hideQuantityInput = false,
|
|
32
32
|
mobileMarginTop,
|
|
33
33
|
mobileMarginBottom,
|
|
@@ -12,14 +12,14 @@ export function ProductDetailBundleFurniture({
|
|
|
12
12
|
mobileMarginBottom,
|
|
13
13
|
desktopMarginTop,
|
|
14
14
|
desktopMarginBottom,
|
|
15
|
-
productContentTitle = "
|
|
16
|
-
partsLabel = "
|
|
17
|
-
unitPriceLabel = "
|
|
18
|
-
quantityLabel = "
|
|
19
|
-
featuresLabel = "
|
|
20
|
-
totalPriceLabel = "
|
|
21
|
-
outOfStockText = "
|
|
22
|
-
addProductItemText = "
|
|
15
|
+
productContentTitle = "Product Contents",
|
|
16
|
+
partsLabel = "Parts",
|
|
17
|
+
unitPriceLabel = "Unit Price",
|
|
18
|
+
quantityLabel = "Quantity",
|
|
19
|
+
featuresLabel = "Specifications",
|
|
20
|
+
totalPriceLabel = "Total Price",
|
|
21
|
+
outOfStockText = "Out of Stock",
|
|
22
|
+
addProductItemText = "Add Product",
|
|
23
23
|
aspectRatio,
|
|
24
24
|
objectFit,
|
|
25
25
|
}: Props) {
|
|
@@ -41,9 +41,9 @@ export function ProductDetailBundleProduct({
|
|
|
41
41
|
desktopMarginBottom,
|
|
42
42
|
isBundleFurniture,
|
|
43
43
|
bundleProductWithoutLink,
|
|
44
|
-
quantityLabel = "
|
|
45
|
-
outOfStockText = "
|
|
46
|
-
productContentTitle = "
|
|
44
|
+
quantityLabel = "Quantity",
|
|
45
|
+
outOfStockText = "Out of Stock",
|
|
46
|
+
productContentTitle = "Set Contents",
|
|
47
47
|
aspectRatio,
|
|
48
48
|
objectFit,
|
|
49
49
|
}: Props) {
|
package/templates/create-full/src/components/ProductDetailOffer/components/OfferCard/index.tsx
CHANGED
|
@@ -30,8 +30,8 @@ interface Props {
|
|
|
30
30
|
|
|
31
31
|
const OfferCard = observer(function OfferCard({
|
|
32
32
|
offer,
|
|
33
|
-
outOfStockText = "
|
|
34
|
-
addedToCartBannerText = "
|
|
33
|
+
outOfStockText = "Sold Out",
|
|
34
|
+
addedToCartBannerText = "Added to cart",
|
|
35
35
|
imageAspectRatio,
|
|
36
36
|
imageObjectFit,
|
|
37
37
|
}: Props) {
|