@windstream/react-shared-components 0.1.35 → 0.1.36

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 (166) hide show
  1. package/README.md +635 -635
  2. package/dist/contentful/index.d.ts +1 -0
  3. package/dist/contentful/index.esm.js +1 -1
  4. package/dist/contentful/index.esm.js.map +1 -1
  5. package/dist/contentful/index.js +1 -1
  6. package/dist/contentful/index.js.map +1 -1
  7. package/dist/core.d.ts +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/package.json +182 -182
  10. package/src/components/accordion/Accordion.stories.tsx +230 -230
  11. package/src/components/accordion/index.tsx +70 -70
  12. package/src/components/accordion/types.ts +12 -12
  13. package/src/components/alert-card/AlertCard.stories.tsx +171 -171
  14. package/src/components/alert-card/index.tsx +41 -41
  15. package/src/components/alert-card/types.ts +13 -13
  16. package/src/components/brand-button/BrandButton.stories.tsx +223 -223
  17. package/src/components/brand-button/helpers.ts +35 -35
  18. package/src/components/brand-button/index.tsx +114 -114
  19. package/src/components/brand-button/types.ts +37 -37
  20. package/src/components/button/Button.stories.tsx +108 -108
  21. package/src/components/button/index.tsx +27 -27
  22. package/src/components/button/types.ts +14 -14
  23. package/src/components/call-button/CallButton.stories.tsx +324 -324
  24. package/src/components/call-button/index.tsx +86 -86
  25. package/src/components/call-button/types.ts +11 -11
  26. package/src/components/checkbox/Checkbox.stories.tsx +247 -247
  27. package/src/components/checkbox/index.tsx +197 -197
  28. package/src/components/checkbox/types.ts +27 -27
  29. package/src/components/checklist/Checklist.stories.tsx +150 -150
  30. package/src/components/checklist/index.tsx +61 -61
  31. package/src/components/checklist/types.ts +17 -17
  32. package/src/components/collapse/Collapse.stories.tsx +255 -255
  33. package/src/components/collapse/index.tsx +46 -46
  34. package/src/components/collapse/types.ts +6 -6
  35. package/src/components/divider/Divider.stories.tsx +205 -205
  36. package/src/components/divider/index.tsx +22 -22
  37. package/src/components/divider/type.ts +3 -3
  38. package/src/components/image/Image.stories.tsx +113 -113
  39. package/src/components/image/index.tsx +25 -25
  40. package/src/components/image/types.ts +40 -40
  41. package/src/components/input/Input.stories.tsx +325 -325
  42. package/src/components/input/index.tsx +177 -177
  43. package/src/components/input/types.ts +37 -37
  44. package/src/components/link/Link.stories.tsx +163 -163
  45. package/src/components/link/types.ts +25 -25
  46. package/src/components/list/List.stories.tsx +272 -272
  47. package/src/components/list/index.tsx +88 -88
  48. package/src/components/list/list-item/index.tsx +38 -38
  49. package/src/components/list/list-item/types.ts +13 -13
  50. package/src/components/list/types.ts +29 -29
  51. package/src/components/material-icon/MaterialIcon.stories.tsx +322 -322
  52. package/src/components/material-icon/constants.ts +98 -98
  53. package/src/components/material-icon/index.tsx +47 -47
  54. package/src/components/material-icon/types.ts +31 -31
  55. package/src/components/modal/Modal.stories.tsx +171 -171
  56. package/src/components/modal/index.tsx +164 -164
  57. package/src/components/modal/types.ts +24 -24
  58. package/src/components/next-image/index.tsx +54 -54
  59. package/src/components/next-image/types.ts +1 -1
  60. package/src/components/pagination/index.tsx +100 -100
  61. package/src/components/pagination/types.ts +6 -6
  62. package/src/components/radio-button/RadioButton.stories.tsx +307 -307
  63. package/src/components/radio-button/index.tsx +75 -75
  64. package/src/components/radio-button/types.ts +21 -21
  65. package/src/components/see-more/SeeMore.stories.tsx +181 -181
  66. package/src/components/see-more/index.tsx +44 -44
  67. package/src/components/see-more/types.ts +4 -4
  68. package/src/components/select/Select.stories.tsx +411 -411
  69. package/src/components/select/index.tsx +155 -155
  70. package/src/components/select/types.ts +36 -36
  71. package/src/components/select-plan-button/SelectPlanButton.stories.tsx +184 -184
  72. package/src/components/select-plan-button/index.tsx +63 -63
  73. package/src/components/select-plan-button/types.ts +17 -17
  74. package/src/components/skeleton/Skeleton.stories.tsx +179 -179
  75. package/src/components/skeleton/index.tsx +61 -61
  76. package/src/components/skeleton/types.ts +4 -4
  77. package/src/components/spinner/Spinner.stories.tsx +335 -335
  78. package/src/components/spinner/index.tsx +44 -44
  79. package/src/components/spinner/types.ts +5 -5
  80. package/src/components/text/Text.stories.tsx +321 -321
  81. package/src/components/text/index.tsx +25 -25
  82. package/src/components/text/types.ts +45 -45
  83. package/src/components/tooltip/Tooltip.stories.tsx +219 -219
  84. package/src/components/tooltip/index.tsx +74 -74
  85. package/src/components/tooltip/types.ts +7 -7
  86. package/src/components/view-cart-button/ViewCartButton.stories.tsx +252 -252
  87. package/src/components/view-cart-button/index.tsx +42 -42
  88. package/src/components/view-cart-button/types.ts +5 -5
  89. package/src/contentful/blocks/accordion/index.tsx +62 -62
  90. package/src/contentful/blocks/address-input-banner/index.tsx +52 -52
  91. package/src/contentful/blocks/address-input-banner/types.ts +14 -14
  92. package/src/contentful/blocks/anchored-bottom-banner/index.tsx +70 -65
  93. package/src/contentful/blocks/anchored-bottom-banner/types.ts +10 -9
  94. package/src/contentful/blocks/blogs-grid/index.tsx +134 -134
  95. package/src/contentful/blocks/blogs-grid/types.ts +26 -26
  96. package/src/contentful/blocks/button/Button.stories.tsx +40 -40
  97. package/src/contentful/blocks/button/index.tsx +129 -129
  98. package/src/contentful/blocks/button/types.ts +39 -39
  99. package/src/contentful/blocks/callout/Callout.stories.tsx +23 -23
  100. package/src/contentful/blocks/callout/index.tsx +88 -88
  101. package/src/contentful/blocks/callout/types.ts +15 -15
  102. package/src/contentful/blocks/cards/Cards.stories.tsx +23 -23
  103. package/src/contentful/blocks/cards/blog-card/index.tsx +110 -110
  104. package/src/contentful/blocks/cards/blog-card/types.ts +18 -18
  105. package/src/contentful/blocks/cards/index.tsx +13 -13
  106. package/src/contentful/blocks/cards/product-card/index.tsx +251 -251
  107. package/src/contentful/blocks/cards/product-card/types.ts +28 -28
  108. package/src/contentful/blocks/cards/simple-card/index.tsx +89 -89
  109. package/src/contentful/blocks/cards/testimonial-card/index.tsx +90 -90
  110. package/src/contentful/blocks/cards/testimonial-card/types.tsx +12 -12
  111. package/src/contentful/blocks/cards/types.ts +1 -1
  112. package/src/contentful/blocks/carousel/Carousel.stories.tsx +23 -23
  113. package/src/contentful/blocks/carousel/helper.tsx +440 -440
  114. package/src/contentful/blocks/carousel/index.tsx +85 -85
  115. package/src/contentful/blocks/carousel/types.ts +144 -144
  116. package/src/contentful/blocks/cookiebanner/index.tsx +146 -146
  117. package/src/contentful/blocks/cookiebanner/type.ts +7 -7
  118. package/src/contentful/blocks/cta-callout/CtaCallout.stories.tsx +46 -46
  119. package/src/contentful/blocks/cta-callout/index.tsx +60 -60
  120. package/src/contentful/blocks/cta-callout/types.ts +26 -26
  121. package/src/contentful/blocks/dynamic-tabs/index.tsx +204 -204
  122. package/src/contentful/blocks/dynamic-tabs/types.ts +21 -21
  123. package/src/contentful/blocks/find-kinetic/index.tsx +130 -130
  124. package/src/contentful/blocks/floating-banner/FloatingBanner.stories.tsx +34 -34
  125. package/src/contentful/blocks/floating-banner/index.tsx +97 -97
  126. package/src/contentful/blocks/floating-banner/types.ts +22 -22
  127. package/src/contentful/blocks/footer/Footer.stories.tsx +30 -30
  128. package/src/contentful/blocks/footer/index.tsx +90 -90
  129. package/src/contentful/blocks/image-promo-bar/ImagePromoBar.stories.tsx +23 -23
  130. package/src/contentful/blocks/image-promo-bar/helper.tsx +28 -28
  131. package/src/contentful/blocks/image-promo-bar/index.tsx +240 -240
  132. package/src/contentful/blocks/image-promo-bar/types.ts +44 -44
  133. package/src/contentful/blocks/image-promo-bar/vimeo-embed.tsx +93 -93
  134. package/src/contentful/blocks/image-promo-bar/youtube-embed.tsx +46 -46
  135. package/src/contentful/blocks/modal/constants.ts +53 -53
  136. package/src/contentful/blocks/modal/index.tsx +103 -103
  137. package/src/contentful/blocks/modal/types.ts +12 -12
  138. package/src/contentful/blocks/navigation/desktop-link-groups.tsx/index.tsx +113 -113
  139. package/src/contentful/blocks/navigation/index.tsx +394 -394
  140. package/src/contentful/blocks/navigation/mobile-link-groups.tsx/index.tsx +82 -82
  141. package/src/contentful/blocks/navigation/types.ts +41 -41
  142. package/src/contentful/blocks/primary-hero/PrimaryHero.stories.tsx +23 -23
  143. package/src/contentful/blocks/primary-hero/index.tsx +234 -234
  144. package/src/contentful/blocks/primary-hero/types.ts +35 -35
  145. package/src/contentful/blocks/search-block/index.tsx +90 -90
  146. package/src/contentful/blocks/shape-background-wrapper/ShapeBackgroundWrapper.stories.tsx +26 -26
  147. package/src/contentful/blocks/shape-background-wrapper/index.tsx +124 -124
  148. package/src/contentful/blocks/shape-background-wrapper/types.ts +36 -36
  149. package/src/contentful/blocks/text/Text.stories.tsx +23 -23
  150. package/src/contentful/blocks/text/index.tsx +12 -12
  151. package/src/contentful/blocks/text/types.ts +1 -1
  152. package/src/contentful/index.ts +81 -81
  153. package/src/hooks/use-body-scroll-lock.ts +34 -34
  154. package/src/hooks/use-carousel-swipe.ts +264 -264
  155. package/src/hooks/use-outside-click.ts +17 -17
  156. package/src/index.ts +101 -101
  157. package/src/next/index.ts +5 -5
  158. package/src/setupTests.ts +46 -46
  159. package/src/stories/DocsTemplate.tsx +24 -24
  160. package/src/styles/globals.css +343 -343
  161. package/src/types/global.d.ts +9 -9
  162. package/src/types/micro-components.ts +99 -99
  163. package/src/types/utm.ts +49 -49
  164. package/src/utils/cookie.ts +80 -80
  165. package/src/utils/index.ts +65 -65
  166. package/src/utils/utm.ts +221 -221
