@soma-vertical-web/multi-lib 0.0.1

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 (54) hide show
  1. package/README.md +88 -0
  2. package/index.esm.d.ts +2 -0
  3. package/index.esm.js +3 -0
  4. package/package.json +23 -0
  5. package/src/data/src/Events/EventContex.d.ts +6 -0
  6. package/src/data/src/Events/helpers.d.ts +42 -0
  7. package/src/data/src/Events/interfaces.d.ts +108 -0
  8. package/src/data/src/helpers/product/generalInfo.d.ts +11 -0
  9. package/src/data/src/helpers/product/imageResize.d.ts +8 -0
  10. package/src/data/src/helpers/product/interface.d.ts +179 -0
  11. package/src/data/src/helpers/product/price.d.ts +1 -0
  12. package/src/data/src/helpers/product/skuInfos.d.ts +5 -0
  13. package/src/data/src/helpers/product/thumb.d.ts +2 -0
  14. package/src/data/src/helpers/utils/cookies.d.ts +2 -0
  15. package/src/data/src/helpers/utils/debounce.d.ts +1 -0
  16. package/src/data/src/helpers/utils/generateSlug.d.ts +1 -0
  17. package/src/data/src/helpers/utils/throttle.d.ts +1 -0
  18. package/src/data/src/helpers/utils/timer.d.ts +2 -0
  19. package/src/index.d.ts +2 -0
  20. package/src/types/src/cms/ContentTypes/CommonPage/index.d.ts +17 -0
  21. package/src/types/src/cms/ContentTypes/FlagsAndTags/index.d.ts +36 -0
  22. package/src/types/src/cms/ContentTypes/Footer/index.d.ts +44 -0
  23. package/src/types/src/cms/ContentTypes/Header/index.d.ts +52 -0
  24. package/src/types/src/cms/ContentTypes/HelpButton/index.d.ts +29 -0
  25. package/src/types/src/cms/ContentTypes/LPLojas/index.d.ts +11 -0
  26. package/src/types/src/cms/ContentTypes/LookbookPage/index.d.ts +38 -0
  27. package/src/types/src/cms/ContentTypes/NotFoundPage/index.d.ts +14 -0
  28. package/src/types/src/cms/ContentTypes/PDP/index.d.ts +0 -0
  29. package/src/types/src/cms/ContentTypes/PLP/index.d.ts +0 -0
  30. package/src/types/src/cms/ContentTypes/PolicyPage/index.d.ts +37 -0
  31. package/src/types/src/cms/ContentTypes/PreHome/index.d.ts +20 -0
  32. package/src/types/src/cms/ContentTypes/Redirects/index.d.ts +20 -0
  33. package/src/types/src/cms/ContentTypes/Search/index.d.ts +0 -0
  34. package/src/types/src/cms/ContentTypes/Tipbar/index.d.ts +43 -0
  35. package/src/types/src/cms/ContentTypes/Wishlist/index.d.ts +0 -0
  36. package/src/types/src/cms/Factories/index.d.ts +69 -0
  37. package/src/types/src/cms/Sections/Banner/index.d.ts +48 -0
  38. package/src/types/src/cms/Sections/BannerCarousel/index.d.ts +20 -0
  39. package/src/types/src/cms/Sections/BennefitsBar/index.d.ts +19 -0
  40. package/src/types/src/cms/Sections/HeaderSubmenu/index.d.ts +34 -0
  41. package/src/types/src/cms/Sections/ImageGrid/index.d.ts +9 -0
  42. package/src/types/src/cms/Sections/ListProductsBanners/index.d.ts +12 -0
  43. package/src/types/src/cms/Sections/Newsletter/index.d.ts +19 -0
  44. package/src/types/src/cms/Sections/ProductCarousel/index.d.ts +0 -0
  45. package/src/types/src/cms/Sections/TextAccordion/index.d.ts +7 -0
  46. package/src/types/src/cms/Sections/TextContent/index.d.ts +24 -0
  47. package/src/types/src/cms/Sections/_common/index.d.ts +8 -0
  48. package/src/types/src/constants.d.ts +2 -0
  49. package/src/types/src/contexts/hooks/index.d.ts +6 -0
  50. package/src/types/src/contexts/store/pdp.d.ts +127 -0
  51. package/src/types/src/contexts/store/selectedSKU.d.ts +10 -0
  52. package/src/types/src/data/events/index.d.ts +111 -0
  53. package/src/types/src/global/product/index.d.ts +295 -0
  54. package/src/types/src/product/index.d.ts +295 -0
