@ikas/component-cli 0.115.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.
Files changed (47) hide show
  1. package/dist/commands/build.d.ts.map +1 -1
  2. package/dist/commands/build.js +12 -12
  3. package/dist/commands/build.js.map +1 -1
  4. package/dist/utils/compile.d.ts.map +1 -1
  5. package/dist/utils/compile.js +11 -9
  6. package/dist/utils/compile.js.map +1 -1
  7. package/package.json +1 -1
  8. package/templates/create-full/ikas.config.json +983 -983
  9. package/templates/create-full/src/components/AccountAddresses/components/AddressModal/index.tsx +6 -9
  10. package/templates/create-full/src/components/AccountAddresses/components/AddressModal/styles.css +1 -0
  11. package/templates/create-full/src/components/AccountAddresses/index.tsx +12 -12
  12. package/templates/create-full/src/components/AccountFavorites/index.tsx +3 -3
  13. package/templates/create-full/src/components/AccountInfo/index.tsx +5 -5
  14. package/templates/create-full/src/components/AccountInfoContent/index.tsx +5 -5
  15. package/templates/create-full/src/components/AccountOrderDetail/index.tsx +29 -29
  16. package/templates/create-full/src/components/AccountOrders/index.tsx +8 -8
  17. package/templates/create-full/src/components/BlogHome/index.tsx +3 -3
  18. package/templates/create-full/src/components/BlogPost/index.tsx +3 -3
  19. package/templates/create-full/src/components/CartPage/index.tsx +13 -13
  20. package/templates/create-full/src/components/CategoryList/components/CategoryListControls/index.tsx +1 -1
  21. package/templates/create-full/src/components/CategoryList/index.tsx +13 -13
  22. package/templates/create-full/src/components/CustomerEmailVerification/index.tsx +14 -14
  23. package/templates/create-full/src/components/Footer/index.tsx +3 -3
  24. package/templates/create-full/src/components/ForgotPassword/components/ForgotPasswordForm/index.tsx +10 -10
  25. package/templates/create-full/src/components/Login/components/LoginForm/index.tsx +13 -13
  26. package/templates/create-full/src/components/Navbar/components/MobileMenu/index.tsx +1 -1
  27. package/templates/create-full/src/components/Navbar/index.tsx +19 -19
  28. package/templates/create-full/src/components/ProductDetail/index.tsx +1 -1
  29. package/templates/create-full/src/components/ProductDetailAddToCart/index.tsx +7 -7
  30. package/templates/create-full/src/components/ProductDetailBundleFurniture/index.tsx +8 -8
  31. package/templates/create-full/src/components/ProductDetailBundleProduct/index.tsx +3 -3
  32. package/templates/create-full/src/components/ProductDetailDescription/index.tsx +1 -1
  33. package/templates/create-full/src/components/ProductDetailOffer/components/OfferCard/index.tsx +2 -2
  34. package/templates/create-full/src/components/ProductDetailOffer/index.tsx +9 -9
  35. package/templates/create-full/src/components/ProductDetailOptionSet/index.tsx +7 -7
  36. package/templates/create-full/src/components/ProductDetailSku/index.tsx +1 -1
  37. package/templates/create-full/src/components/ProductDetailVariant/types.ts +1 -1
  38. package/templates/create-full/src/components/ProductSlider/index.tsx +4 -4
  39. package/templates/create-full/src/components/RecoverPassword/components/RecoverPasswordForm/index.tsx +10 -10
  40. package/templates/create-full/src/components/Register/components/RegisterForm/index.tsx +15 -15
  41. package/templates/create-full/src/global-types.ts +0 -2
  42. package/templates/create-full/src/global.css +4 -0
  43. package/templates/create-full/src/hooks/useScrollLock.ts +0 -4
  44. package/templates/create-full/src/sub-components/CartItem/components/BundleProducts/index.tsx +1 -1
  45. package/templates/create-full/src/sub-components/Modal/index.tsx +4 -2
  46. package/templates/create-full/src/sub-components/ProductCard/index.tsx +4 -4
  47. package/templates/create-full/claude-md +0 -737
