igloo-d2c-components 1.0.13 → 1.0.15

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 +2844 -41
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/esm/index.js +2792 -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 +74 -0
  41. package/dist/types/components/ContactDetailsForm/index.d.ts +2 -0
  42. package/dist/types/components/ContactDetailsForm/styled.d.ts +13 -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,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;
@@ -0,0 +1,3 @@
1
+ export { CoverageAmountSlider } from './CoverageAmountSlider';
2
+ export type { CoverageAmountSliderProps } from './CoverageAmountSlider';
3
+ export * from './styled';
@@ -0,0 +1,50 @@
1
+ /// <reference types="react" />
2
+ export declare const SliderContainer: 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 InputSection: 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 InputLabel: 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>, {}, {}>;
11
+ export declare const InputContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
12
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
13
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
14
+ export declare const InputValue: 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>, {}, {}>;
17
+ export declare const SliderTrack: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
18
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
19
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
20
+ export declare const SliderSegment: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
21
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
22
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
23
+ active: boolean;
24
+ }, {}, {}>;
25
+ export declare const SliderDot: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
26
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
27
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
28
+ active: boolean;
29
+ }, {}, {}>;
30
+ export declare const SliderThumb: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
31
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
32
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
33
+ export declare const ThumbIcon: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
34
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
35
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
36
+ export declare const RangeLabels: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
37
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
38
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
39
+ export declare const RangeLabel: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
40
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
41
+ }, "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>, {}, {}>;
42
+ export declare const StyledMuiSlider: import("@emotion/styled").StyledComponent<import("@mui/material").SliderOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
43
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
44
+ }, "value" | "style" | "track" | "className" | "classes" | "disabled" | "sx" | "tabIndex" | "color" | "scale" | "size" | "name" | "defaultValue" | "aria-label" | "aria-labelledby" | "aria-valuetext" | "onChange" | "max" | "min" | "orientation" | "step" | "components" | "slots" | "slotProps" | "componentsProps" | "disableSwap" | "getAriaLabel" | "getAriaValueText" | "marks" | "onChangeCommitted" | "shiftStep" | "valueLabelDisplay" | "valueLabelFormat"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
45
+ sliderActiveColor?: string | undefined;
46
+ sliderInactiveColor?: string | undefined;
47
+ }, {}, {}>;
48
+ export declare const SliderLabelsContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
49
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
50
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * FAQ Accordion Component
3
+ * A reusable, tenant-aware FAQ accordion component
4
+ */
5
+ import { FAQAccordionProps } from './types';
6
+ /**
7
+ * FAQAccordion - Displays a list of frequently asked questions in an accordion format
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const faqs = [
12
+ * { id: 'faq-1', question: 'What is this product?', answer: 'This is a great product.' },
13
+ * { id: 'faq-2', question: 'How does it work?', answer: 'It works seamlessly.' },
14
+ * ]
15
+ *
16
+ * <FAQAccordion
17
+ * faqs={faqs}
18
+ * title="Frequently Asked Questions"
19
+ * />
20
+ * ```
21
+ */
22
+ export declare function FAQAccordion({ faqs, title, formatMessage, backgroundColor, maxWidth, className, defaultExpanded, onAccordionChange, }: FAQAccordionProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { FAQAccordion } from './FAQAccordion';
2
+ export type { FAQAccordionProps, FAQItem } from './types';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * FAQ Accordion Styled Components
3
+ * MUI styled components for the FAQ Accordion
4
+ */
5
+ /// <reference types="react" />
6
+ export declare const FAQContainer: 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 FAQTitle: 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 StyledAccordion: import("@emotion/styled").StyledComponent<{
13
+ children: NonNullable<import("react").ReactNode>;
14
+ classes?: Partial<import("@mui/material").AccordionClasses> | undefined;
15
+ defaultExpanded?: boolean | undefined;
16
+ disabled?: boolean | undefined;
17
+ disableGutters?: boolean | undefined;
18
+ expanded?: boolean | undefined;
19
+ onChange?: ((event: import("react").SyntheticEvent<Element, Event>, expanded: boolean) => void) | undefined;
20
+ sx?: import("@mui/material").SxProps<import("@mui/material").Theme> | undefined;
21
+ TransitionComponent?: import("react").JSXElementConstructor<import("@mui/material/transitions").TransitionProps & {
22
+ children?: import("react").ReactElement<any, any> | undefined;
23
+ }> | undefined;
24
+ TransitionProps?: import("@mui/material/transitions").TransitionProps | undefined;
25
+ } & import("@mui/material").AccordionSlotsAndSlotProps & Omit<import("@mui/material").PaperOwnProps, "classes" | "onChange"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
26
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
27
+ }, "children" | keyof import("@mui/material/OverridableComponent").CommonProps | "disabled" | "sx" | "variant" | "onChange" | "expanded" | "square" | "elevation" | "disableGutters" | "TransitionComponent" | "TransitionProps" | "defaultExpanded" | keyof import("@mui/material").AccordionSlotsAndSlotProps> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
28
+ export declare const StyledAccordionSummary: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionSummaryOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
29
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
30
+ }, "children" | "style" | "className" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "tabIndex" | "TouchRippleProps" | "touchRippleRef" | "expandIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
31
+ export declare const FAQQuestion: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
32
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
33
+ }, "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>, {}, {}>;
34
+ export declare const StyledAccordionDetails: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionDetailsProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
35
+ export declare const FAQContentWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
36
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
37
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * FAQ Accordion Types
3
+ * Type definitions for the FAQ Accordion component
4
+ */
5
+ import * as React from 'react';
6
+ export interface FAQItem {
7
+ /**
8
+ * Unique identifier for the FAQ item
9
+ */
10
+ id: string;
11
+ /**
12
+ * The question text
13
+ */
14
+ question: string;
15
+ /**
16
+ * The answer text or React node
17
+ */
18
+ answer: React.ReactNode;
19
+ }
20
+ export interface FAQAccordionProps {
21
+ /**
22
+ * Array of FAQ items to display
23
+ */
24
+ faqs: FAQItem[];
25
+ /**
26
+ * Title for the FAQ section
27
+ */
28
+ title?: string;
29
+ /**
30
+ * Optional format message function for i18n support
31
+ */
32
+ formatMessage?: (descriptor: {
33
+ id: string;
34
+ defaultMessage?: string;
35
+ }) => string;
36
+ /**
37
+ * Custom background color for the container
38
+ */
39
+ backgroundColor?: string;
40
+ /**
41
+ * Maximum width for the content area
42
+ * @default '1128px'
43
+ */
44
+ maxWidth?: string;
45
+ /**
46
+ * Custom class name for additional styling
47
+ */
48
+ className?: string;
49
+ /**
50
+ * ID of the accordion panel that should be expanded by default
51
+ */
52
+ defaultExpanded?: string;
53
+ /**
54
+ * Callback when an accordion panel is expanded/collapsed
55
+ */
56
+ onAccordionChange?: (panelId: string, isExpanded: boolean) => void;
57
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Tenant-Aware Footer Component
3
+ * Responsive footer with links, social media, and company information
4
+ */
5
+ export interface SocialLink {
6
+ platform: 'facebook' | 'instagram' | 'youtube' | 'twitter' | 'linkedin';
7
+ url: string;
8
+ icon: string;
9
+ ariaLabel?: string;
10
+ }
11
+ export interface FooterLicenseImage {
12
+ src: string;
13
+ alt: string;
14
+ width: string;
15
+ height: string;
16
+ url?: string;
17
+ ariaLabel?: string;
18
+ }
19
+ export interface FooterNavigationLink {
20
+ label: string;
21
+ innerHref?: string;
22
+ outerHref?: string;
23
+ key?: string;
24
+ }
25
+ export interface FooterProps {
26
+ /**
27
+ * Simplified layout without navigation links
28
+ */
29
+ simplifiedLayout?: boolean;
30
+ /**
31
+ * Company introduction text
32
+ */
33
+ introText: string;
34
+ /**
35
+ * Company address
36
+ */
37
+ addressText?: string;
38
+ /**
39
+ * Social media links
40
+ */
41
+ socialLinks: SocialLink[];
42
+ /**
43
+ * License/certification images (e.g., OJK, APPARINDO)
44
+ */
45
+ licenseImages: FooterLicenseImage[];
46
+ /**
47
+ * Powered by image
48
+ */
49
+ poweredByImage?: FooterLicenseImage;
50
+ /**
51
+ * Footer navigation links organized in sections
52
+ */
53
+ navigationLinks?: FooterNavigationLink[][];
54
+ /**
55
+ * Current locale
56
+ */
57
+ currentLocale: string;
58
+ /**
59
+ * Host URL
60
+ */
61
+ host?: string;
62
+ /**
63
+ * Is mobile view
64
+ */
65
+ isMobile?: boolean;
66
+ /**
67
+ * Event handlers
68
+ */
69
+ onLinkClick?: (link: FooterNavigationLink) => void;
70
+ onSocialClick?: (platform: string, url: string) => void;
71
+ onPrivacyPolicyClick?: () => void;
72
+ onTermsOfServiceClick?: () => void;
73
+ /**
74
+ * Format message function for i18n
75
+ */
76
+ formatMessage?: (descriptor: {
77
+ id: string;
78
+ }) => string;
79
+ }
80
+ /**
81
+ * Footer component with tenant theme support
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * <Footer
86
+ * introText="Company introduction..."
87
+ * socialLinks={socialMediaLinks}
88
+ * licenseImages={licenses}
89
+ * navigationLinks={footerNavLinks}
90
+ * currentLocale="en"
91
+ * />
92
+ * ```
93
+ */
94
+ export declare function Footer({ simplifiedLayout, introText, addressText, socialLinks, licenseImages, poweredByImage, navigationLinks, currentLocale, host, isMobile: propIsMobile, onLinkClick, onSocialClick, onPrivacyPolicyClick, onTermsOfServiceClick, formatMessage, }: FooterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { Footer } from './Footer';
2
+ export type { FooterProps, SocialLink, FooterLicenseImage, FooterNavigationLink, } from './Footer';
3
+ export * from './styled';
@@ -0,0 +1,38 @@
1
+ /// <reference types="react" />
2
+ export declare const DivFooter: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
3
+ export declare const DivFooterConterResponsiveLayout: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
4
+ export declare const FooterHiddenContent: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
5
+ simplifiedLayout: boolean;
6
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
7
+ export declare const DivIglooIntro: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
+ export declare const DivSocial: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
+ export declare const ButtonIcon: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
10
+ ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
11
+ }, "children" | "style" | "className" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "tabIndex" | "TouchRippleProps" | "touchRippleRef" | "color" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "href" | "size" | "startIcon" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
12
+ export declare const TypographyIntro: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
13
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
14
+ }, "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>, {}, {}>;
15
+ export declare const TypographyAddressFooter: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
16
+ ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
17
+ }, "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>, {}, {}>;
18
+ export declare const DivLogos: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
19
+ export declare const DivFirstRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
20
+ export declare const ButtonOjkLink: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
21
+ ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
22
+ }, "children" | "style" | "className" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "tabIndex" | "TouchRippleProps" | "touchRippleRef" | "color" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "href" | "size" | "startIcon" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
23
+ export declare const ImageOjkLicense: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
24
+ export declare const ButtonSolisoustamaLink: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
25
+ ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
26
+ }, "children" | "style" | "className" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "tabIndex" | "TouchRippleProps" | "touchRippleRef" | "color" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "href" | "size" | "startIcon" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
27
+ export declare const ImageSolisoustama: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
28
+ export declare const DivLinks: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
29
+ export declare const DivSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
30
+ export declare const ButtonBottomLink: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
31
+ ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
32
+ }, "children" | "style" | "className" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "tabIndex" | "TouchRippleProps" | "touchRippleRef" | "color" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "href" | "size" | "startIcon" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
33
+ export declare const StyledDivider: import("@emotion/styled").StyledComponent<import("@mui/material").DividerOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHRElement>, HTMLHRElement>, "ref"> & {
34
+ ref?: ((instance: HTMLHRElement | null) => void) | import("react").RefObject<HTMLHRElement> | null | undefined;
35
+ }, "children" | "style" | "light" | "className" | "classes" | "sx" | "textAlign" | "variant" | "absolute" | "orientation" | "flexItem"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
36
+ export declare const DivBottom: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
37
+ export declare const DivSep: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
38
+ export declare const AnchorLink: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, {}>;
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Tenant-Aware Header Component
3
+ * Responsive header with navigation, authentication, and language selection
4
+ */
5
+ import * as React from 'react';
6
+ export interface NavigationLink {
7
+ key: string;
8
+ name: string;
9
+ icon: string;
10
+ link?: string;
11
+ badge?: string;
12
+ }
13
+ export interface LanguageOption {
14
+ value: string;
15
+ locale: string;
16
+ label: string;
17
+ }
18
+ export interface HeaderProps {
19
+ /**
20
+ * Logo image source
21
+ */
22
+ logo: string;
23
+ /**
24
+ * Alternative logo for special pages (e.g., partnership page)
25
+ */
26
+ alternateLogo?: string;
27
+ /**
28
+ * Show alternate logo
29
+ */
30
+ showAlternateLogo?: boolean;
31
+ /**
32
+ * Navigation links for products/services
33
+ */
34
+ navigationLinks: NavigationLink[];
35
+ /**
36
+ * Available languages
37
+ */
38
+ languages: LanguageOption[];
39
+ /**
40
+ * Current locale (e.g., 'en', 'id')
41
+ */
42
+ currentLocale: string;
43
+ /**
44
+ * Current language code
45
+ */
46
+ currentLang?: string;
47
+ /**
48
+ * User authentication token
49
+ */
50
+ userToken?: string | null;
51
+ /**
52
+ * User first name for avatar
53
+ */
54
+ userFirstName?: string;
55
+ /**
56
+ * Is mobile view
57
+ */
58
+ isMobile?: boolean;
59
+ /**
60
+ * Is scrolled
61
+ */
62
+ scrolled?: boolean;
63
+ /**
64
+ * Is partnership page mobile view
65
+ */
66
+ isPartnershipPageMobileView?: boolean;
67
+ /**
68
+ * Is partnership page PC view
69
+ */
70
+ isPartnershipPagePCView?: boolean;
71
+ /**
72
+ * Is SEO page view
73
+ */
74
+ isSeoPageView?: boolean;
75
+ /**
76
+ * Show get quote button in header
77
+ */
78
+ showGetQuoteButton?: boolean;
79
+ /**
80
+ * Banner data for CTA
81
+ */
82
+ bannerData?: {
83
+ ctaText?: string;
84
+ ctaBGColor?: string;
85
+ ctaTextColor?: string;
86
+ };
87
+ /**
88
+ * CTA data for category page
89
+ */
90
+ ctaData?: {
91
+ ctaText?: string;
92
+ };
93
+ /**
94
+ * Host URL
95
+ */
96
+ host?: string;
97
+ /**
98
+ * Welcome message for drawer
99
+ */
100
+ welcomeMessage?: string;
101
+ /**
102
+ * Event handlers
103
+ */
104
+ onLogoClick?: () => void;
105
+ onProductMenuClick?: (key: string) => void;
106
+ onLanguageChange?: (locale: string, value: string) => void;
107
+ onLoginClick?: () => void;
108
+ onSignupClick?: () => void;
109
+ onLogoutClick?: () => void;
110
+ onPartnershipClick?: () => void;
111
+ onAboutUsClick?: () => void;
112
+ onBlogClick?: () => void;
113
+ onMyProfileClick?: () => void;
114
+ onGetQuoteClick?: () => void;
115
+ onPartnershipCTAClick?: () => void;
116
+ /**
117
+ * Format message function for i18n
118
+ */
119
+ formatMessage?: (descriptor: {
120
+ id: string;
121
+ }) => string;
122
+ /**
123
+ * Additional menu items (e.g., Partnership, About Us, Blog)
124
+ */
125
+ menuItems?: {
126
+ partnership?: {
127
+ label: string;
128
+ route: string;
129
+ };
130
+ aboutUs?: {
131
+ label: string;
132
+ route: string;
133
+ };
134
+ blog?: {
135
+ label: string;
136
+ url: string;
137
+ };
138
+ };
139
+ /**
140
+ * User profile component
141
+ */
142
+ userProfileComponent?: React.ReactNode;
143
+ }
144
+ /**
145
+ * Header component with tenant theme support and responsive navigation
146
+ *
147
+ * @example
148
+ * ```tsx
149
+ * <Header
150
+ * logo={logoSrc}
151
+ * navigationLinks={navLinks}
152
+ * languages={languageOptions}
153
+ * currentLocale="en"
154
+ * onLogoClick={() => history.push('/')}
155
+ * onLoginClick={() => setShowLoginModal(true)}
156
+ * />
157
+ * ```
158
+ */
159
+ export declare function Header({ logo, alternateLogo, showAlternateLogo, navigationLinks, languages, currentLocale, currentLang, userToken, userFirstName, isMobile: propIsMobile, scrolled, isPartnershipPageMobileView, isPartnershipPagePCView, isSeoPageView, showGetQuoteButton, bannerData, ctaData, host, welcomeMessage, formatMessage, menuItems, userProfileComponent, onLogoClick, onProductMenuClick, onLanguageChange, onLoginClick, onSignupClick, onLogoutClick, onPartnershipClick, onAboutUsClick, onBlogClick, onMyProfileClick, onGetQuoteClick, onPartnershipCTAClick, }: HeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { Header } from './Header';
2
+ export type { HeaderProps, NavigationLink, LanguageOption } from './Header';
3
+ export * from './styled';