@@ -0,0 +1,29 @@
1
+ import type { TMode, TSizesSmallExtended } from '@soma-vertical-web/foundations';
2
+ import type { IContentTypeResponseBase } from '../../Factories';
3
+ export interface ItemsHelpButton {
4
+ title: string;
5
+ subtitle: string;
6
+ description: string;
7
+ buttonLabel?: string;
8
+ buttonHref?: string;
9
+ butonMode?: TMode;
10
+ buttonSize?: TSizesSmallExtended;
11
+ buttonIcon?: string;
12
+ }
13
+ export interface ConfigHelpButton {
14
+ iconLabel?: string;
15
+ label?: string;
16
+ items: Array<ItemsHelpButton>;
17
+ }
18
+ export interface IHelpButtonContent extends IContentTypeResponseBase {
19
+ items: {
20
+ items: ConfigHelpButton;
21
+ };
22
+ }
23
+ export interface IHelpButtonContentResponse {
24
+ iconLabel: string | undefined;
25
+ label: string | undefined;
26
+ content: (ItemsHelpButton & {
27
+ id: string;
28
+ })[];
29
+ }
@@ -0,0 +1,11 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ export interface Config {
3
+ titlePage: string;
4
+ altImageBackgroud: string;
5
+ imageBackground: string;
6
+ }
7
+ export interface ILPLojasContent extends IContentTypeResponseBase {
8
+ config: {
9
+ config: Config;
10
+ };
11
+ }
@@ -0,0 +1,38 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ import type { ImageGridSectionType } from '../../Sections/ImageGrid';
3
+ import type { NewsLetterSectionType } from '../../Sections/Newsletter';
4
+ export interface ConfigTabItem {
5
+ mainCollection: string;
6
+ title: string;
7
+ order: number;
8
+ }
9
+ export interface ConfigTab {
10
+ tabConfig: ConfigTabItem;
11
+ seo: {
12
+ slug: string;
13
+ title: string;
14
+ description: string;
15
+ };
16
+ }
17
+ export interface ConfigPageItem {
18
+ items: {
19
+ title: string;
20
+ }[];
21
+ }
22
+ export interface ConfigPage {
23
+ tabConfig: ConfigPageItem;
24
+ seo: {
25
+ slug: string;
26
+ title: string;
27
+ description: string;
28
+ };
29
+ }
30
+ export type LookbookPageSectionType = NewsLetterSectionType;
31
+ export interface ILookbookPage extends IContentTypeResponseBase {
32
+ config: ConfigPage;
33
+ sections: LookbookPageSectionType[];
34
+ }
35
+ export interface ILookbookTab extends IContentTypeResponseBase {
36
+ config: ConfigTab;
37
+ sections: ImageGridSectionType[];
38
+ }
@@ -0,0 +1,14 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ export interface Config {
3
+ altImageBackgroud: string;
4
+ imageBackgroudDesk: string;
5
+ imageBackgroudMobile: string;
6
+ title: string;
7
+ subTitle: string;
8
+ description: string;
9
+ }
10
+ export interface INotFoundContent extends IContentTypeResponseBase {
11
+ config: {
12
+ config: Config;
13
+ };
14
+ }
File without changes
File without changes
@@ -0,0 +1,37 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ import type { NewsLetterSectionType } from '../../Sections/Newsletter';
3
+ import type { TextAccordionSectionType } from '../../Sections/TextAccordion';
4
+ import type { TextContentSectionType } from '../../Sections/TextContent';
5
+ export interface ConfigTab {
6
+ tabConfig: {
7
+ title: string;
8
+ order: number;
9
+ };
10
+ seo: {
11
+ slug: string;
12
+ title: string;
13
+ description: string;
14
+ };
15
+ }
16
+ export interface ConfigPage {
17
+ seo: {
18
+ slug: string;
19
+ title: string;
20
+ description: string;
21
+ };
22
+ banners: {
23
+ altImageBackgroud: string;
24
+ imageBackgroudDesk: string;
25
+ imageBackgroudMobile: string;
26
+ };
27
+ }
28
+ export type PolicyPageSectionType = NewsLetterSectionType;
29
+ export type TabPolicySectionType = TextAccordionSectionType | TextContentSectionType;
30
+ export interface IPolicyPage extends IContentTypeResponseBase {
31
+ config: ConfigPage;
32
+ sections: PolicyPageSectionType[];
33
+ }
34
+ export interface IPolicyTab extends IContentTypeResponseBase {
35
+ config: ConfigTab;
36
+ sections: TabPolicySectionType[];
37
+ }
@@ -0,0 +1,20 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ import type { BannerSectionType } from '../../Sections/Banner';
3
+ import type { DeviceType } from '../CommonPage';
4
+ export interface Config {
5
+ config: {
6
+ activePreHome: boolean;
7
+ cookieTime: number;
8
+ textButton: string;
9
+ sizeButton: string;
10
+ varianteButton: string;
11
+ modeButton: string;
12
+ };
13
+ responsive: {
14
+ deviceType: DeviceType;
15
+ };
16
+ }
17
+ export interface IPreHome extends IContentTypeResponseBase {
18
+ sections: BannerSectionType[];
19
+ config: Config;
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ export interface IRedirects extends IContentTypeResponseBase {
3
+ redirectToSearch: {
4
+ redirectToSearch: {
5
+ paths: {
6
+ path: string;
7
+ searchQuery: string;
8
+ pageTitle: string;
9
+ pageDescription: string;
10
+ synteticCategoryId: string;
11
+ collectionId: number;
12
+ filters: {
13
+ key: string;
14
+ value: string;
15
+ }[];
16
+ sort: string;
17
+ }[];
18
+ };
19
+ };
20
+ }
@@ -0,0 +1,43 @@
1
+ import type { IContentTypeResponseBase } from '../../Factories';
2
+ export type DeviceType = 'mobile' | 'desktop';
3
+ interface ITipbarStaticConfig {
4
+ /** works only with it has carousel */
5
+ showCarouselArrows: boolean;
6
+ /** works only with it has carousel */
7
+ slideTranstionTimer: number;
8
+ hasCloseBtn: boolean;
9
+ backgroundColor: string;
10
+ textColorVariant: string;
11
+ deviceType: DeviceType;
12
+ }
13
+ export interface ITipbarRepeatableContent {
14
+ /** works only with it has carousel */
15
+ coupon: string;
16
+ /** works only with it has carousel */
17
+ couponButtonVariant: string;
18
+ couponFeedbackTitle: string;
19
+ couponFeedbackDescription: string;
20
+ couponButtonMode: string;
21
+ /** works only with it has countdown */
22
+ countDownEndDate: string;
23
+ /** works only for mobile */
24
+ highlightFirstSection: boolean;
25
+ horizontalAlignHighlightedSection: string;
26
+ link: string;
27
+ items: Array<{
28
+ title: string;
29
+ description: string;
30
+ type: 'countdown' | 'content' | 'coupon';
31
+ }>;
32
+ }
33
+ export interface ITipbarContent extends IContentTypeResponseBase {
34
+ staticConfig: {
35
+ staticConfig: ITipbarStaticConfig;
36
+ };
37
+ content: {
38
+ content: {
39
+ items: ITipbarRepeatableContent[];
40
+ };
41
+ };
42
+ }
43
+ export {};
@@ -0,0 +1,69 @@
1
+ export type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array';
2
+ export type UIWidget = 'image-uploader' | 'media-gallery' | 'date-time' | 'draftjs-rich-text';
3
+ export type UIObjectFieldTemplate = 'GoogleSeoPreview' | 'media-galery' | 'date-time' | 'draftjs-rich-text';
4
+ export interface Widget {
5
+ uiWidget?: UIWidget;
6
+ uiObjectFieldTemplate?: UIObjectFieldTemplate;
7
+ }
8
+ export interface JSONWidget {
9
+ 'ui:widget'?: UIWidget;
10
+ 'ui:ObjectFieldTemplate'?: UIObjectFieldTemplate;
11
+ }
12
+ export interface Property {
13
+ title: string;
14
+ description?: string;
15
+ type: string;
16
+ default?: any;
17
+ widget?: JSONWidget;
18
+ enumNames?: string[] | readonly string[];
19
+ enum?: string[] | readonly string[];
20
+ properties?: {
21
+ [key: string]: Property;
22
+ };
23
+ items?: Property;
24
+ }
25
+ export interface Schema {
26
+ title: string;
27
+ description: string;
28
+ type: FieldType;
29
+ required?: string[];
30
+ widget?: JSONWidget;
31
+ properties?: {
32
+ [key: string]: Property;
33
+ };
34
+ }
35
+ export interface Configuration {
36
+ name: string;
37
+ schema: Schema;
38
+ }
39
+ export interface ConfigurationSchemaSet {
40
+ name: string;
41
+ configurations: Configuration[];
42
+ }
43
+ export interface IContentType {
44
+ id: string;
45
+ name: string;
46
+ scopes?: string[];
47
+ configurationSchemaSets: ConfigurationSchemaSet[];
48
+ }
49
+ export interface IContentTypeResponseBase {
50
+ id: string;
51
+ name: string;
52
+ type: string;
53
+ status: string;
54
+ versionId: string;
55
+ versionStatus: string;
56
+ sections: ISectionResponseBase[];
57
+ items?: any;
58
+ }
59
+ export interface ISection {
60
+ href?: string;
61
+ id: string;
62
+ name: string;
63
+ requiredScopes?: string[];
64
+ schema: Schema;
65
+ }
66
+ export interface ISectionResponseBase {
67
+ id: string;
68
+ name: string;
69
+ }
@@ -0,0 +1,48 @@
1
+ /// <reference types="react" />
2
+ import type { VariantsType } from '@soma-vertical-web/core-components/src/lib/Header/interfaces';
3
+ import type { TMode } from '@soma-vertical-web/foundations';
4
+ import { ISectionResponseBase } from '../../Factories';
5
+ import { TextContentSectionType } from '../TextContent';
6
+ export type Position = 'superior-esquerda' | 'superior-centro' | 'superior-direita' | 'centro' | 'centro-esquerda' | 'centro-direita' | 'inferior-esquerda' | 'inferior-centro' | 'inferior-direita';
7
+ export type ContentAlignment = 'centro' | 'esquerda' | 'direita';
8
+ export type BannerType = TextContentSectionType['data'] & {
9
+ promotion_id: string;
10
+ promotion_name: string;
11
+ creative_name: string;
12
+ creative_slot: string;
13
+ isHeroBanner: boolean;
14
+ backgroundColor: string;
15
+ contentOrder: string;
16
+ video: string;
17
+ position: Position;
18
+ image: string;
19
+ imageOpacity: boolean;
20
+ altImage: string;
21
+ showTimer: boolean;
22
+ timerEnd: string;
23
+ timerInit: string;
24
+ timerMode: TMode;
25
+ timerSize: string;
26
+ contentAlignment: ContentAlignment;
27
+ title: string;
28
+ href?: string;
29
+ index?: number;
30
+ headerVariant: VariantsType;
31
+ };
32
+ export interface BannerContentProps {
33
+ data: BannerSectionType['data'];
34
+ videoUrl: string | undefined;
35
+ priority?: boolean;
36
+ videoRef?: React.RefObject<HTMLVideoElement>;
37
+ }
38
+ export interface IBannerSectionTypeComponent {
39
+ data: {
40
+ banner: BannerType;
41
+ index?: number;
42
+ componentIndex: number;
43
+ };
44
+ creative: string;
45
+ priority?: boolean;
46
+ }
47
+ export interface BannerSectionType extends ISectionResponseBase, IBannerSectionTypeComponent {
48
+ }
@@ -0,0 +1,20 @@
1
+ import type { ISectionResponseBase } from '../../Factories';
2
+ import type { BannerType } from '../Banner';
3
+ export type TControllerPosition = 'superior-direita' | 'inferior-direita' | 'dentro-inferior-centro' | 'dentro-inferior-esquerda';
4
+ export interface BannerCarouselSectionType extends ISectionResponseBase {
5
+ data: {
6
+ config: {
7
+ slidesPerView: number;
8
+ gap: number;
9
+ slideDuration: number;
10
+ controllerPosition: TControllerPosition;
11
+ fullWidth: boolean;
12
+ hideControllers?: boolean;
13
+ marginTop: string;
14
+ marginBottom: string;
15
+ };
16
+ banners: BannerType[];
17
+ componentIndex: number;
18
+ first?: boolean;
19
+ };
20
+ }
@@ -0,0 +1,19 @@
1
+ import type { TSizesReduced } from '@soma-vertical-web/foundations';
2
+ import { ISectionResponseBase } from '../../Factories';
3
+ export interface BennefitsBarSectionType extends ISectionResponseBase {
4
+ data: {
5
+ config: {
6
+ slidesPerView: number;
7
+ gap: number;
8
+ disableCarouselMobile: boolean;
9
+ slidesPerViewMobile: number;
10
+ gapMobile: number;
11
+ size: TSizesReduced;
12
+ };
13
+ bennefit: {
14
+ icon: string;
15
+ title: string;
16
+ subtitle: string;
17
+ }[];
18
+ };
19
+ }
@@ -0,0 +1,34 @@
1
+ import type { ISectionResponseBase } from '../../Factories';
2
+ export interface DataSubmenu {
3
+ id: string;
4
+ label: string;
5
+ subCategories: {
6
+ label: string;
7
+ linkLabel: string;
8
+ items: {
9
+ link: string;
10
+ label: string;
11
+ }[];
12
+ see_all?: {
13
+ link?: string;
14
+ label: string;
15
+ };
16
+ listCollapseDesk?: boolean;
17
+ rowsToShowDesk?: number;
18
+ listCollapseMobile?: boolean;
19
+ rowsToShowMobile?: number;
20
+ }[];
21
+ thumbnails?: {
22
+ srcDesk?: string;
23
+ srcMobile?: string;
24
+ creative_name: string;
25
+ creative_slot: string;
26
+ promotion_id: string;
27
+ promotion_name: string;
28
+ label: string;
29
+ link: string;
30
+ }[];
31
+ }
32
+ export interface IHeaderSubmenu extends ISectionResponseBase {
33
+ data: DataSubmenu;
34
+ }
@@ -0,0 +1,9 @@
1
+ import type { ISectionResponseBase } from '../../Factories';
2
+ export interface ImageGridSectionType extends ISectionResponseBase {
3
+ data: {
4
+ banners: {
5
+ image: string;
6
+ altImage: string;
7
+ }[];
8
+ };
9
+ }
@@ -0,0 +1,12 @@
1
+ import type { BannerType } from '../Banner';
2
+ export type ListProductBannersSectionType = {
3
+ id: string;
4
+ name: string;
5
+ data: {
6
+ banners: {
7
+ bannerWidth: number;
8
+ bannerPosition: number;
9
+ banner: BannerType;
10
+ }[];
11
+ };
12
+ };
@@ -0,0 +1,19 @@
1
+ import type { ISectionResponseBase } from '../../Factories';
2
+ export interface NewsLetterSectionType extends ISectionResponseBase {
3
+ data: {
4
+ title: string;
5
+ description: string;
6
+ lpgd: string;
7
+ masterDataEntity: string;
8
+ masterDataNameField: string;
9
+ masterDataEmailField: string;
10
+ fields: {
11
+ type: string;
12
+ placeholder: string;
13
+ invalid_message: string;
14
+ master_data_field: string;
15
+ required: boolean;
16
+ }[];
17
+ componentIndex?: number;
18
+ };
19
+ }
@@ -0,0 +1,7 @@
1
+ import type { ISectionResponseBase } from '../../Factories';
2
+ import type { IAccordionList } from '../_common';
3
+ export interface TextAccordionSectionType extends ISectionResponseBase {
4
+ data: IAccordionList & {
5
+ title: string;
6
+ };
7
+ }
@@ -0,0 +1,24 @@
1
+ import type { TMode, TSizesSmallExtended } from '@soma-vertical-web/foundations';
2
+ import type { ISectionResponseBase } from '../../Factories';
3
+ export type ContentAlignment = 'centro' | 'esquerda' | 'direita';
4
+ export interface ITextContentSectionTypeComponent {
5
+ data: {
6
+ borderTop: boolean;
7
+ textStructure: string;
8
+ textStructureReduced: string;
9
+ enableIcon: boolean;
10
+ textStructureButtonIcon: string;
11
+ textStructureButtonLabel: string;
12
+ textStructureButtonSize: TSizesSmallExtended;
13
+ textStructureButtonHref: string;
14
+ textStructureMode: TMode;
15
+ textStructureAlignment: ContentAlignment;
16
+ showTextStructureExpander: boolean;
17
+ };
18
+ }
19
+ export interface TextContentSectionType extends ISectionResponseBase, ITextContentSectionTypeComponent {
20
+ }
21
+ export interface ContentProps {
22
+ expanded: boolean;
23
+ content: ITextContentSectionTypeComponent['data'];
24
+ }
@@ -0,0 +1,8 @@
1
+ export interface IAccordion {
2
+ title: string;
3
+ subtitle: string;
4
+ text: string;
5
+ }
6
+ export interface IAccordionList {
7
+ accordions: IAccordion[];
8
+ }
@@ -0,0 +1,2 @@
1
+ export declare const PDPShelfType: readonly ["whosawalsosaw", "whosawalsobought", "whoboughtalsobought", "accessories", "similars", "showtogether", "suggestions"];
2
+ export declare const PAYMENT_FLAGS: readonly ["Visa", "Mastercard", "AmericanExpress", "DinersClub", "Elo", "Pix"];
@@ -0,0 +1,6 @@
1
+ export interface UseBackPDCProps {
2
+ gridScrollBack?: {
3
+ refer: string;
4
+ value: string;
5
+ };
6
+ }
@@ -0,0 +1,127 @@
1
+ import type { ProductInfoProps } from '@soma-vertical-web/core-components/src/lib/ProductInfo/interfaces';
2
+ import type { Dispatch, PropsWithChildren, SetStateAction } from 'react';
3
+ import type { Sizes as BtnSizes } from '@soma-vertical-web/core-components/src/lib/Button/interfaces';
4
+ import type { TagCommercialConsumer } from '../../cms/ContentTypes/FlagsAndTags';
5
+ import type { ImageType, ProductType } from '../../product';
6
+ export type SimilarsType = {
7
+ currentSimilarInfo: {
8
+ images: ImageType[];
9
+ color: string[];
10
+ };
11
+ productId: string;
12
+ };
13
+ type SelectedSkuInfoType = {
14
+ productId: string;
15
+ name: string;
16
+ size: string;
17
+ sku: string;
18
+ sellerId: string;
19
+ sellerName: string;
20
+ available: boolean;
21
+ quantity: number;
22
+ };
23
+ export interface PDPContextProps {
24
+ selectedSkuInfo: SelectedSkuInfoType;
25
+ setSelectedSkuInfo: Dispatch<SetStateAction<SelectedSkuInfoType>>;
26
+ openLetMeKnow: boolean;
27
+ setOpenLetMeKnow: Dispatch<SetStateAction<boolean>>;
28
+ showBottomNavigation: boolean;
29
+ setShowBottomNavigation: Dispatch<SetStateAction<boolean>>;
30
+ handleShowNavigation: (show: boolean) => void;
31
+ showNotify: boolean;
32
+ setShowNotify: Dispatch<SetStateAction<boolean>>;
33
+ sizesContainerRef: React.MutableRefObject<HTMLDivElement | null>;
34
+ }
35
+ export interface PDPProviderProps extends PropsWithChildren {
36
+ productData: ProductType;
37
+ }
38
+ export interface PDPPriceProps extends ProductInfoProps {
39
+ }
40
+ export type Installments = {
41
+ count: number;
42
+ value: number;
43
+ };
44
+ export type PricesInfos = {
45
+ price: number;
46
+ listPrice: number;
47
+ installments: Installments;
48
+ };
49
+ export type DescriptionContent = {
50
+ label: string;
51
+ value: string;
52
+ content: string | TrustedHTML;
53
+ }[];
54
+ export type Sizes = {
55
+ name: string;
56
+ sku: string;
57
+ value: string;
58
+ available: boolean;
59
+ sellerId: string;
60
+ sellerName: string;
61
+ }[];
62
+ export type PDPDataContextProps = {
63
+ productData: ProductType;
64
+ productId: string;
65
+ productName: string;
66
+ productReference: string;
67
+ tag?: {
68
+ commercial?: {
69
+ key: string;
70
+ value: string;
71
+ icon: string;
72
+ };
73
+ institucional?: {
74
+ key: string;
75
+ value: string;
76
+ icon: string;
77
+ };
78
+ flagPdp?: TagCommercialConsumer;
79
+ };
80
+ items: ProductType['items'];
81
+ sizes: Sizes;
82
+ allSizesAvailable: boolean;
83
+ installments: Installments;
84
+ price: number;
85
+ listPrice: number;
86
+ images: ImageType[];
87
+ video: string;
88
+ descriptionContent: DescriptionContent;
89
+ breadcrumbList: string[];
90
+ thumbImage?: ImageType;
91
+ isKit: boolean;
92
+ colorName: string;
93
+ handleViewItemEvent: (args: {
94
+ sku?: string;
95
+ size?: string;
96
+ }) => void;
97
+ };
98
+ export interface SubSectionProps extends PropsWithChildren {
99
+ className?: string;
100
+ }
101
+ export interface GalleryWrapperProps {
102
+ productImgs: ImageType[];
103
+ }
104
+ export interface PDPActionsProps {
105
+ showWishlist?: boolean;
106
+ callBack?: Function;
107
+ addToCartBtnSize?: {
108
+ mobile: BtnSizes;
109
+ desktop: BtnSizes;
110
+ };
111
+ }
112
+ export interface AddToCartProps {
113
+ addToCartBtnSize?: {
114
+ mobile: BtnSizes;
115
+ desktop: BtnSizes;
116
+ };
117
+ onAddCallBack?: Function;
118
+ onDisabledClickCallBack?: Function;
119
+ }
120
+ export interface BottomNavigationProps {
121
+ addToCartBtnSize?: {
122
+ mobile: BtnSizes;
123
+ desktop: BtnSizes;
124
+ };
125
+ }
126
+ export type BottomNavigationActionsProps = BottomNavigationProps;
127
+ export {};
@@ -0,0 +1,10 @@
1
+ export type SelectedSkuInfoType = {
2
+ productId: string;
3
+ name: string;
4
+ size: string;
5
+ sku: string;
6
+ sellerId: string;
7
+ sellerName: string;
8
+ available: boolean;
9
+ quantity: number;
10
+ };