@@ -20,17 +20,17 @@ export function ProductDetailOffer({
20
20
  product,
21
21
  compactView = false,
22
22
  preselectOffers = false,
23
- addToCartTogetherText = "Birlikte Sepete Ekle",
24
- addingToCartText = "Ekleniyor...",
25
- offerInfoText = "Seçtiğiniz ürünleri birlikte sepete ekleyerek indirimden yararlanın.",
26
- totalText = "Toplam",
27
- advantageousTotalText = "Avantajlı Toplam",
28
- outOfStockText = "Tükendi",
23
+ addToCartTogetherText = "Add Together to Cart",
24
+ addingToCartText = "Adding...",
25
+ offerInfoText = "Add selected products together to your cart and enjoy the discount.",
26
+ totalText = "Total",
27
+ advantageousTotalText = "Discounted Total",
28
+ outOfStockText = "Sold Out",
29
29
  imageAspectRatio,
30
30
  imageObjectFit,
31
- addedToCartBannerText = "Sepete eklenmiş",
32
- errorMessage = "Ürün sepete eklenemedi",
33
- optionSetErrorMessage = "Lütfen gerekli seçenekleri doldurun",
31
+ addedToCartBannerText = "Added to cart",
32
+ errorMessage = "Failed to add product to cart",
33
+ optionSetErrorMessage = "Please fill in the required options",
34
34
  mobileMarginTop,
35
35
  mobileMarginBottom,
36
36
  desktopMarginTop,
@@ -13,14 +13,14 @@ import type { TextProps } from "./components/OptionRenderer";
13
13
 
14
14
  export function ProductDetailOptionSet({
15
15
  product,
16
- requiredFieldErrorText = "Bu alan zorunludur",
17
- selectPlaceholderText = "Seçiniz",
18
- fileDropText = "Dosya seçin veya sürükleyin",
19
- uploadingText = "Yükleniyor...",
20
- uploadFailedText = "Yükleme başarısız",
16
+ requiredFieldErrorText = "This field is required",
17
+ selectPlaceholderText = "Select",
18
+ fileDropText = "Choose a file or drag it here",
19
+ uploadingText = "Uploading...",
20
+ uploadFailedText = "Upload failed",
21
21
  fileSizeErrorText = "{fileName}: max {maxSize}MB",
22
- fileTypeErrorText = "{fileName}: {ext} uzantısına izin verilmiyor",
23
- maxFilesErrorText = "En fazla {max} dosya yüklenebilir",
22
+ fileTypeErrorText = "{fileName}: {ext} file type not allowed",
23
+ maxFilesErrorText = "Maximum {max} files can be uploaded",
24
24
  minLabelText = "Min: ",
25
25
  maxLabelText = "Max: ",
26
26
  fileFallbackNameText = "File",
@@ -7,7 +7,7 @@ import { Props } from "./types";
7
7
 
8
8
  export function ProductDetailSku({
9
9
  product,
10
- productCodeLabel = "Ürün Kodu:",
10
+ productCodeLabel = "Product Code:",
11
11
  mobileMarginTop,
12
12
  mobileMarginBottom,
13
13
  desktopMarginTop,
@@ -7,6 +7,6 @@ export interface Props {
7
7
  mobileMarginBottom?: MarginBottomStyleType;
8
8
  desktopMarginTop?: MarginTopStyleType;
9
9
  desktopMarginBottom?: MarginBottomStyleType;
10
- /** Renk varyantı için ürün görsellerini kullan. */
10
+ /** Use product images for color variant. */
11
11
  useVariantImages?: boolean;
12
12
  }
@@ -25,10 +25,10 @@ export function ProductSlider(props: Props) {
25
25
  const {
26
26
  productList,
27
27
  title,
28
- addToCartText = "Sepete Ekle",
29
- addedToCartText = "Sepete Eklendi",
30
- outOfStockText = "Tükendi",
31
- goToProductText = "Ürüne Git",
28
+ addToCartText = "Add to Cart",
29
+ addedToCartText = "Added to Cart",
30
+ outOfStockText = "Sold Out",
31
+ goToProductText = "View Product",
32
32
  desktopColumns,
33
33
  aspectRatio,
34
34
  objectFit,
@@ -18,16 +18,16 @@ interface RecoverPasswordFormProps extends Omit<Props, "backgroundColor"> {
18
18
 
19
19
  const RecoverPasswordForm = observer(function RecoverPasswordForm({
20
20
  recoverForm,
21
- title = "Parola Değiştirme",
22
- subtitle = "Lütfen yeni parolanızı belirleyiniz.",
23
- passwordLabel = "Yeni Şifre",
24
- passwordPlaceholder = "Parola",
25
- passwordAgainLabel = "Yeni Şifre Tekrar",
26
- passwordAgainPlaceholder = "Parola",
27
- submitButtonText = "Değiştir",
28
- submittingButtonText = "Değiştiriliyor...",
29
- successMessage = "Parolanız başarıyla değiştirildi.",
30
- loginLinkText = "Giriş Yap",
21
+ title = "Change Password",
22
+ subtitle = "Please set your new password.",
23
+ passwordLabel = "New Password",
24
+ passwordPlaceholder = "Password",
25
+ passwordAgainLabel = "Confirm New Password",
26
+ passwordAgainPlaceholder = "Password",
27
+ submitButtonText = "Change",
28
+ submittingButtonText = "Changing...",
29
+ successMessage = "Your password has been successfully changed.",
30
+ loginLinkText = "Sign In",
31
31
  }: RecoverPasswordFormProps) {
32
32
  const handleSubmit = async (e: Event) => {
33
33
  e.preventDefault();
@@ -27,24 +27,24 @@ interface RegisterFormProps extends Props {
27
27
 
28
28
  const RegisterForm = observer(function RegisterForm({
29
29
  registerForm,
30
- title = "Hesap Oluştur",
31
- subtitle = "Hemen ücretsiz hesap oluşturun ve alışverişe başlayın.",
32
- firstNameLabel = "İsim",
33
- lastNameLabel = "Soyisim",
34
- emailLabel = "E-posta",
35
- passwordLabel = "Şifre",
30
+ title = "Create Account",
31
+ subtitle = "Create your free account and start shopping.",
32
+ firstNameLabel = "First Name",
33
+ lastNameLabel = "Last Name",
34
+ emailLabel = "Email",
35
+ passwordLabel = "Password",
36
36
  firstNamePlaceholder,
37
37
  lastNamePlaceholder,
38
38
  emailPlaceholder,
39
- passwordPlaceholder = "Şifrenizi girin",
40
- submitButtonText = "Kayıt Ol",
41
- submittingButtonText = "Kayıt yapılıyor...",
42
- loginLinkText = "Zaten hesabınız var mı? Giriş yapın",
43
- marketingConsentText = "Kampanya ve promosyonlardan e-posta ile haberdar olmak istiyorum",
44
- agreementConsentText = "Üyelik sözleşmesini kabul ediyorum",
45
- googleButtonText = "Google ile kayıt ol",
46
- facebookButtonText = "Facebook ile kayıt ol",
47
- dividerText = "veya",
39
+ passwordPlaceholder = "Enter your password",
40
+ submitButtonText = "Sign Up",
41
+ submittingButtonText = "Signing up...",
42
+ loginLinkText = "Already have an account? Sign in",
43
+ marketingConsentText = "I want to receive emails about campaigns and promotions",
44
+ agreementConsentText = "I accept the membership agreement",
45
+ googleButtonText = "Sign up with Google",
46
+ facebookButtonText = "Sign up with Facebook",
47
+ dividerText = "or",
48
48
  showGoogleLogin = false,
49
49
  showFacebookLogin = false,
50
50
  marketingConsentLink,
@@ -3,8 +3,6 @@
3
3
 
4
4
  /** Enum type: s3OODUmZpJ */
5
5
  export type AspectRatio = "Square" | "Portrait" | "Landscape" | "Video";
6
- /** Enum type: __breakpointsEnum__ */
7
- export type Breakpoints = "desktop";
8
6
  /** Enum type: Tkt3wfuJ5F */
9
7
  export type NumberOfColumns = "One" | "Two" | "Three" | "Four" | "Five";
10
8
  /** Enum type: GrylMqHxui */
@@ -11,6 +11,10 @@
11
11
  * Component-scoped styles naturally override these globals.
12
12
  */
13
13
 
14
+ html {
15
+ scrollbar-gutter: stable;
16
+ }
17
+
14
18
  /* ===== Colors — Kombos Design System ===== */
15
19
 
16
20
  :root {
@@ -7,14 +7,10 @@ export function useScrollLock(
7
7
  ) {
8
8
  useEffect(() => {
9
9
  if (!enabled) return;
10
- const scrollbarWidth =
11
- window.innerWidth - document.documentElement.clientWidth;
12
10
  document.body.style.overflow = "hidden";
13
- document.body.style.paddingRight = `${scrollbarWidth}px`;
14
11
  return () => {
15
12
  if (skipCleanupRef?.current) return;
16
13
  document.body.style.overflow = "";
17
- document.body.style.paddingRight = "";
18
14
  };
19
15
  }, [enabled]);
20
16
  }
@@ -16,7 +16,7 @@ const BundleProducts = observer(function BundleProducts({
16
16
  item,
17
17
  aspectRatio,
18
18
  objectFit,
19
- editButtonText = "Düzenle",
19
+ editButtonText = "Edit",
20
20
  }: Props) {
21
21
  const bundleProducts = (item.variant?.bundleProducts ?? []).filter(
22
22
  (bp) => bp.quantity > 0,
@@ -1,4 +1,5 @@
1
1
  import { useState, useEffect, useRef, useId } from "preact/hooks";
2
+ import { createPortal } from "preact/compat";
2
3
  import type { ComponentChildren } from "preact";
3
4
  import { useScrollLock } from "../../hooks/useScrollLock";
4
5
  import { cx } from "../../utils/cx";
@@ -58,7 +59,7 @@ export default function Modal({
58
59
  return () => document.removeEventListener("keydown", handleKeyDown);
59
60
  }, []);
60
61
 
61
- return (
62
+ return createPortal(
62
63
  <div
63
64
  className={cx("kombos-modal", visible && "kombos-modal--open", className)}
64
65
  role="dialog"
@@ -113,6 +114,7 @@ export default function Modal({
113
114
  )
114
115
  ))}
115
116
  </div>
116
- </div>
117
+ </div>,
118
+ document.body,
117
119
  );
118
120
  }
@@ -49,9 +49,9 @@ interface Props {
49
49
  const ProductCard = observer(function ProductCard({
50
50
  product,
51
51
  addToCartText,
52
- addedToCartText = "Sepete Eklendi",
53
- outOfStockText = "Tükendi",
54
- goToProductText = "Ürüne Git",
52
+ addedToCartText = "Added to Cart",
53
+ outOfStockText = "Sold Out",
54
+ goToProductText = "View Product",
55
55
  showFavorite = true,
56
56
  hideAddToCartButton = false,
57
57
  badgeText,
@@ -60,7 +60,7 @@ const ProductCard = observer(function ProductCard({
60
60
  dataPage,
61
61
  sizes = "(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(50vw - 44px), 300px",
62
62
  openCartOnAdd = true,
63
- errorMessage = "Ürün sepete eklenemedi",
63
+ errorMessage = "Failed to add product to cart",
64
64
  onFavoriteRemove,
65
65
  priority = false,
66
66
  }: Props) {