@@ -1,204 +1,204 @@
1
- "use client";
2
-
3
- import React, { useEffect, useState } from "react";
4
- import { DynamicTabsT } from "./types";
5
- import { AnimatePresence, motion } from "framer-motion";
6
-
7
- import { Collapse } from "@shared/components/collapse";
8
- import { MaterialIcon } from "@shared/components/material-icon";
9
- import { Text } from "@shared/components/text";
10
- import { Button } from "@shared/contentful/blocks/button";
11
- import { cx } from "@shared/utils";
12
-
13
- export function DynamicTabs(props: DynamicTabsT) {
14
- const [currentTabIndex, setCurrentTabIndex] = useState(0);
15
- const [fragment, setFragment] = useState("");
16
- const {
17
- title,
18
- subTitle,
19
- tabs,
20
- tabsContent,
21
- navigationType = true,
22
- mobileSidebarTabType = true,
23
- } = props;
24
-
25
- useEffect(() => {
26
- if (typeof window !== "undefined") {
27
- setFragment(window.location.hash);
28
-
29
- const handleHashChange = () => {
30
- setFragment(window.location.hash);
31
- };
32
- window.addEventListener("hashchange", handleHashChange);
33
- return () => {
34
- window.removeEventListener("hashchange", handleHashChange);
35
- };
36
- }
37
- }, []);
38
-
39
- useEffect(() => {
40
- tabs?.items?.some((tab: any, index: number) => {
41
- const tabId = `#${tab?.anchorId || "tab-" + index}`;
42
- if (tabId === fragment) {
43
- setCurrentTabIndex(index);
44
- return true;
45
- }
46
- });
47
- }, [tabs, fragment]);
48
-
49
- const handleTabClick = (index: number, anchor: string) => {
50
- setCurrentTabIndex(index);
51
-
52
- if (typeof window !== "undefined" && fragment) {
53
- window.location.hash = anchor || "";
54
- }
55
- };
56
-
57
- const tabViewJSX = (
58
- <>
59
- <div className="overflow-x-auto px-5 [-ms-overflow-style:none] [scrollbar-width:none] md:flex md:justify-center [&::-webkit-scrollbar]:hidden">
60
- <div className="flex w-max gap-10">
61
- {tabs?.items?.map((item: any, index: number) => (
62
- <Button
63
- showButtonAs="unstyled"
64
- key={index}
65
- onClick={() => handleTabClick(index, item?.anchorId)}
66
- buttonClassName={cx(
67
- "py-2 whitespace-nowrap",
68
- index === currentTabIndex
69
- ? "label1 border-b-2 border-border-focus-secondary"
70
- : "body1"
71
- )}
72
- >
73
- {item.tabName}
74
- </Button>
75
- ))}
76
- </div>
77
- </div>
78
-
79
- {tabsContent?.map((tab: any, index: number) => {
80
- return (
81
- <div key={index}>
82
- <AnimatePresence>
83
- <motion.div
84
- initial={{ height: 0, opacity: 0 }}
85
- animate={{
86
- height: index === currentTabIndex ? "auto" : 0,
87
- opacity: index === currentTabIndex ? 1 : 0,
88
- }}
89
- exit={{ height: 0, opacity: 0 }}
90
- transition={{ duration: 0.3 }}
91
- >
92
- {tab}
93
- </motion.div>
94
- </AnimatePresence>
95
- </div>
96
- );
97
- })}
98
- </>
99
- );
100
-
101
- const accordionViewJSX = (
102
- <>
103
- {tabs?.items?.map((item: any, index: number) => (
104
- <div key={index} className="py-5">
105
- <Button
106
- showButtonAs="unstyled"
107
- onClick={() => handleTabClick(index, item?.anchorId)}
108
- buttonClassName={cx(
109
- "w-full flex justify-between items-center px-4 py-5",
110
- index === currentTabIndex ? "bg-bg-surface-active" : ""
111
- )}
112
- >
113
- <span className={"heading6"}>{item.tabName}</span>
114
- <MaterialIcon
115
- name={
116
- index === currentTabIndex
117
- ? "keyboard_arrow_down"
118
- : "keyboard_arrow_up"
119
- }
120
- fill={1}
121
- size={48}
122
- />
123
- </Button>
124
- <Collapse open={index === currentTabIndex}>
125
- <div className={cx("px-4 py-4")}>{tabsContent?.[index]}</div>
126
- </Collapse>
127
- </div>
128
- ))}
129
- </>
130
- );
131
-
132
- const sidebarViewJSX = (
133
- <div className="flex px-5 py-20">
134
- <div className="rounded-surface-lg border border-border-secondary shadow-lg">
135
- <div className="flex min-w-80 flex-col gap-4 px-6 py-7">
136
- {tabs?.items?.map((item: any, index: number) => (
137
- <Button
138
- showButtonAs="unstyled"
139
- key={index}
140
- onClick={() => handleTabClick(index, item?.anchorId)}
141
- buttonClassName={cx(
142
- "px-4 py-3 whitespace-nowrap text-left rounded-button-sm",
143
- index === currentTabIndex
144
- ? "label1 text-white bg-bg-inverse"
145
- : "body1"
146
- )}
147
- >
148
- {item.tabName}
149
- </Button>
150
- ))}
151
- </div>
152
- </div>
153
-
154
- <div className="grow">
155
- {tabsContent?.map((tab: any, index: number) => {
156
- return (
157
- <div key={index}>
158
- <AnimatePresence>
159
- <motion.div
160
- initial={{ height: 0, opacity: 0 }}
161
- animate={{
162
- height: index === currentTabIndex ? "auto" : 0,
163
- opacity: index === currentTabIndex ? 1 : 0,
164
- }}
165
- exit={{ height: 0, opacity: 0 }}
166
- transition={{ duration: 0.3 }}
167
- >
168
- {tab}
169
- </motion.div>
170
- </AnimatePresence>
171
- </div>
172
- );
173
- })}
174
- </div>
175
- </div>
176
- );
177
-
178
- return (
179
- <div>
180
- {title || subTitle ? (
181
- <div className="mb-8 mt-5 flex flex-col gap-5 md:gap-6">
182
- {title ? (
183
- <Text className="heading2 px-5 md:heading1 md:text-center">
184
- {title}
185
- </Text>
186
- ) : null}
187
- {subTitle ? (
188
- <Text className="subheading3 px-5 md:subheading1 md:text-center">
189
- {subTitle}
190
- </Text>
191
- ) : null}
192
- </div>
193
- ) : null}
194
-
195
- <div className="md:hidden">
196
- {mobileSidebarTabType ? tabViewJSX : accordionViewJSX}
197
- </div>
198
-
199
- <div className="hidden md:block">
200
- {navigationType ? tabViewJSX : sidebarViewJSX}
201
- </div>
202
- </div>
203
- );
204
- }
1
+ "use client";
2
+
3
+ import React, { useEffect, useState } from "react";
4
+ import { DynamicTabsT } from "./types";
5
+ import { AnimatePresence, motion } from "framer-motion";
6
+
7
+ import { Collapse } from "@shared/components/collapse";
8
+ import { MaterialIcon } from "@shared/components/material-icon";
9
+ import { Text } from "@shared/components/text";
10
+ import { Button } from "@shared/contentful/blocks/button";
11
+ import { cx } from "@shared/utils";
12
+
13
+ export function DynamicTabs(props: DynamicTabsT) {
14
+ const [currentTabIndex, setCurrentTabIndex] = useState(0);
15
+ const [fragment, setFragment] = useState("");
16
+ const {
17
+ title,
18
+ subTitle,
19
+ tabs,
20
+ tabsContent,
21
+ navigationType = true,
22
+ mobileSidebarTabType = true,
23
+ } = props;
24
+
25
+ useEffect(() => {
26
+ if (typeof window !== "undefined") {
27
+ setFragment(window.location.hash);
28
+
29
+ const handleHashChange = () => {
30
+ setFragment(window.location.hash);
31
+ };
32
+ window.addEventListener("hashchange", handleHashChange);
33
+ return () => {
34
+ window.removeEventListener("hashchange", handleHashChange);
35
+ };
36
+ }
37
+ }, []);
38
+
39
+ useEffect(() => {
40
+ tabs?.items?.some((tab: any, index: number) => {
41
+ const tabId = `#${tab?.anchorId || "tab-" + index}`;
42
+ if (tabId === fragment) {
43
+ setCurrentTabIndex(index);
44
+ return true;
45
+ }
46
+ });
47
+ }, [tabs, fragment]);
48
+
49
+ const handleTabClick = (index: number, anchor: string) => {
50
+ setCurrentTabIndex(index);
51
+
52
+ if (typeof window !== "undefined" && fragment) {
53
+ window.location.hash = anchor || "";
54
+ }
55
+ };
56
+
57
+ const tabViewJSX = (
58
+ <>
59
+ <div className="overflow-x-auto px-5 [-ms-overflow-style:none] [scrollbar-width:none] md:flex md:justify-center [&::-webkit-scrollbar]:hidden">
60
+ <div className="flex w-max gap-10">
61
+ {tabs?.items?.map((item: any, index: number) => (
62
+ <Button
63
+ showButtonAs="unstyled"
64
+ key={index}
65
+ onClick={() => handleTabClick(index, item?.anchorId)}
66
+ buttonClassName={cx(
67
+ "py-2 whitespace-nowrap",
68
+ index === currentTabIndex
69
+ ? "label1 border-b-2 border-border-focus-secondary"
70
+ : "body1"
71
+ )}
72
+ >
73
+ {item.tabName}
74
+ </Button>
75
+ ))}
76
+ </div>
77
+ </div>
78
+
79
+ {tabsContent?.map((tab: any, index: number) => {
80
+ return (
81
+ <div key={index}>
82
+ <AnimatePresence>
83
+ <motion.div
84
+ initial={{ height: 0, opacity: 0 }}
85
+ animate={{
86
+ height: index === currentTabIndex ? "auto" : 0,
87
+ opacity: index === currentTabIndex ? 1 : 0,
88
+ }}
89
+ exit={{ height: 0, opacity: 0 }}
90
+ transition={{ duration: 0.3 }}
91
+ >
92
+ {tab}
93
+ </motion.div>
94
+ </AnimatePresence>
95
+ </div>
96
+ );
97
+ })}
98
+ </>
99
+ );
100
+
101
+ const accordionViewJSX = (
102
+ <>
103
+ {tabs?.items?.map((item: any, index: number) => (
104
+ <div key={index} className="py-5">
105
+ <Button
106
+ showButtonAs="unstyled"
107
+ onClick={() => handleTabClick(index, item?.anchorId)}
108
+ buttonClassName={cx(
109
+ "w-full flex justify-between items-center px-4 py-5",
110
+ index === currentTabIndex ? "bg-bg-surface-active" : ""
111
+ )}
112
+ >
113
+ <span className={"heading6"}>{item.tabName}</span>
114
+ <MaterialIcon
115
+ name={
116
+ index === currentTabIndex
117
+ ? "keyboard_arrow_down"
118
+ : "keyboard_arrow_up"
119
+ }
120
+ fill={1}
121
+ size={48}
122
+ />
123
+ </Button>
124
+ <Collapse open={index === currentTabIndex}>
125
+ <div className={cx("px-4 py-4")}>{tabsContent?.[index]}</div>
126
+ </Collapse>
127
+ </div>
128
+ ))}
129
+ </>
130
+ );
131
+
132
+ const sidebarViewJSX = (
133
+ <div className="flex px-5 py-20">
134
+ <div className="rounded-surface-lg border border-border-secondary shadow-lg">
135
+ <div className="flex min-w-80 flex-col gap-4 px-6 py-7">
136
+ {tabs?.items?.map((item: any, index: number) => (
137
+ <Button
138
+ showButtonAs="unstyled"
139
+ key={index}
140
+ onClick={() => handleTabClick(index, item?.anchorId)}
141
+ buttonClassName={cx(
142
+ "px-4 py-3 whitespace-nowrap text-left rounded-button-sm",
143
+ index === currentTabIndex
144
+ ? "label1 text-white bg-bg-inverse"
145
+ : "body1"
146
+ )}
147
+ >
148
+ {item.tabName}
149
+ </Button>
150
+ ))}
151
+ </div>
152
+ </div>
153
+
154
+ <div className="grow">
155
+ {tabsContent?.map((tab: any, index: number) => {
156
+ return (
157
+ <div key={index}>
158
+ <AnimatePresence>
159
+ <motion.div
160
+ initial={{ height: 0, opacity: 0 }}
161
+ animate={{
162
+ height: index === currentTabIndex ? "auto" : 0,
163
+ opacity: index === currentTabIndex ? 1 : 0,
164
+ }}
165
+ exit={{ height: 0, opacity: 0 }}
166
+ transition={{ duration: 0.3 }}
167
+ >
168
+ {tab}
169
+ </motion.div>
170
+ </AnimatePresence>
171
+ </div>
172
+ );
173
+ })}
174
+ </div>
175
+ </div>
176
+ );
177
+
178
+ return (
179
+ <div>
180
+ {title || subTitle ? (
181
+ <div className="mb-8 mt-5 flex flex-col gap-5 md:gap-6">
182
+ {title ? (
183
+ <Text className="heading2 px-5 md:heading1 md:text-center">
184
+ {title}
185
+ </Text>
186
+ ) : null}
187
+ {subTitle ? (
188
+ <Text className="subheading3 px-5 md:subheading1 md:text-center">
189
+ {subTitle}
190
+ </Text>
191
+ ) : null}
192
+ </div>
193
+ ) : null}
194
+
195
+ <div className="md:hidden">
196
+ {mobileSidebarTabType ? tabViewJSX : accordionViewJSX}
197
+ </div>
198
+
199
+ <div className="hidden md:block">
200
+ {navigationType ? tabViewJSX : sidebarViewJSX}
201
+ </div>
202
+ </div>
203
+ );
204
+ }
@@ -1,21 +1,21 @@
1
- import React from "react";
2
-
3
- export interface DynamicTabsT {
4
- tabs?: {
5
- items: {
6
- tabName: string;
7
- anchorId: string;
8
- tabContent: { items: any[] };
9
- }[];
10
- };
11
- tabsContent?: React.ReactNode[];
12
- entryTitle?: string;
13
- anchorId?: string;
14
- title?: string;
15
- subTitle?: string;
16
- description?: string;
17
- backgroundColor?: "white";
18
- textColor?: "navy";
19
- navigationType?: boolean;
20
- mobileSidebarTabType?: boolean;
21
- }
1
+ import React from "react";
2
+
3
+ export interface DynamicTabsT {
4
+ tabs?: {
5
+ items: {
6
+ tabName: string;
7
+ anchorId: string;
8
+ tabContent: { items: any[] };
9
+ }[];
10
+ };
11
+ tabsContent?: React.ReactNode[];
12
+ entryTitle?: string;
13
+ anchorId?: string;
14
+ title?: string;
15
+ subTitle?: string;
16
+ description?: string;
17
+ backgroundColor?: "white";
18
+ textColor?: "navy";
19
+ navigationType?: boolean;
20
+ mobileSidebarTabType?: boolean;
21
+ }