igloo-d2c-components 1.0.13 → 1.0.14

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 (115) hide show
  1. package/README.md +1151 -321
  2. package/dist/assets/icons/alert.svg +5 -0
  3. package/dist/assets/icons/arrow-down.svg +3 -0
  4. package/dist/assets/icons/arrow.svg +9 -0
  5. package/dist/assets/icons/close.svg +4 -0
  6. package/dist/assets/icons/facebook.svg +3 -0
  7. package/dist/assets/icons/index.ts +26 -0
  8. package/dist/assets/icons/instagram.svg +11 -0
  9. package/dist/assets/icons/youtube.svg +11 -0
  10. package/dist/assets/index.ts +13 -0
  11. package/dist/assets/tenants/ammetlife/logo.svg +10 -0
  12. package/dist/assets/tenants/cimb/logo-white.png +0 -0
  13. package/dist/assets/tenants/cimb/logo.svg +62 -0
  14. package/dist/assets/tenants/igloo/logo.svg +22 -0
  15. package/dist/cjs/index.js +2804 -41
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/esm/index.js +2752 -41
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/types/assets/icons/index.d.ts +21 -0
  20. package/dist/types/assets/index.d.ts +9 -0
  21. package/dist/types/components/BenefitsSummary/BenefitsSummary.d.ts +22 -0
  22. package/dist/types/components/BenefitsSummary/index.d.ts +2 -0
  23. package/dist/types/components/BenefitsSummary/styled.d.ts +29 -0
  24. package/dist/types/components/BenefitsSummary/types.d.ts +58 -0
  25. package/dist/types/components/BillingToggle/BillingToggle.d.ts +34 -0
  26. package/dist/types/components/BillingToggle/index.d.ts +3 -0
  27. package/dist/types/components/BillingToggle/styled.d.ts +12 -0
  28. package/dist/types/components/CheckoutFormButton/CheckoutFormButton.d.ts +39 -0
  29. package/dist/types/components/CheckoutFormButton/index.d.ts +2 -0
  30. package/dist/types/components/CheckoutFormButton/styled.d.ts +9 -0
  31. package/dist/types/components/CheckoutHeader/CheckoutHeader.d.ts +41 -0
  32. package/dist/types/components/CheckoutHeader/index.d.ts +2 -0
  33. package/dist/types/components/CheckoutHeader/styled.d.ts +15 -0
  34. package/dist/types/components/CheckoutProgress/CheckoutProgress.d.ts +35 -0
  35. package/dist/types/components/CheckoutProgress/index.d.ts +2 -0
  36. package/dist/types/components/CheckoutProgress/styled.d.ts +16 -0
  37. package/dist/types/components/ChildInformationForm/ChildInformationForm.d.ts +52 -0
  38. package/dist/types/components/ChildInformationForm/index.d.ts +2 -0
  39. package/dist/types/components/ChildInformationForm/styled.d.ts +4 -0
  40. package/dist/types/components/ContactDetailsForm/ContactDetailsForm.d.ts +63 -0
  41. package/dist/types/components/ContactDetailsForm/index.d.ts +2 -0
  42. package/dist/types/components/ContactDetailsForm/styled.d.ts +10 -0
  43. package/dist/types/components/CoverageAmountSlider/CoverageAmountSlider.d.ts +57 -0
  44. package/dist/types/components/CoverageAmountSlider/index.d.ts +3 -0
  45. package/dist/types/components/CoverageAmountSlider/styled.d.ts +50 -0
  46. package/dist/types/components/FAQAccordion/FAQAccordion.d.ts +22 -0
  47. package/dist/types/components/FAQAccordion/index.d.ts +2 -0
  48. package/dist/types/components/FAQAccordion/styled.d.ts +37 -0
  49. package/dist/types/components/FAQAccordion/types.d.ts +57 -0
  50. package/dist/types/components/Footer/Footer.d.ts +94 -0
  51. package/dist/types/components/Footer/index.d.ts +3 -0
  52. package/dist/types/components/Footer/styled.d.ts +38 -0
  53. package/dist/types/components/Header/Header.d.ts +159 -0
  54. package/dist/types/components/Header/index.d.ts +3 -0
  55. package/dist/types/components/Header/styled.d.ts +80 -0
  56. package/dist/types/components/HealthInformationForm/HealthInformationForm.d.ts +81 -0
  57. package/dist/types/components/HealthInformationForm/index.d.ts +2 -0
  58. package/dist/types/components/HealthInformationForm/styled.d.ts +4 -0
  59. package/dist/types/components/HealthQuestionGroup/HealthQuestionGroup.d.ts +40 -0
  60. package/dist/types/components/HealthQuestionGroup/index.d.ts +2 -0
  61. package/dist/types/components/HealthQuestionGroup/styled.d.ts +20 -0
  62. package/dist/types/components/InfoCallout/InfoCallout.d.ts +34 -0
  63. package/dist/types/components/InfoCallout/index.d.ts +3 -0
  64. package/dist/types/components/InfoCallout/styled.d.ts +16 -0
  65. package/dist/types/components/NewHeader/NewHeader.d.ts +60 -0
  66. package/dist/types/components/NewHeader/index.d.ts +3 -0
  67. package/dist/types/components/NewHeader/styled.d.ts +26 -0
  68. package/dist/types/components/OptionButton/OptionButton.d.ts +59 -0
  69. package/dist/types/components/OptionButton/index.d.ts +3 -0
  70. package/dist/types/components/OptionButton/styled.d.ts +18 -0
  71. package/dist/types/components/PersonalInformationForm/PersonalInformationForm.d.ts +75 -0
  72. package/dist/types/components/PersonalInformationForm/index.d.ts +2 -0
  73. package/dist/types/components/PersonalInformationForm/styled.d.ts +10 -0
  74. package/dist/types/components/ProductCard/ProductCard.d.ts +43 -0
  75. package/dist/types/components/ProductCard/index.d.ts +2 -0
  76. package/dist/types/components/ProductCard/styled.d.ts +27 -0
  77. package/dist/types/components/ProductSelectionDrawer/ProductSelectionDrawer.d.ts +54 -0
  78. package/dist/types/components/ProductSelectionDrawer/index.d.ts +3 -0
  79. package/dist/types/components/ProductSelectionDrawer/styled.d.ts +44 -0
  80. package/dist/types/components/QuestionSection/QuestionSection.d.ts +71 -0
  81. package/dist/types/components/QuestionSection/index.d.ts +3 -0
  82. package/dist/types/components/QuestionSection/styled.d.ts +16 -0
  83. package/dist/types/components/RecommendationsDrawer/RecommendationsDrawer.d.ts +92 -0
  84. package/dist/types/components/RecommendationsDrawer/index.d.ts +3 -0
  85. package/dist/types/components/RecommendationsDrawer/styled.d.ts +35 -0
  86. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +45 -0
  87. package/dist/types/components/ToggleGroup/index.d.ts +3 -0
  88. package/dist/types/components/ToggleGroup/styled.d.ts +17 -0
  89. package/dist/types/context/TenantThemeContext.d.ts +3 -2
  90. package/dist/types/index.d.ts +52 -4
  91. package/dist/types/{components/Banner → storybook-components}/Banner.stories.d.ts +1 -1
  92. package/dist/types/storybook-components/BenefitsSummary.stories.d.ts +37 -0
  93. package/dist/types/storybook-components/BillingToggle.stories.d.ts +10 -0
  94. package/dist/types/{components/Button → storybook-components}/Button.stories.d.ts +1 -1
  95. package/dist/types/{components/Card → storybook-components}/Card.stories.d.ts +1 -1
  96. package/dist/types/storybook-components/CheckoutProgress.stories.d.ts +9 -0
  97. package/dist/types/storybook-components/CoverageAmountSlider.stories.d.ts +14 -0
  98. package/dist/types/storybook-components/FAQAccordion.stories.d.ts +37 -0
  99. package/dist/types/storybook-components/Footer.stories.d.ts +10 -0
  100. package/dist/types/storybook-components/Header.stories.d.ts +9 -0
  101. package/dist/types/storybook-components/HealthQuestionGroup.stories.d.ts +9 -0
  102. package/dist/types/storybook-components/InfoCallout.stories.d.ts +11 -0
  103. package/dist/types/storybook-components/NewHeader.stories.d.ts +82 -0
  104. package/dist/types/storybook-components/OptionButton.stories.d.ts +12 -0
  105. package/dist/types/storybook-components/ProductCard.stories.d.ts +9 -0
  106. package/dist/types/storybook-components/ProductSelectionDrawer.stories.d.ts +24 -0
  107. package/dist/types/storybook-components/QuestionSection.stories.d.ts +11 -0
  108. package/dist/types/storybook-components/RecommendationsDrawer.stories.d.ts +36 -0
  109. package/dist/types/storybook-components/ToggleGroup.stories.d.ts +10 -0
  110. package/dist/types/themes/index.d.ts +1 -1
  111. package/dist/types/themes/typography.d.ts +69 -0
  112. package/dist/types/types/tenant.d.ts +23 -2
  113. package/dist/types/utils/assets.d.ts +54 -0
  114. package/dist/types/utils/theme.d.ts +3 -2
  115. package/package.json +4 -2
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Common UI Icons
3
+ * Path references to reusable icons
4
+ * Assets are copied to dist/assets folder during build
5
+ */
6
+ export declare const ICON_PATHS: {
7
+ readonly close: "/assets/icons/close.svg";
8
+ readonly arrow: "/assets/icons/arrow.svg";
9
+ readonly arrowDown: "/assets/icons/arrow-down.svg";
10
+ readonly alert: "/assets/icons/alert.svg";
11
+ readonly facebook: "/assets/icons/facebook.svg";
12
+ readonly instagram: "/assets/icons/instagram.svg";
13
+ readonly youtube: "/assets/icons/youtube.svg";
14
+ };
15
+ export type IconName = keyof typeof ICON_PATHS;
16
+ /**
17
+ * Get icon path by name
18
+ * @param iconName - Name of the icon
19
+ * @returns Path to icon asset
20
+ */
21
+ export declare function getIconPath(iconName: IconName): string;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Asset Exports
3
+ * Centralized exports for all assets
4
+ *
5
+ * Note: Assets are copied to dist/assets during build
6
+ * Use the provided utilities to reference asset paths
7
+ */
8
+ export { ICON_PATHS, getIconPath } from './icons';
9
+ export type { IconName } from './icons';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Benefits Summary Component
3
+ * A reusable, tenant-aware benefits summary component
4
+ */
5
+ import { BenefitsSummaryProps } from './types';
6
+ /**
7
+ * BenefitsSummary - Displays a list of product benefits
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const benefits = [
12
+ * { id: 'benefit-1', icon: '/icons/health.svg', title: 'Death Benefit', description: '100% of Sum Assured' },
13
+ * { id: 'benefit-2', icon: <HealthIcon />, title: 'TPD Coverage', description: 'Total & Permanent Disability' },
14
+ * ]
15
+ *
16
+ * <BenefitsSummary
17
+ * benefits={benefits}
18
+ * title="Benefits Summary"
19
+ * />
20
+ * ```
21
+ */
22
+ export declare function BenefitsSummary({ benefits, title, formatMessage, backgroundColor, maxWidth, className, iconSize, }: BenefitsSummaryProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { BenefitsSummary } from './BenefitsSummary';
2
+ export type { BenefitItem, BenefitsSummaryProps } from './types';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Benefits Summary Styled Components
3
+ * MUI styled components for the Benefits Summary
4
+ */
5
+ /// <reference types="react" />
6
+ export declare const SectionContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
7
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
8
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
9
+ export declare const SectionTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
10
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
11
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
12
+ export declare const BenefitsList: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
13
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
14
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
15
+ export declare const BenefitItemContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
16
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
17
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
18
+ export declare const BenefitIcon: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
19
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
20
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
21
+ export declare const BenefitContent: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
22
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
23
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
24
+ export declare const BenefitTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
25
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
26
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
27
+ export declare const BenefitDescription: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
28
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
29
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Benefits Summary Types
3
+ * Type definitions for the Benefits Summary component
4
+ */
5
+ import * as React from 'react';
6
+ export interface BenefitItem {
7
+ /**
8
+ * Unique identifier for the benefit
9
+ */
10
+ id: string;
11
+ /**
12
+ * Icon for the benefit - can be a URL string or React node
13
+ */
14
+ icon: string | React.ReactNode;
15
+ /**
16
+ * Title of the benefit
17
+ */
18
+ title: string;
19
+ /**
20
+ * Description of the benefit (supports newline characters for multi-line text)
21
+ */
22
+ description: string;
23
+ }
24
+ export interface BenefitsSummaryProps {
25
+ /**
26
+ * Array of benefits to display
27
+ */
28
+ benefits: BenefitItem[];
29
+ /**
30
+ * Title for the benefits section
31
+ */
32
+ title?: string;
33
+ /**
34
+ * Optional format message function for i18n support
35
+ */
36
+ formatMessage?: (descriptor: {
37
+ id: string;
38
+ defaultMessage?: string;
39
+ }) => string;
40
+ /**
41
+ * Custom background color for the container
42
+ */
43
+ backgroundColor?: string;
44
+ /**
45
+ * Maximum width for the content area
46
+ * @default '1128px'
47
+ */
48
+ maxWidth?: string;
49
+ /**
50
+ * Custom class name for additional styling
51
+ */
52
+ className?: string;
53
+ /**
54
+ * Size of the benefit icons
55
+ * @default 24
56
+ */
57
+ iconSize?: number;
58
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Billing Toggle Component
3
+ * Toggle between monthly and annual billing options
4
+ * Based on Figma design (node-id: 98-21872)
5
+ */
6
+ export interface BillingToggleProps {
7
+ /**
8
+ * Currently selected billing type
9
+ */
10
+ value: 'monthly' | 'annually';
11
+ /**
12
+ * Callback when billing type changes
13
+ */
14
+ onChange: (value: 'monthly' | 'annually') => void;
15
+ /**
16
+ * Optional format message function for i18n
17
+ */
18
+ formatMessage?: (descriptor: {
19
+ id: string;
20
+ defaultMessage?: string;
21
+ }) => string;
22
+ }
23
+ /**
24
+ * BillingToggle - Toggle between monthly and annual billing
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <BillingToggle
29
+ * value={billingType}
30
+ * onChange={setBillingType}
31
+ * />
32
+ * ```
33
+ */
34
+ export declare function BillingToggle({ value, onChange, formatMessage, }: BillingToggleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { BillingToggle } from './BillingToggle';
2
+ export type { BillingToggleProps } from './BillingToggle';
3
+ export * from './styled';
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export declare const ToggleContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
5
+ export declare const ToggleButton: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
7
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
8
+ active: boolean;
9
+ }, {}, {}>;
10
+ export declare const ToggleText: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
11
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
12
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Checkout Form Button Component
3
+ * Fixed/floating button for checkout form submission
4
+ */
5
+ import * as React from 'react';
6
+ export interface CheckoutFormButtonProps {
7
+ /**
8
+ * Button text
9
+ * @default 'Next'
10
+ */
11
+ text?: string;
12
+ /**
13
+ * Whether button is disabled
14
+ */
15
+ disabled?: boolean;
16
+ /**
17
+ * Click handler
18
+ */
19
+ onClick?: () => void;
20
+ /**
21
+ * Whether button should be fixed at bottom
22
+ * @default true
23
+ */
24
+ fixed?: boolean;
25
+ /**
26
+ * Button type
27
+ * @default 'button'
28
+ */
29
+ type?: 'button' | 'submit';
30
+ /**
31
+ * Optional custom styles
32
+ */
33
+ sx?: any;
34
+ /**
35
+ * Whether the button is in loading state
36
+ */
37
+ loading?: boolean;
38
+ }
39
+ export declare const CheckoutFormButton: React.FC<CheckoutFormButtonProps>;
@@ -0,0 +1,2 @@
1
+ export { CheckoutFormButton } from './CheckoutFormButton';
2
+ export type { CheckoutFormButtonProps } from './CheckoutFormButton';
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare const ButtonContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
5
+ isFixed?: boolean | undefined;
6
+ }, {}, {}>;
7
+ export declare const StyledButton: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
8
+ isDisabled?: boolean | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Checkout Header Component
3
+ * Complete header for checkout flows with progress, product card, and section info
4
+ */
5
+ import { SxProps, Theme } from '@mui/material';
6
+ import * as React from 'react';
7
+ import { CheckoutProgressProps } from '../CheckoutProgress';
8
+ import { ProductCardProps } from '../ProductCard';
9
+ export interface CheckoutHeaderProps {
10
+ /**
11
+ * Progress props
12
+ */
13
+ progress: CheckoutProgressProps;
14
+ /**
15
+ * Product card props (optional)
16
+ */
17
+ product?: ProductCardProps;
18
+ /**
19
+ * Section title
20
+ */
21
+ sectionTitle: string;
22
+ /**
23
+ * Section description
24
+ */
25
+ sectionDescription: string;
26
+ /**
27
+ * Whether header should be sticky
28
+ * @default true
29
+ */
30
+ sticky?: boolean;
31
+ /**
32
+ * Progress bar theme (background gradient or color)
33
+ * @default 'linear-gradient(90deg, #0090DA 0.06%, #A4CE4E 99.94%)'
34
+ */
35
+ progressBarTheme?: string;
36
+ /**
37
+ * Optional custom styles
38
+ */
39
+ sx?: SxProps<Theme>;
40
+ }
41
+ export declare const CheckoutHeader: React.FC<CheckoutHeaderProps>;
@@ -0,0 +1,2 @@
1
+ export { CheckoutHeader } from './CheckoutHeader';
2
+ export type { CheckoutHeaderProps } from './CheckoutHeader';
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ export declare const HeaderContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
5
+ sticky?: boolean | undefined;
6
+ }, {}, {}>;
7
+ export declare const SectionHeader: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
9
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
10
+ export declare const SectionTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
11
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
12
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
13
+ export declare const SectionDescription: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
14
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
15
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Checkout Progress Component
3
+ * Displays progress bar with step indicator for multi-step checkout flows
4
+ */
5
+ import { SxProps, Theme } from '@mui/material';
6
+ import * as React from 'react';
7
+ export interface CheckoutProgressProps {
8
+ /**
9
+ * Current step (0-indexed)
10
+ */
11
+ currentStep: number;
12
+ /**
13
+ * Total number of steps
14
+ */
15
+ totalSteps: number;
16
+ /**
17
+ * Callback when back button is clicked
18
+ */
19
+ onBack?: () => void;
20
+ /**
21
+ * Whether to show the back button
22
+ * @default true
23
+ */
24
+ showBackButton?: boolean;
25
+ /**
26
+ * Progress bar theme (background gradient or color)
27
+ * @default 'linear-gradient(90deg, #0090DA 0.06%, #A4CE4E 99.94%)'
28
+ */
29
+ progressBarTheme?: string;
30
+ /**
31
+ * Optional custom styles
32
+ */
33
+ sx?: SxProps<Theme>;
34
+ }
35
+ export declare const CheckoutProgress: React.FC<CheckoutProgressProps>;
@@ -0,0 +1,2 @@
1
+ export { CheckoutProgress } from './CheckoutProgress';
2
+ export type { CheckoutProgressProps } from './CheckoutProgress';
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ export declare const ProgressBarContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
5
+ export declare const ProgressBar: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
7
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
8
+ export declare const ProgressFill: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
9
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
10
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
11
+ width: number;
12
+ progressBarTheme?: string | undefined;
13
+ }, {}, {}>;
14
+ export declare const ProgressText: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
15
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
16
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Child Information Form Component
3
+ * Collects child's personal details for insurance applications
4
+ */
5
+ import * as React from 'react';
6
+ export interface ChildInformationField {
7
+ name: string;
8
+ label: string;
9
+ value: any;
10
+ error?: string;
11
+ touched?: boolean;
12
+ helperText?: string;
13
+ disabled?: boolean;
14
+ type?: string;
15
+ options?: Array<{
16
+ label: string;
17
+ value: any;
18
+ }>;
19
+ inputProps?: any;
20
+ onChange?: (e: any) => void;
21
+ onBlur?: (e: any) => void;
22
+ }
23
+ export interface ChildInformationFormProps {
24
+ /**
25
+ * Render function for form fields
26
+ * This allows the parent to control the form field implementation
27
+ */
28
+ renderField: (field: ChildInformationField) => React.ReactNode;
29
+ /**
30
+ * Form field values
31
+ */
32
+ fields: {
33
+ full_name: ChildInformationField;
34
+ nric: ChildInformationField;
35
+ date_of_birth: ChildInformationField;
36
+ gender: ChildInformationField;
37
+ nationality: ChildInformationField;
38
+ };
39
+ /**
40
+ * Form submission handler
41
+ */
42
+ onSubmit?: (e: React.FormEvent) => void;
43
+ /**
44
+ * Optional reference for scroll handling
45
+ */
46
+ formRef?: React.RefObject<HTMLDivElement>;
47
+ /**
48
+ * Optional custom styles
49
+ */
50
+ sx?: any;
51
+ }
52
+ export declare const ChildInformationForm: React.FC<ChildInformationFormProps>;
@@ -0,0 +1,2 @@
1
+ export { ChildInformationForm } from './ChildInformationForm';
2
+ export type { ChildInformationField, ChildInformationFormProps } from './ChildInformationForm';
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const FormContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Contact Details Form Component
3
+ * Collects contact and address information for life insurance checkout
4
+ */
5
+ import * as React from 'react';
6
+ export interface ContactDetailsField {
7
+ name: string;
8
+ label: string;
9
+ value: any;
10
+ error?: string;
11
+ touched?: boolean;
12
+ helperText?: string;
13
+ disabled?: boolean;
14
+ type?: string;
15
+ options?: Array<{
16
+ label: string;
17
+ value: any;
18
+ }>;
19
+ multiline?: boolean;
20
+ rows?: number;
21
+ inputProps?: any;
22
+ onChange?: (e: any) => void;
23
+ onBlur?: (e: any) => void;
24
+ }
25
+ export interface ContactDetailsFormProps {
26
+ /**
27
+ * Render function for form fields
28
+ * This allows the parent to control the form field implementation
29
+ */
30
+ renderField: (field: ContactDetailsField) => React.ReactNode;
31
+ /**
32
+ * Form field values
33
+ */
34
+ fields: {
35
+ phone_number: ContactDetailsField;
36
+ email_address: ContactDetailsField;
37
+ residential_address: ContactDetailsField;
38
+ postal_code: ContactDetailsField;
39
+ city: ContactDetailsField;
40
+ state: ContactDetailsField;
41
+ };
42
+ /**
43
+ * Mailing address checkbox
44
+ */
45
+ mailingAddressSame?: {
46
+ checked: boolean;
47
+ onChange: (checked: boolean) => void;
48
+ label?: string;
49
+ };
50
+ /**
51
+ * Form submission handler
52
+ */
53
+ onSubmit?: (e: React.FormEvent) => void;
54
+ /**
55
+ * Optional reference for scroll handling
56
+ */
57
+ formRef?: React.RefObject<HTMLDivElement>;
58
+ /**
59
+ * Optional custom styles
60
+ */
61
+ sx?: any;
62
+ }
63
+ export declare const ContactDetailsForm: React.FC<ContactDetailsFormProps>;
@@ -0,0 +1,2 @@
1
+ export { ContactDetailsForm } from './ContactDetailsForm';
2
+ export type { ContactDetailsField, ContactDetailsFormProps } from './ContactDetailsForm';
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ export declare const FormContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
5
+ export declare const CheckboxContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
7
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
8
+ export declare const CheckboxLabel: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
9
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
10
+ }, "fontFamily" | "children" | "p" | "style" | "fontSize" | "fontStyle" | "fontWeight" | "lineHeight" | "border" | "className" | "classes" | "sx" | "boxShadow" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Coverage Amount Slider Component
3
+ * Interactive slider for selecting coverage amounts with plus/minus controls
4
+ * Based on Figma design (node-id: 98-21900)
5
+ */
6
+ export interface CoverageAmountSliderProps {
7
+ /**
8
+ * Minimum coverage amount
9
+ */
10
+ min: number;
11
+ /**
12
+ * Maximum coverage amount
13
+ */
14
+ max: number;
15
+ /**
16
+ * Current coverage amount value
17
+ */
18
+ value: number;
19
+ /**
20
+ * Callback when coverage amount changes
21
+ */
22
+ onChange: (value: number) => void;
23
+ /**
24
+ * Label text for the input (default: "Choose your coverage amount")
25
+ */
26
+ label?: string;
27
+ /**
28
+ * Number of steps/marks in the slider (default: 5)
29
+ */
30
+ steps?: number;
31
+ /**
32
+ * Currency symbol (default: "RM")
33
+ */
34
+ currency?: string;
35
+ /**
36
+ * Format function for displaying currency
37
+ */
38
+ formatCurrency?: (amount: number) => string;
39
+ /**
40
+ * Whether the slider is disabled
41
+ */
42
+ disabled?: boolean;
43
+ }
44
+ /**
45
+ * CoverageAmountSlider - Interactive slider for selecting coverage amounts
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * <CoverageAmountSlider
50
+ * min={100000}
51
+ * max={550000}
52
+ * value={coverageAmount}
53
+ * onChange={setCoverageAmount}
54
+ * />
55
+ * ```
56
+ */
57
+ export declare function CoverageAmountSlider({ min, max, value, onChange, label, steps, currency, formatCurrency: customFormatCurrency, disabled, }: CoverageAmountSliderProps): import("react/jsx-runtime").JSX.Element;